Skip to content

Commit bf6d2e4

Browse files
committed
Update projects
1 parent 64ea071 commit bf6d2e4

File tree

1 file changed

+140
-141
lines changed

1 file changed

+140
-141
lines changed

_data/openprojectlist.yml

+140-141
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,3 @@
1-
- name: "ROOT Superbuilds"
2-
description: |
3-
[ROOT](https://root.cern/) is a framework for data processing,
4-
born at CERN, at the heart of the research on high-energy physics.
5-
Every day, thousands of physicists use ROOT applications to analyze their
6-
data or to perform simulations. The ROOT software framework is
7-
foundational for the HEP ecosystem, providing capabilities such
8-
as IO, a C++ interpreter, GUI, and math libraries. It uses
9-
object-oriented concepts and build-time modules to layer between
10-
components. We believe additional layering formalisms will benefit
11-
ROOT and its users.
12-
13-
Currently, ROOT is built as all-in-one package. We are working to create
14-
a modular version of ROOT that provides a minimal base install of core
15-
features, then later add functionality via incremental builds. This
16-
requires introducing new layering mechanisms and extending the functionality
17-
of the existing ROOT package manager prototype.
18-
19-
tasks: |
20-
* Enhance the existing CMake build system rules to enable lazy building of packages
21-
* Bootstrap “RootBase”
22-
* Demonstrate “layered” lazy builds
23-
status: ongoing
24-
responsible: Pavlo Svirin
25-
26-
271
- name: "Using ROOT in the field of genome sequencing"
282
description: |
293
[ROOT](https://root.cern/) is a framework for data processing,
@@ -49,66 +23,6 @@
4923
* Investigate different ROOT file splitting techniques
5024
* Produce a comparison report
5125
52-
53-
- name: "Implementing missing features in xeus-cpp"
54-
description: |
55-
xeus-cpp is a Jupyter kernel for cpp based on the native implementation
56-
of the Jupyter protocol xeus. This enables users to write and execute
57-
C++ code interactively, seeing the results immediately. This REPL
58-
(read-eval-print-loop) nature allows rapid prototyping and iterations
59-
without the overhead of compiling and running separate C++ programs.
60-
This also achieves C++ and Python integration within a single Jupyter
61-
environment.
62-
63-
The xeus-cpp is a successor of xeus-clang-repl and xeus-cling. The project
64-
goal is to advance the project feature support to the extent of what’s
65-
supported in xeus-clang-repl and xeus-cling.
66-
67-
tasks: |
68-
* Fix occasional bugs in clang-repl directly in llvm upstream
69-
* Implement the value printing logic
70-
* Advance the wasm infrastructure
71-
* Write tutorials and demonstrators
72-
* Complete the transition of xeus-clang-repl to xeus-cpp
73-
74-
75-
- name: "Adoption of CppInterOp in ROOT"
76-
description: |
77-
Incremental compilation pipelines process code chunk-by-chunk by building
78-
an ever-growing translation unit. Code is then lowered into the LLVM IR
79-
and subsequently run by the LLVM JIT. Such a pipeline allows creation of
80-
efficient interpreters. The interpreter enables interactive exploration
81-
and makes the C++ language more user friendly. The incremental compilation
82-
mode is used by the interactive C++ interpreter, Cling, initially developed
83-
to enable interactive high-energy physics analysis in a C++ environment.
84-
The CppInterOp library provides a minimalist approach for other languages
85-
to identify C++ entities (variables, classes, etc.). This enables
86-
interoperability with C++ code, bringing the speed and efficiency of C++
87-
to simpler, more interactive languages like Python. CppInterOp provides
88-
primitives that are good for providing reflection information.
89-
90-
The ROOT is an open-source data analysis framework used by high energy
91-
physics and others to analyze petabytes of data, scientifically. The
92-
framework provides support for data storage and processing by relying
93-
on Cling, Clang, LLVM for building automatically efficient I/O
94-
representation of the necessary C++ objects. The I/O properties of each
95-
object is described in a compilable C++ file called a /dictionary/.
96-
ROOT’s I/O dictionary system relies on reflection information provided
97-
by Cling and Clang. However, the reflection information system has grown
98-
organically and now ROOT’s core/metacling system has been hard to maintain
99-
and integrate.
100-
101-
The goal of this project is to integrate CppInterOp in ROOT where possible.
102-
103-
tasks: |
104-
* To achieve this goal we expect several infrastructure items to be completed such as Windows support, WASM support
105-
* Make reusable github actions across multiple repositories
106-
* Sync the state of the dynamic library manager with the one in ROOT
107-
* Sync the state of callfunc/jitcall with the one in ROOT
108-
* Prepare the infrastructure for upstreaming to llvm
109-
* Propose an RFC and make a presentation to the ROOT development team
110-
111-
11226
- name: "Implement CppInterOp API exposing memory, ownership and thread safety information "
11327
description: |
11428
Incremental compilation pipelines process code chunk-by-chunk by building
@@ -445,61 +359,6 @@
445359
* Add support for the missing constructs.
446360
* Add proper tests and documentation.
447361
448-
449-
- name: "Add support for differentiating with respect to multidimensional arrays
450-
(or pointers) in Clad."
451-
description: |
452-
In mathematics and computer algebra, automatic differentiation (AD) is a set
453-
of techniques to numerically evaluate the derivative of a function specified
454-
by a computer program. Automatic differentiation is an alternative technique
455-
to Symbolic differentiation and Numerical differentiation (the method of
456-
finite differences). Clad is based on Clang which provides the necessary
457-
facilities for code transformation. The AD library is able to differentiate
458-
non-trivial functions, to find a partial derivative for trivial cases and
459-
has good unit test coverage.
460-
461-
Clad currently only supports differentiation with respect to
462-
single-dimensional arrays. Support for differentiation with respect to
463-
pointers is limited as well. This project aims to add support for
464-
multi-dimensional arrays (and pointers) in Clad.
465-
466-
After successful completion of the project the code snippet should work
467-
as expected:
468-
```cpp
469-
#include <iostream>
470-
#include "clad/Differentiator/Differentiator.h"
471-
472-
double fn(double arr[5][5]) {
473-
double res = 1 * arr[0][0] + 2 * arr[1][1] + 4 * arr[2][2];
474-
return res * 2;
475-
}
476-
477-
int main() {
478-
auto d_fn = clad::gradient(fn);
479-
double arr[5][5] = {{1, 2, 3, 4, 5},
480-
{6, 7, 8, 9, 10},
481-
{11, 12, 13, 14, 15},
482-
{16, 17, 18, 19, 20},
483-
{21, 22, 23, 24, 25}};
484-
double d_arr[5][5] = {};
485-
d_fn.execute(arr, d_arr);
486-
std::cout << "Derivative of d_fn wrt arr[0][0]: " << d_arr[0][0] << "\n"; // 2
487-
std::cout << "Derivative of d_fn wrt arr[1][1]: " << d_arr[1][1] << "\n"; // 4
488-
return 0;
489-
}
490-
```
491-
tasks: |
492-
The project consists of the following tasks:
493-
* Add support for differentiation with respect to multidimensional arrays
494-
(and pointers) in the reverse mode.
495-
* Add support for differentiation with respect to multidimensional arrays
496-
(and pointers) in the forward mode.
497-
* Extend the unit test coverage.
498-
* Develop tutorials and documentation.
499-
* Present the work at the relevant meetings and conferences.
500-
status: ongoing
501-
responsible: Vaibhav Thakkar
502-
503362
- name: "Broaden the Scope for the Floating-Point Error Estimation Framework in Clad"
504363

505364
description: |
@@ -645,6 +504,146 @@
645504
################################################################################
646505
# 2024 #
647506
################################################################################
507+
- name: "ROOT Superbuilds"
508+
description: |
509+
[ROOT](https://root.cern/) is a framework for data processing,
510+
born at CERN, at the heart of the research on high-energy physics.
511+
Every day, thousands of physicists use ROOT applications to analyze their
512+
data or to perform simulations. The ROOT software framework is
513+
foundational for the HEP ecosystem, providing capabilities such
514+
as IO, a C++ interpreter, GUI, and math libraries. It uses
515+
object-oriented concepts and build-time modules to layer between
516+
components. We believe additional layering formalisms will benefit
517+
ROOT and its users.
518+
519+
Currently, ROOT is built as all-in-one package. We are working to create
520+
a modular version of ROOT that provides a minimal base install of core
521+
features, then later add functionality via incremental builds. This
522+
requires introducing new layering mechanisms and extending the functionality
523+
of the existing ROOT package manager prototype.
524+
525+
tasks: |
526+
* Enhance the existing CMake build system rules to enable lazy building of packages
527+
* Bootstrap “RootBase”
528+
* Demonstrate “layered” lazy builds
529+
status: completed
530+
responsible: Pavlo Svirin
531+
532+
- name: "Implementing missing features in xeus-cpp"
533+
description: |
534+
xeus-cpp is a Jupyter kernel for cpp based on the native implementation
535+
of the Jupyter protocol xeus. This enables users to write and execute
536+
C++ code interactively, seeing the results immediately. This REPL
537+
(read-eval-print-loop) nature allows rapid prototyping and iterations
538+
without the overhead of compiling and running separate C++ programs.
539+
This also achieves C++ and Python integration within a single Jupyter
540+
environment.
541+
542+
The xeus-cpp is a successor of xeus-clang-repl and xeus-cling. The project
543+
goal is to advance the project feature support to the extent of what’s
544+
supported in xeus-clang-repl and xeus-cling.
545+
546+
tasks: |
547+
* Fix occasional bugs in clang-repl directly in llvm upstream
548+
* Implement the value printing logic
549+
* Advance the wasm infrastructure
550+
* Write tutorials and demonstrators
551+
* Complete the transition of xeus-clang-repl to xeus-cpp
552+
status: completed
553+
responsible: Anutosh Bhat
554+
555+
- name: "Adoption of CppInterOp in ROOT"
556+
description: |
557+
Incremental compilation pipelines process code chunk-by-chunk by building
558+
an ever-growing translation unit. Code is then lowered into the LLVM IR
559+
and subsequently run by the LLVM JIT. Such a pipeline allows creation of
560+
efficient interpreters. The interpreter enables interactive exploration
561+
and makes the C++ language more user friendly. The incremental compilation
562+
mode is used by the interactive C++ interpreter, Cling, initially developed
563+
to enable interactive high-energy physics analysis in a C++ environment.
564+
The CppInterOp library provides a minimalist approach for other languages
565+
to identify C++ entities (variables, classes, etc.). This enables
566+
interoperability with C++ code, bringing the speed and efficiency of C++
567+
to simpler, more interactive languages like Python. CppInterOp provides
568+
primitives that are good for providing reflection information.
569+
570+
The ROOT is an open-source data analysis framework used by high energy
571+
physics and others to analyze petabytes of data, scientifically. The
572+
framework provides support for data storage and processing by relying
573+
on Cling, Clang, LLVM for building automatically efficient I/O
574+
representation of the necessary C++ objects. The I/O properties of each
575+
object is described in a compilable C++ file called a /dictionary/.
576+
ROOT’s I/O dictionary system relies on reflection information provided
577+
by Cling and Clang. However, the reflection information system has grown
578+
organically and now ROOT’s core/metacling system has been hard to maintain
579+
and integrate.
580+
581+
The goal of this project is to integrate CppInterOp in ROOT where possible.
582+
583+
tasks: |
584+
* To achieve this goal we expect several infrastructure items to be completed such as Windows support, WASM support
585+
* Make reusable github actions across multiple repositories
586+
* Sync the state of the dynamic library manager with the one in ROOT
587+
* Sync the state of callfunc/jitcall with the one in ROOT
588+
* Prepare the infrastructure for upstreaming to llvm
589+
* Propose an RFC and make a presentation to the ROOT development team
590+
status: completed
591+
responsible: Aaron Jomy, Sahil Patidar
592+
593+
594+
- name: "Add support for differentiating with respect to multidimensional arrays
595+
(or pointers) in Clad."
596+
description: |
597+
In mathematics and computer algebra, automatic differentiation (AD) is a set
598+
of techniques to numerically evaluate the derivative of a function specified
599+
by a computer program. Automatic differentiation is an alternative technique
600+
to Symbolic differentiation and Numerical differentiation (the method of
601+
finite differences). Clad is based on Clang which provides the necessary
602+
facilities for code transformation. The AD library is able to differentiate
603+
non-trivial functions, to find a partial derivative for trivial cases and
604+
has good unit test coverage.
605+
606+
Clad currently only supports differentiation with respect to
607+
single-dimensional arrays. Support for differentiation with respect to
608+
pointers is limited as well. This project aims to add support for
609+
multi-dimensional arrays (and pointers) in Clad.
610+
611+
After successful completion of the project the code snippet should work
612+
as expected:
613+
```cpp
614+
#include <iostream>
615+
#include "clad/Differentiator/Differentiator.h"
616+
617+
double fn(double arr[5][5]) {
618+
double res = 1 * arr[0][0] + 2 * arr[1][1] + 4 * arr[2][2];
619+
return res * 2;
620+
}
621+
622+
int main() {
623+
auto d_fn = clad::gradient(fn);
624+
double arr[5][5] = {{1, 2, 3, 4, 5},
625+
{6, 7, 8, 9, 10},
626+
{11, 12, 13, 14, 15},
627+
{16, 17, 18, 19, 20},
628+
{21, 22, 23, 24, 25}};
629+
double d_arr[5][5] = {};
630+
d_fn.execute(arr, d_arr);
631+
std::cout << "Derivative of d_fn wrt arr[0][0]: " << d_arr[0][0] << "\n"; // 2
632+
std::cout << "Derivative of d_fn wrt arr[1][1]: " << d_arr[1][1] << "\n"; // 4
633+
return 0;
634+
}
635+
```
636+
tasks: |
637+
The project consists of the following tasks:
638+
* Add support for differentiation with respect to multidimensional arrays
639+
(and pointers) in the reverse mode.
640+
* Add support for differentiation with respect to multidimensional arrays
641+
(and pointers) in the forward mode.
642+
* Extend the unit test coverage.
643+
* Develop tutorials and documentation.
644+
* Present the work at the relevant meetings and conferences.
645+
status: completed
646+
responsible: Vaibhav Thakkar
648647

649648
- name: "Improving performance of BioDynaMo using ROOT C++ Modules"
650649
description: |

0 commit comments

Comments
 (0)