Skip to content

Commit 4d5db8e

Browse files
authored
Merge branch 'compiler-research:master' into frontPageLayoutOne
2 parents cef2f83 + d9412dd commit 4d5db8e

File tree

8 files changed

+161
-193
lines changed

8 files changed

+161
-193
lines changed

_data/meetinglist.yml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,43 @@
1+
- name: "CaaS Monthly Meeting"
2+
date: 2024-03-07 17:00:00 +0200
3+
time_cest: "17:00"
4+
connect: "[Link to zoom](https://princeton.zoom.us/j/99894195259?pwd=S1BRclMyY0NlQUx6bjBadldaU2t0UT09)"
5+
label: caas_07Mar2024
6+
agenda:
7+
- title: "IDD – A Platform Enabling Differential Debugging"
8+
speaker:
9+
image: "https://media.licdn.com/dms/image/C4E03AQHhvshc5Qb0ow/profile-displayphoto-shrink_800_800/0/1517263864752?e=1715212800&v=beta&t=6GUx6zvVq4rz1Va5rXGnla4LfH6b8Sd6rVWt-UYgAHM"
10+
name: "Martin Vasilev"
11+
bio: |
12+
Martin Vassilev has research interest in the area of the compiler
13+
construction and analysis of complex software systems. He has obtained
14+
his PhD in 2020 in the University of Plovdiv "Paisii Hilendarski"
15+
where he continued to develop his academic career. He is now senior
16+
assistant professor in the Faculty of Mathematics and Informatics. He
17+
continues to participate into the development of open source systems
18+
like IDD and others.
19+
description: |
20+
Debugging is a very time consuming task which is not well supported by
21+
existing tools. The existing methods do not provide tools enabling
22+
optimal developers’ productivity when debugging regressions in complex
23+
systems. It is described in this presentation a possible solution aiding
24+
differential debugging. The differential debugging technique performs
25+
analysis of the regressed system and identifying the cause of the
26+
unexpected behavior by comparing to a previous version of the same
27+
system. The prototype, idd, inspects two versions of the executable – a
28+
baseline and a regressed version. The interactive debugging session runs
29+
side by side both executables and allows to examine and to compare
30+
various internal states. The architecture can work with multiple
31+
information sources comparing data from different tools. Also it will be
32+
shown how idd can detect performance regressions using information from
33+
third-party performance facilities.
34+
- title: Update
35+
speaker: Vassil Vassilev
36+
slides: "/assets/presentations/CR_07_03_2024.pdf"
37+
- title: Next meeting
38+
speaker: Vassil Vassilev
39+
link: 4 Apr 1700
40+
141
- name: "CaaS Monthly Meeting"
242
date: 2024-02-01 17:00:00 +0200
343
time_cest: "17:00"

_data/news.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
1+
- date: 1 March 2024
2+
headline: "CppInterOp 1.2.0 released"
3+
link: "https://github.com/compiler-research/CppInterOp/releases/tag/v1.2.0"
4+
5+
- date: 29 February 2024
6+
headline: "Clad 1.4 released"
7+
link: "https://github.com/vgvassilev/clad/releases/tag/v1.4"
8+
19
- date: 11 February 2024
210
headline: "Clad 1.3 released"
311
link: "https://github.com/vgvassilev/clad/releases/tag/v1.3"

_data/openprojectlist.yml

Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,116 @@
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+
24+
- name: "Improving performance of BioDynaMo using ROOT C++ Modules"
25+
description: |
26+
[ROOT](https://root.cern/) is a framework for data processing,
27+
born at CERN, at the heart of the research on high-energy physics.
28+
Every day, thousands of physicists use ROOT applications to analyze their
29+
data or to perform simulations. The ROOT software framework is
30+
foundational for the HEP ecosystem, providing capabilities such
31+
as IO, a C++ interpreter, GUI, and math libraries. It uses
32+
object-oriented concepts and build-time modules to layer between
33+
components. We believe additional layering formalisms will benefit
34+
ROOT and its users.
35+
36+
BioDynaMo is an agent-based simulation platform that enables users
37+
to perform simulations of previously unachievable scale and complexity,
38+
making it possible to tackle challenging scientific research questions.
39+
The project has a wide range of applications in cancer research,
40+
epidemiology, and social sciences.
41+
42+
BioDynaMo incorporates ROOT for several crucial functionalities such
43+
as statistical analysis, random number generation, C++-based Jupyter
44+
notebooks, and IO. Some features rely on efficient reflection
45+
information about BioDynaMo’s and user-defined C++ classes. This project
46+
is about improving the performance of the reflection system by upgrading
47+
to C++ modules.
48+
49+
tasks: |
50+
* Rework the cmake rules to incorporate efficiently ROOT via `FetchContent`
51+
* Replace invocations of `genreflex` in favor of `rootcling`
52+
* Enable C++ modules in `rootcling`
53+
* Produce a comparison report
54+
55+
- name: "Using ROOT in the field of genome sequencing"
56+
description: |
57+
[ROOT](https://root.cern/) is a framework for data processing,
58+
born at CERN, at the heart of the research on high-energy physics.
59+
Every day, thousands of physicists use ROOT applications to analyze their
60+
data or to perform simulations. The ROOT software framework is
61+
foundational for the HEP ecosystem, providing capabilities such
62+
as IO, a C++ interpreter, GUI, and math libraries. It uses
63+
object-oriented concepts and build-time modules to layer between
64+
components. We believe additional layering formalisms will benefit
65+
ROOT and its users.
66+
67+
ROOT has broader scientific uses than the field of high energy
68+
physics. Several studies have shown promising applications of
69+
the ROOT I/O system in the field of genome sequencing. This
70+
project is about extending the developed capability in
71+
[GeneROOT](https://github.com/GeneROOT) and understanding better
72+
the requirements of the field.
73+
74+
tasks: |
75+
* Reproduce the results from previous comparisons against the ROOT master
76+
* Investigate changing the compression strategies
77+
* Investigate different ROOT file splitting techniques
78+
* Produce a comparison report
79+
80+
- name: "Implement Differentiating of the Kokkos Framework"
81+
description: |
82+
In mathematics and computer algebra, automatic differentiation (AD) is
83+
a set of techniques to numerically evaluate the derivative of a function
84+
specified by a computer program. Automatic differentiation is an
85+
alternative technique to Symbolic differentiation and Numerical
86+
differentiation (the method of finite differences). Clad is based on
87+
Clang which provides the necessary facilities for code transformation.
88+
The AD library can differentiate non-trivial functions, to find a partial
89+
derivative for trivial cases and has good unit test coverage.
90+
91+
The Kokkos C++ Performance Portability Ecosystem is a production level
92+
solution for writing modern C++ applications in a hardware agnostic way.
93+
It is part of the US Department of Energies Exascale Project – the leading
94+
effort in the US to prepare the HPC community for the next generation of
95+
super computing platforms. The Ecosystem consists of multiple libraries
96+
addressing the primary concerns for developing and maintaining applications
97+
in a portable way. The three main components are the Kokkos Core Programming
98+
Model, the Kokkos Kernels Math Libraries and the Kokkos Profiling and
99+
Debugging Tools.
100+
101+
The Kokkos framework is used in several domains including climate modeling
102+
where gradients are important part of the simulation process. This project
103+
aims at teaching Clad to differentiate Kokkos entities in a performance
104+
portable way
105+
106+
tasks: |
107+
* Implement common test cases for Kokkos in Clad
108+
* Add support for Kokkos functors
109+
* Add support for Kokkos lambdas
110+
* Incorporate the changes from the [initial Kokkos PR](https://github.com/vgvassilev/clad/pull/783)
111+
* Enhance existing benchmarks demonstrating effectiveness of Clad for Kokkos
112+
* [Stretch goal] Performance benchmarks
113+
1114
- name: "Integrate a Large Language Model with the xeus-cpp Jupyter kernel"
2115
description: |
3116
xeus-cpp is a Jupyter kernel for cpp based on the native implementation

_pages/vectorautodiff.md

Lines changed: 0 additions & 193 deletions
This file was deleted.
1.13 MB
Binary file not shown.

images/autodiff-example-f_grad.png

-43.2 KB
Binary file not shown.

images/autodiff-forward.png

-23.7 KB
Binary file not shown.

images/vector-operations.png

-23.4 KB
Binary file not shown.

0 commit comments

Comments
 (0)