Skip to content

Commit

Permalink
Merge branch 'chore/updateLinks' into develop
Browse files Browse the repository at this point in the history
Update scicomp.uni-kl.de links to scicomp.rptu.de.
  • Loading branch information
jblueh committed Jul 12, 2024
2 parents 8c89798 + f3e40a7 commit 8d80a38
Show file tree
Hide file tree
Showing 123 changed files with 249 additions and 249 deletions.
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# OpDiLib

[OpDiLib](https://www.scicomp.uni-kl.de/software/opdi) (Open Multiprocessing Differentiation Library) is a universal add-on for reverse mode operator overloading AD tools that enables the differentiation of OpenMP parallel code.
[OpDiLib](https://scicomp.rptu.de/software/opdi) (Open Multiprocessing Differentiation Library) is a universal add-on for reverse mode operator overloading AD tools that enables the differentiation of OpenMP parallel code.

It makes use of modern OpenMP features around OMPT to deduce a parallel reverse pass without any additional modifications of the parallel source code. Additionally, we provide a second mode of operation that works via replacement macros for OpenMP's directives and clauses as well as replacements for OpenMP's runtime functions. This mode of operation can also be used with compilers that do not support OMPT. There are no restrictions on data access patterns so that a first differentiated parallel code is obtained with little to no effort. As a next step, the parallel performance of the reverse pass can be optimized with various tools. One important aspect is disabling atomic updates on adjoint variables where appropriate. If the underlying AD tool is capable of differentiating MPI, for example via the add-on [MeDiPack](https://www.scicomp.uni-kl.de/software/medi/), OpDiLib can also be employed for a differentiation of OpenMP-MPI hybrid parallel codes.
It makes use of modern OpenMP features around OMPT to deduce a parallel reverse pass without any additional modifications of the parallel source code. Additionally, we provide a second mode of operation that works via replacement macros for OpenMP's directives and clauses as well as replacements for OpenMP's runtime functions. This mode of operation can also be used with compilers that do not support OMPT. There are no restrictions on data access patterns so that a first differentiated parallel code is obtained with little to no effort. As a next step, the parallel performance of the reverse pass can be optimized with various tools. One important aspect is disabling atomic updates on adjoint variables where appropriate. If the underlying AD tool is capable of differentiating MPI, for example via the add-on [MeDiPack](https://scicomp.rptu.de/software/medi/), OpDiLib can also be employed for a differentiation of OpenMP-MPI hybrid parallel codes.

The [Scientific Computing Group](https://www.scicomp.uni-kl.de) at the University of Kaiserslautern-Landau (RPTU) develops OpDiLib and will enhance and extend OpDiLib in the future.
The [Scientific Computing Group](https://scicomp.rptu.de) at the University of Kaiserslautern-Landau (RPTU) develops OpDiLib and will enhance and extend OpDiLib in the future.
There is a newsletter available at [[email protected]](https://lists.uni-kl.de/scicomp/subscribe/opdi-info).
If you want to contact us, please write a mail to [[email protected]](mailto:[email protected]).

Expand All @@ -19,7 +19,7 @@ OpDiLib supports all directives, clauses and runtime functions of the OpenMP 2.5

If you have a code that is differentiated with a serial AD tool and parallelize it using OpenMP, the procedure of obtaining an efficient parallel differentiated code with OpDiLib is as follows.

1. **Couple OpDiLib with your AD tool.** This step can be skipped if you use an AD tool that already has OpDiLib bindings, for example [CoDiPack](https://www.scicomp.uni-kl.de/software/codi/), which has OpDiLib support since [version 2.1](https://github.com/SciCompKL/CoDiPack/releases/tag/v2.1.0).
1. **Couple OpDiLib with your AD tool.** This step can be skipped if you use an AD tool that already has OpDiLib bindings, for example [CoDiPack](https://scicomp.rptu.de/software/codi/), which has OpDiLib support since [version 2.1](https://github.com/SciCompKL/CoDiPack/releases/tag/v2.1.0).
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.
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.

Expand Down Expand Up @@ -50,7 +50,7 @@ If you use OpDiLib in one of your applications and write a paper, please cite us

## Minimal Example

The following minimal example assumes that [CoDiPack](https://www.scicomp.uni-kl.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.
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.

### OMPT Backend

Expand Down
4 changes: 2 additions & 2 deletions include/opdi.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
*
* Copyright (C) 2020-2022 Chair for Scientific Computing (SciComp), TU Kaiserslautern
* Copyright (C) 2023-2024 Chair for Scientific Computing (SciComp), University of Kaiserslautern-Landau
* Homepage: http://www.scicomp.uni-kl.de
* Homepage: https://scicomp.rptu.de
* Contact: Prof. Nicolas R. Gauger ([email protected])
*
* Lead developer: Johannes Blühdorn (SciComp, University of Kaiserslautern-Landau)
*
* This file is part of OpDiLib (http://www.scicomp.uni-kl.de/software/opdi).
* This file is part of OpDiLib (https://scicomp.rptu.de/software/opdi).
*
* OpDiLib is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later
Expand Down
4 changes: 2 additions & 2 deletions include/opdi.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
*
* Copyright (C) 2020-2022 Chair for Scientific Computing (SciComp), TU Kaiserslautern
* Copyright (C) 2023-2024 Chair for Scientific Computing (SciComp), University of Kaiserslautern-Landau
* Homepage: http://www.scicomp.uni-kl.de
* Homepage: https://scicomp.rptu.de
* Contact: Prof. Nicolas R. Gauger ([email protected])
*
* Lead developer: Johannes Blühdorn (SciComp, University of Kaiserslautern-Landau)
*
* This file is part of OpDiLib (http://www.scicomp.uni-kl.de/software/opdi).
* This file is part of OpDiLib (https://scicomp.rptu.de/software/opdi).
*
* OpDiLib is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later
Expand Down
4 changes: 2 additions & 2 deletions include/opdi/backend/backendInterface.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
*
* Copyright (C) 2020-2022 Chair for Scientific Computing (SciComp), TU Kaiserslautern
* Copyright (C) 2023-2024 Chair for Scientific Computing (SciComp), University of Kaiserslautern-Landau
* Homepage: http://www.scicomp.uni-kl.de
* Homepage: https://scicomp.rptu.de
* Contact: Prof. Nicolas R. Gauger ([email protected])
*
* Lead developer: Johannes Blühdorn (SciComp, University of Kaiserslautern-Landau)
*
* This file is part of OpDiLib (http://www.scicomp.uni-kl.de/software/opdi).
* This file is part of OpDiLib (https://scicomp.rptu.de/software/opdi).
*
* OpDiLib is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later
Expand Down
4 changes: 2 additions & 2 deletions include/opdi/backend/macro/dataTools.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
*
* Copyright (C) 2020-2022 Chair for Scientific Computing (SciComp), TU Kaiserslautern
* Copyright (C) 2023-2024 Chair for Scientific Computing (SciComp), University of Kaiserslautern-Landau
* Homepage: http://www.scicomp.uni-kl.de
* Homepage: https://scicomp.rptu.de
* Contact: Prof. Nicolas R. Gauger ([email protected])
*
* Lead developer: Johannes Blühdorn (SciComp, University of Kaiserslautern-Landau)
*
* This file is part of OpDiLib (http://www.scicomp.uni-kl.de/software/opdi).
* This file is part of OpDiLib (https://scicomp.rptu.de/software/opdi).
*
* OpDiLib is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later
Expand Down
4 changes: 2 additions & 2 deletions include/opdi/backend/macro/implicitBarrierTools.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
*
* Copyright (C) 2020-2022 Chair for Scientific Computing (SciComp), TU Kaiserslautern
* Copyright (C) 2023-2024 Chair for Scientific Computing (SciComp), University of Kaiserslautern-Landau
* Homepage: http://www.scicomp.uni-kl.de
* Homepage: https://scicomp.rptu.de
* Contact: Prof. Nicolas R. Gauger ([email protected])
*
* Lead developer: Johannes Blühdorn (SciComp, University of Kaiserslautern-Landau)
*
* This file is part of OpDiLib (http://www.scicomp.uni-kl.de/software/opdi).
* This file is part of OpDiLib (https://scicomp.rptu.de/software/opdi).
*
* OpDiLib is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later
Expand Down
4 changes: 2 additions & 2 deletions include/opdi/backend/macro/macroBackend.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
*
* Copyright (C) 2020-2022 Chair for Scientific Computing (SciComp), TU Kaiserslautern
* Copyright (C) 2023-2024 Chair for Scientific Computing (SciComp), University of Kaiserslautern-Landau
* Homepage: http://www.scicomp.uni-kl.de
* Homepage: https://scicomp.rptu.de
* Contact: Prof. Nicolas R. Gauger ([email protected])
*
* Lead developer: Johannes Blühdorn (SciComp, University of Kaiserslautern-Landau)
*
* This file is part of OpDiLib (http://www.scicomp.uni-kl.de/software/opdi).
* This file is part of OpDiLib (https://scicomp.rptu.de/software/opdi).
*
* OpDiLib is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later
Expand Down
4 changes: 2 additions & 2 deletions include/opdi/backend/macro/macroBackend.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
*
* Copyright (C) 2020-2022 Chair for Scientific Computing (SciComp), TU Kaiserslautern
* Copyright (C) 2023-2024 Chair for Scientific Computing (SciComp), University of Kaiserslautern-Landau
* Homepage: http://www.scicomp.uni-kl.de
* Homepage: https://scicomp.rptu.de
* Contact: Prof. Nicolas R. Gauger ([email protected])
*
* Lead developer: Johannes Blühdorn (SciComp, University of Kaiserslautern-Landau)
*
* This file is part of OpDiLib (http://www.scicomp.uni-kl.de/software/opdi).
* This file is part of OpDiLib (https://scicomp.rptu.de/software/opdi).
*
* OpDiLib is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later
Expand Down
4 changes: 2 additions & 2 deletions include/opdi/backend/macro/macros.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
*
* Copyright (C) 2020-2022 Chair for Scientific Computing (SciComp), TU Kaiserslautern
* Copyright (C) 2023-2024 Chair for Scientific Computing (SciComp), University of Kaiserslautern-Landau
* Homepage: http://www.scicomp.uni-kl.de
* Homepage: https://scicomp.rptu.de
* Contact: Prof. Nicolas R. Gauger ([email protected])
*
* Lead developer: Johannes Blühdorn (SciComp, University of Kaiserslautern-Landau)
*
* This file is part of OpDiLib (http://www.scicomp.uni-kl.de/software/opdi).
* This file is part of OpDiLib (https://scicomp.rptu.de/software/opdi).
*
* OpDiLib is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later
Expand Down
4 changes: 2 additions & 2 deletions include/opdi/backend/macro/mutexIdentifiers.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
*
* Copyright (C) 2020-2022 Chair for Scientific Computing (SciComp), TU Kaiserslautern
* Copyright (C) 2023-2024 Chair for Scientific Computing (SciComp), University of Kaiserslautern-Landau
* Homepage: http://www.scicomp.uni-kl.de
* Homepage: https://scicomp.rptu.de
* Contact: Prof. Nicolas R. Gauger ([email protected])
*
* Lead developer: Johannes Blühdorn (SciComp, University of Kaiserslautern-Landau)
*
* This file is part of OpDiLib (http://www.scicomp.uni-kl.de/software/opdi).
* This file is part of OpDiLib (https://scicomp.rptu.de/software/opdi).
*
* OpDiLib is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later
Expand Down
4 changes: 2 additions & 2 deletions include/opdi/backend/macro/probeTools.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
*
* Copyright (C) 2020-2022 Chair for Scientific Computing (SciComp), TU Kaiserslautern
* Copyright (C) 2023-2024 Chair for Scientific Computing (SciComp), University of Kaiserslautern-Landau
* Homepage: http://www.scicomp.uni-kl.de
* Homepage: https://scicomp.rptu.de
* Contact: Prof. Nicolas R. Gauger ([email protected])
*
* Lead developer: Johannes Blühdorn (SciComp, University of Kaiserslautern-Landau)
*
* This file is part of OpDiLib (http://www.scicomp.uni-kl.de/software/opdi).
* This file is part of OpDiLib (https://scicomp.rptu.de/software/opdi).
*
* OpDiLib is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later
Expand Down
4 changes: 2 additions & 2 deletions include/opdi/backend/macro/probes.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
*
* Copyright (C) 2020-2022 Chair for Scientific Computing (SciComp), TU Kaiserslautern
* Copyright (C) 2023-2024 Chair for Scientific Computing (SciComp), University of Kaiserslautern-Landau
* Homepage: http://www.scicomp.uni-kl.de
* Homepage: https://scicomp.rptu.de
* Contact: Prof. Nicolas R. Gauger ([email protected])
*
* Lead developer: Johannes Blühdorn (SciComp, University of Kaiserslautern-Landau)
*
* This file is part of OpDiLib (http://www.scicomp.uni-kl.de/software/opdi).
* This file is part of OpDiLib (https://scicomp.rptu.de/software/opdi).
*
* OpDiLib is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later
Expand Down
4 changes: 2 additions & 2 deletions include/opdi/backend/macro/reductionTools.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
*
* Copyright (C) 2020-2022 Chair for Scientific Computing (SciComp), TU Kaiserslautern
* Copyright (C) 2023-2024 Chair for Scientific Computing (SciComp), University of Kaiserslautern-Landau
* Homepage: http://www.scicomp.uni-kl.de
* Homepage: https://scicomp.rptu.de
* Contact: Prof. Nicolas R. Gauger ([email protected])
*
* Lead developer: Johannes Blühdorn (SciComp, University of Kaiserslautern-Landau)
*
* This file is part of OpDiLib (http://www.scicomp.uni-kl.de/software/opdi).
* This file is part of OpDiLib (https://scicomp.rptu.de/software/opdi).
*
* OpDiLib is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later
Expand Down
4 changes: 2 additions & 2 deletions include/opdi/backend/ompt/callbacksBase.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
*
* Copyright (C) 2020-2022 Chair for Scientific Computing (SciComp), TU Kaiserslautern
* Copyright (C) 2023-2024 Chair for Scientific Computing (SciComp), University of Kaiserslautern-Landau
* Homepage: http://www.scicomp.uni-kl.de
* Homepage: https://scicomp.rptu.de
* Contact: Prof. Nicolas R. Gauger ([email protected])
*
* Lead developer: Johannes Blühdorn (SciComp, University of Kaiserslautern-Landau)
*
* This file is part of OpDiLib (http://www.scicomp.uni-kl.de/software/opdi).
* This file is part of OpDiLib (https://scicomp.rptu.de/software/opdi).
*
* OpDiLib is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later
Expand Down
4 changes: 2 additions & 2 deletions include/opdi/backend/ompt/implicitTaskCallbacks.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
*
* Copyright (C) 2020-2022 Chair for Scientific Computing (SciComp), TU Kaiserslautern
* Copyright (C) 2023-2024 Chair for Scientific Computing (SciComp), University of Kaiserslautern-Landau
* Homepage: http://www.scicomp.uni-kl.de
* Homepage: https://scicomp.rptu.de
* Contact: Prof. Nicolas R. Gauger ([email protected])
*
* Lead developer: Johannes Blühdorn (SciComp, University of Kaiserslautern-Landau)
*
* This file is part of OpDiLib (http://www.scicomp.uni-kl.de/software/opdi).
* This file is part of OpDiLib (https://scicomp.rptu.de/software/opdi).
*
* OpDiLib is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later
Expand Down
4 changes: 2 additions & 2 deletions include/opdi/backend/ompt/macros.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
*
* Copyright (C) 2020-2022 Chair for Scientific Computing (SciComp), TU Kaiserslautern
* Copyright (C) 2023-2024 Chair for Scientific Computing (SciComp), University of Kaiserslautern-Landau
* Homepage: http://www.scicomp.uni-kl.de
* Homepage: https://scicomp.rptu.de
* Contact: Prof. Nicolas R. Gauger ([email protected])
*
* Lead developer: Johannes Blühdorn (SciComp, University of Kaiserslautern-Landau)
*
* This file is part of OpDiLib (http://www.scicomp.uni-kl.de/software/opdi).
* This file is part of OpDiLib (https://scicomp.rptu.de/software/opdi).
*
* OpDiLib is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later
Expand Down
4 changes: 2 additions & 2 deletions include/opdi/backend/ompt/masterCallbacks.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
*
* Copyright (C) 2020-2022 Chair for Scientific Computing (SciComp), TU Kaiserslautern
* Copyright (C) 2023-2024 Chair for Scientific Computing (SciComp), University of Kaiserslautern-Landau
* Homepage: http://www.scicomp.uni-kl.de
* Homepage: https://scicomp.rptu.de
* Contact: Prof. Nicolas R. Gauger ([email protected])
*
* Lead developer: Johannes Blühdorn (SciComp, University of Kaiserslautern-Landau)
*
* This file is part of OpDiLib (http://www.scicomp.uni-kl.de/software/opdi).
* This file is part of OpDiLib (https://scicomp.rptu.de/software/opdi).
*
* OpDiLib is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later
Expand Down
4 changes: 2 additions & 2 deletions include/opdi/backend/ompt/mutexCallbacks.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
*
* Copyright (C) 2020-2022 Chair for Scientific Computing (SciComp), TU Kaiserslautern
* Copyright (C) 2023-2024 Chair for Scientific Computing (SciComp), University of Kaiserslautern-Landau
* Homepage: http://www.scicomp.uni-kl.de
* Homepage: https://scicomp.rptu.de
* Contact: Prof. Nicolas R. Gauger ([email protected])
*
* Lead developer: Johannes Blühdorn (SciComp, University of Kaiserslautern-Landau)
*
* This file is part of OpDiLib (http://www.scicomp.uni-kl.de/software/opdi).
* This file is part of OpDiLib (https://scicomp.rptu.de/software/opdi).
*
* OpDiLib is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later
Expand Down
Loading

0 comments on commit 8d80a38

Please sign in to comment.