add section about parallelization in the OPENMP package

This commit is contained in:
Axel Kohlmeyer
2021-09-05 22:27:39 -04:00
parent 6e57f4f08f
commit 6e17446f38
2 changed files with 21 additions and 2 deletions

View File

@ -0,0 +1,16 @@
OpenMP Parallelism
^^^^^^^^^^^^^^^^^^
The styles in the INTEL, KOKKOS, and OPENMP package offer to use OpenMP
thread parallelism to predominantly distribute loops over local data
and thus follow an orthogonal parallelization strategy to the
decomposition into spatial domains used by the :doc:`MPI partitioning
<Developer_par_part>`. For clarity, this section discusses only the
implementation in the OPENMP package as it is the simplest. The INTEL
and KOKKOS package offer additional options and are more complex since
they support more features and different hardware like co-processors
or GPUs.
Avoiding data races
-------------------

View File

@ -5,10 +5,12 @@ LAMMPS is from ground up designed to be running in parallel using the
MPI standard with distributed data via domain decomposition. The MPI standard with distributed data via domain decomposition. The
parallelization has to be efficient to enable good strong scaling (= parallelization has to be efficient to enable good strong scaling (=
good speedup for the same system) and good weak scaling (= the good speedup for the same system) and good weak scaling (= the
computational cost of enlarging the system is linear with the system computational cost of enlarging the system is proportional to the system
size). Additional parallelization using GPUs or OpenMP can then be size). Additional parallelization using GPUs or OpenMP can then be
applied within the sub-domain assigned to an MPI process. For clarity, applied within the sub-domain assigned to an MPI process. For clarity,
most of the following illustrations show the 2d simulation case. most of the following illustrations show the 2d simulation case. The
underlying algorithms in those cases, however, apply to both 2d and 3d
cases equally well.
.. toctree:: .. toctree::
:maxdepth: 1 :maxdepth: 1
@ -17,3 +19,4 @@ most of the following illustrations show the 2d simulation case.
Developer_par_comm Developer_par_comm
Developer_par_neigh Developer_par_neigh
Developer_par_long Developer_par_long
Developer_par_openmp