You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+30-13Lines changed: 30 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -23,31 +23,48 @@ If you have a code that is differentiated with a serial AD tool and parallelize
23
23
2.**Obtain a first parallel differentiated version of your code.** If your compiler supports OMPT, it suffices to add a few lines of code for the initialization and finalization of OpDiLib. Otherwise, you have to use OpDiLib's macro backend, which involves rewriting your OpenMP constructs according to OpDiLib's macro interface. Both approaches are demonstrated in the minimal example below.
24
24
3.**Optimize the performance of the parallel reverse pass.** Check your parallel forward code for parts that do not involve shared reading. Use OpDiLib's adjoint access control tools to disable atomic adjoints for these parts. You may also revise your data access patterns to eliminate additional instances of shared reading.
25
25
26
-
## Publication
26
+
## Publications
27
27
28
-
For further details about OpDiLib's design, features and modes of operation, please refer to our publication
28
+
For further details about OpDiLib's design, features, and modes of operation, please refer to our publication
29
29
[Event-Based Automatic Differentiation of OpenMP with OpDiLib](https://doi.org/10.1145/3570159).
30
-
If you use OpDiLib in one of your applications and write a paper, please cite us!
31
30
32
31
~~~~{.txt}
33
32
@article{BluehdornSG2023,
34
-
author = {Bl\"{u}hdorn, Johannes and Sagebaum, Max and Gauger, Nicolas R.},
35
33
title = {{Event-Based Automatic Differentiation of OpenMP with OpDiLib}},
34
+
author = {Bl\"{u}hdorn, Johannes and Sagebaum, Max and Gauger, Nicolas R.},
36
35
year = {2023},
37
-
issue_date = {March 2023},
38
-
publisher = {Association for Computing Machinery},
39
-
address = {New York, NY, USA},
36
+
month = {03},
37
+
journal = {ACM Trans. Math. Softw.},
40
38
volume = {49},
41
39
number = {1},
42
-
url = {https://doi.org/10.1145/3570159},
43
-
doi = {10.1145/3570159},
44
-
journal = {ACM Trans. Math. Softw.},
45
-
month = {mar},
46
-
articleno = {3},
47
-
numpages = {31}
40
+
note = {Article No.: 3},
41
+
pages = {1--31},
42
+
publisher = {Association for Computing Machinery},
43
+
address = {New York, NY, USA},
44
+
doi = {10.1145/3570159}
45
+
}
46
+
~~~~
47
+
48
+
Additional details on applying OpDiLib in a large software with an advanced AD workflow are given in our publication
49
+
[Hybrid parallel discrete adjoints in SU2](https://doi.org/10.1016/j.compfluid.2024.106528).
50
+
51
+
~~~~{.txt}
52
+
@article{BluehdornGAG2025,
53
+
title = {Hybrid parallel discrete adjoints in {SU2}},
54
+
author = {Bl\"{u}hdorn, Johannes and Gomes, Pedro and Aehle, Max and Gauger, Nicolas R.},
55
+
year = {2025},
56
+
month = {01},
57
+
journal = {Computers & Fluids},
58
+
volume = {289},
59
+
note = {Article 106528},
60
+
pages = {1--18},
61
+
publisher = {Elsevier},
62
+
doi = {10.1016/j.compfluid.2024.106528}
48
63
}
49
64
~~~~
50
65
66
+
If you use OpDiLib in one of your applications and write a paper, please cite us!
67
+
51
68
## Minimal Example
52
69
53
70
The following minimal example assumes that [CoDiPack](https://scicomp.rptu.de/software/codi/) is used as the underlying AD tool. You need CoDiPack [version 2.1](https://github.com/SciCompKL/CoDiPack/releases/tag/v2.1.0) or newer. For additional examples, please refer to OpDiLib's test suite.
0 commit comments