rename USER-OMP to OPENMP

This commit is contained in:
Axel Kohlmeyer
2021-06-29 17:48:22 -04:00
parent c085e55695
commit 1dc25b0e10
586 changed files with 257 additions and 276 deletions

2
.github/CODEOWNERS vendored
View File

@ -41,7 +41,7 @@ src/ML-PACE/* @yury-lysogorskiy
src/USER-PLUMED/* @gtribello src/USER-PLUMED/* @gtribello
src/USER-PHONON/* @lingtikong src/USER-PHONON/* @lingtikong
src/USER-PTM/* @pmla src/USER-PTM/* @pmla
src/USER-OMP/* @akohlmey src/OPENMP/* @akohlmey
src/USER-QMMM/* @akohlmey src/USER-QMMM/* @akohlmey
src/USER-REAXC/* @hasanmetin src/USER-REAXC/* @hasanmetin
src/USER-REACTION/* @jrgissing src/USER-REACTION/* @jrgissing

View File

@ -148,7 +148,7 @@ set(STANDARD_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS DIPOLE
ML-RANN USER-REACTION USER-REAXC USER-SCAFACOS USER-SDPD MACHDYN USER-SMTBQ USER-SPH ML-RANN USER-REACTION USER-REAXC USER-SCAFACOS USER-SDPD MACHDYN USER-SMTBQ USER-SPH
USER-TALLY USER-UEF USER-VTK ML-QUIP USER-QMMM USER-YAFF ML-PACE USER-BROWNIAN) USER-TALLY USER-UEF USER-VTK ML-QUIP USER-QMMM USER-YAFF ML-PACE USER-BROWNIAN)
set(SUFFIX_PACKAGES CORESHELL GPU KOKKOS OPT USER-INTEL USER-OMP) set(SUFFIX_PACKAGES CORESHELL GPU KOKKOS OPT USER-INTEL OPENMP)
foreach(PKG ${STANDARD_PACKAGES} ${SUFFIX_PACKAGES}) foreach(PKG ${STANDARD_PACKAGES} ${SUFFIX_PACKAGES})
option(PKG_${PKG} "Build ${PKG} Package" OFF) option(PKG_${PKG} "Build ${PKG} Package" OFF)
@ -496,7 +496,7 @@ endif()
# packages which selectively include variants based on enabled styles # packages which selectively include variants based on enabled styles
# e.g. accelerator packages # e.g. accelerator packages
###################################################################### ######################################################################
foreach(PKG_WITH_INCL CORESHELL QEQ USER-OMP USER-SDPD KOKKOS OPT USER-INTEL GPU) foreach(PKG_WITH_INCL CORESHELL QEQ OPENMP USER-SDPD KOKKOS OPT USER-INTEL GPU)
if(PKG_${PKG_WITH_INCL}) if(PKG_${PKG_WITH_INCL})
include(Packages/${PKG_WITH_INCL}) include(Packages/${PKG_WITH_INCL})
endif() endif()

View File

@ -0,0 +1,40 @@
set(OPENMP_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/OPENMP)
set(OPENMP_SOURCES ${OPENMP_SOURCES_DIR}/thr_data.cpp
${OPENMP_SOURCES_DIR}/thr_omp.cpp
${OPENMP_SOURCES_DIR}/fix_omp.cpp
${OPENMP_SOURCES_DIR}/fix_nh_omp.cpp
${OPENMP_SOURCES_DIR}/fix_nh_sphere_omp.cpp
${OPENMP_SOURCES_DIR}/domain_omp.cpp)
target_compile_definitions(lammps PRIVATE -DLMP_USER_OMP)
set_property(GLOBAL PROPERTY "OMP_SOURCES" "${OPENMP_SOURCES}")
# detects styles which have OPENMP version
RegisterStylesExt(${OPENMP_SOURCES_DIR} omp OMP_SOURCES)
RegisterFixStyle(${OPENMP_SOURCES_DIR}/fix_omp.h)
get_property(OPENMP_SOURCES GLOBAL PROPERTY OMP_SOURCES)
# manually add package dependent source files from OPENMP that do not provide styles
if(PKG_ASPHERE)
list(APPEND OPENMP_SOURCES ${OPENMP_SOURCES_DIR}/fix_nh_asphere_omp.cpp)
endif()
if(PKG_RIGID)
list(APPEND OPENMP_SOURCES ${OPENMP_SOURCES_DIR}/fix_rigid_nh_omp.cpp)
endif()
if(PKG_USER-REAXC)
list(APPEND OPENMP_SOURCES ${OPENMP_SOURCES_DIR}/reaxc_bond_orders_omp.cpp
${OPENMP_SOURCES_DIR}/reaxc_hydrogen_bonds_omp.cpp
${OPENMP_SOURCES_DIR}/reaxc_nonbonded_omp.cpp
${OPENMP_SOURCES_DIR}/reaxc_bonds_omp.cpp
${OPENMP_SOURCES_DIR}/reaxc_init_md_omp.cpp
${OPENMP_SOURCES_DIR}/reaxc_torsion_angles_omp.cpp
${OPENMP_SOURCES_DIR}/reaxc_forces_omp.cpp
${OPENMP_SOURCES_DIR}/reaxc_multi_body_omp.cpp
${OPENMP_SOURCES_DIR}/reaxc_valence_angles_omp.cpp)
endif()
target_sources(lammps PRIVATE ${OPENMP_SOURCES})
target_include_directories(lammps PRIVATE ${OPENMP_SOURCES_DIR})

View File

@ -1,40 +0,0 @@
set(USER-OMP_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/USER-OMP)
set(USER-OMP_SOURCES ${USER-OMP_SOURCES_DIR}/thr_data.cpp
${USER-OMP_SOURCES_DIR}/thr_omp.cpp
${USER-OMP_SOURCES_DIR}/fix_omp.cpp
${USER-OMP_SOURCES_DIR}/fix_nh_omp.cpp
${USER-OMP_SOURCES_DIR}/fix_nh_sphere_omp.cpp
${USER-OMP_SOURCES_DIR}/domain_omp.cpp)
target_compile_definitions(lammps PRIVATE -DLMP_USER_OMP)
set_property(GLOBAL PROPERTY "OMP_SOURCES" "${USER-OMP_SOURCES}")
# detects styles which have USER-OMP version
RegisterStylesExt(${USER-OMP_SOURCES_DIR} omp OMP_SOURCES)
RegisterFixStyle(${USER-OMP_SOURCES_DIR}/fix_omp.h)
get_property(USER-OMP_SOURCES GLOBAL PROPERTY OMP_SOURCES)
# manually add package dependent source files from USER-OMP that do not provide styles
if(PKG_ASPHERE)
list(APPEND USER-OMP_SOURCES ${USER-OMP_SOURCES_DIR}/fix_nh_asphere_omp.cpp)
endif()
if(PKG_RIGID)
list(APPEND USER-OMP_SOURCES ${USER-OMP_SOURCES_DIR}/fix_rigid_nh_omp.cpp)
endif()
if(PKG_USER-REAXC)
list(APPEND USER-OMP_SOURCES ${USER-OMP_SOURCES_DIR}/reaxc_bond_orders_omp.cpp
${USER-OMP_SOURCES_DIR}/reaxc_hydrogen_bonds_omp.cpp
${USER-OMP_SOURCES_DIR}/reaxc_nonbonded_omp.cpp
${USER-OMP_SOURCES_DIR}/reaxc_bonds_omp.cpp
${USER-OMP_SOURCES_DIR}/reaxc_init_md_omp.cpp
${USER-OMP_SOURCES_DIR}/reaxc_torsion_angles_omp.cpp
${USER-OMP_SOURCES_DIR}/reaxc_forces_omp.cpp
${USER-OMP_SOURCES_DIR}/reaxc_multi_body_omp.cpp
${USER-OMP_SOURCES_DIR}/reaxc_valence_angles_omp.cpp)
endif()
target_sources(lammps PRIVATE ${USER-OMP_SOURCES})
target_include_directories(lammps PRIVATE ${USER-OMP_SOURCES_DIR})

View File

@ -8,7 +8,7 @@ set(ALL_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GPU
USER-ADIOS USER-ATC USER-AWPMD USER-BROWNIAN USER-BOCS CG-DNA CG-SDK USER-ADIOS USER-ATC USER-AWPMD USER-BROWNIAN USER-BOCS CG-DNA CG-SDK
USER-COLVARS USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP USER-H5MD USER-COLVARS USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP USER-H5MD
ML-HDNNP USER-INTEL LATBOLTZ USER-MANIFOLD USER-MDI MEAM USER-MESODPD ML-HDNNP USER-INTEL LATBOLTZ USER-MANIFOLD USER-MDI MEAM USER-MESODPD
USER-MESONT USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE USER-NETCDF USER-OMP USER-MESONT USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE USER-NETCDF OPENMP
ML-PACE USER-PHONON USER-PLUMED USER-PTM USER-QMMM USER-QTB ML-QUIP ML-RANN ML-PACE USER-PHONON USER-PLUMED USER-PTM USER-QMMM USER-QTB ML-QUIP ML-RANN
USER-REACTION USER-REAXC USER-SCAFACOS USER-SDPD MACHDYN USER-SMTBQ USER-SPH USER-REACTION USER-REAXC USER-SCAFACOS USER-SDPD MACHDYN USER-SMTBQ USER-SPH
USER-TALLY USER-UEF USER-VTK USER-YAFF USER-DIELECTRIC) USER-TALLY USER-UEF USER-VTK USER-YAFF USER-DIELECTRIC)

View File

@ -10,7 +10,7 @@ set(ALL_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GPU
USER-ADIOS USER-ATC USER-AWPMD USER-BROWNIAN USER-BOCS CG-DNA CG-SDK USER-ADIOS USER-ATC USER-AWPMD USER-BROWNIAN USER-BOCS CG-DNA CG-SDK
USER-COLVARS USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP USER-H5MD USER-COLVARS USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP USER-H5MD
ML-HDNNP USER-INTEL LATBOLTZ USER-MANIFOLD USER-MDI MEAM USER-MESODPD ML-HDNNP USER-INTEL LATBOLTZ USER-MANIFOLD USER-MDI MEAM USER-MESODPD
USER-MESONT USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE USER-NETCDF USER-OMP USER-MESONT USER-MGPT USER-MISC USER-MOFFF USER-MOLFILE USER-NETCDF OPENMP
ML-PACE USER-PHONON USER-PLUMED USER-PTM USER-QMMM USER-QTB ML-QUIP ML-RANN ML-PACE USER-PHONON USER-PLUMED USER-PTM USER-QMMM USER-QTB ML-QUIP ML-RANN
USER-REACTION USER-REAXC USER-SCAFACOS USER-SDPD MACHDYN USER-SMTBQ USER-SPH USER-REACTION USER-REAXC USER-SCAFACOS USER-SDPD MACHDYN USER-SMTBQ USER-SPH
USER-TALLY USER-UEF USER-VTK USER-YAFF USER-DIELECTRIC) USER-TALLY USER-UEF USER-VTK USER-YAFF USER-DIELECTRIC)

View File

@ -4,7 +4,7 @@ set(WIN_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE GPU
USER-ATC USER-AWPMD USER-BOCS USER-BROWNIAN CG-DNA CG-SDK USER-ATC USER-AWPMD USER-BOCS USER-BROWNIAN CG-DNA CG-SDK
USER-COLVARS USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP USER-COLVARS USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP
ML-HDNNP USER-INTEL USER-MANIFOLD USER-MDI MEAM USER-MESODPD ML-HDNNP USER-INTEL USER-MANIFOLD USER-MDI MEAM USER-MESODPD
USER-MESONT USER-MISC USER-MGPT USER-MOFFF USER-MOLFILE USER-OMP USER-MESONT USER-MISC USER-MGPT USER-MOFFF USER-MOLFILE OPENMP
USER-PHONON USER-PTM USER-QTB USER-REACTION USER-REAXC USER-PHONON USER-PTM USER-QTB USER-REACTION USER-REAXC
USER-SDPD MACHDYN USER-SMTBQ USER-SPH USER-TALLY USER-UEF USER-SDPD MACHDYN USER-SMTBQ USER-SPH USER-TALLY USER-UEF
USER-YAFF USER-DIELECTRIC) USER-YAFF USER-DIELECTRIC)

View File

@ -7,7 +7,7 @@ set(ALL_PACKAGES ASPHERE BODY CLASS2 COLLOID COMPRESS CORESHELL DIPOLE
PLUGIN POEMS PYTHON QEQ REPLICA RIGID SHOCK ML-SNAP SPIN SRD VORONOI PLUGIN POEMS PYTHON QEQ REPLICA RIGID SHOCK ML-SNAP SPIN SRD VORONOI
USER-BROWNIAN USER-BOCS CG-DNA CG-SDK USER-COLVARS USER-BROWNIAN USER-BOCS CG-DNA CG-SDK USER-COLVARS
USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP MEAM USER-DIFFRACTION USER-DPD USER-DRUDE USER-EFF USER-FEP MEAM
USER-MESODPD USER-MISC USER-MOFFF USER-OMP USER-PHONON USER-REACTION USER-MESODPD USER-MISC USER-MOFFF OPENMP USER-PHONON USER-REACTION
USER-REAXC USER-SDPD USER-SPH MACHDYN USER-UEF USER-YAFF USER-DIELECTRIC) USER-REAXC USER-SDPD USER-SPH MACHDYN USER-UEF USER-YAFF USER-DIELECTRIC)
foreach(PKG ${ALL_PACKAGES}) foreach(PKG ${ALL_PACKAGES})

View File

@ -135,7 +135,7 @@ For example "-pk gpu 2" is the same as "package gpu 2" in the input
script. The possible styles and options are discussed in the script. The possible styles and options are discussed in the
.B LAMMPS .B LAMMPS
manual for the "package" command. This switch can be used multiple manual for the "package" command. This switch can be used multiple
times, e.g. to set options for the USER-INTEL and USER-OMP packages times, e.g. to set options for the USER-INTEL and OPENMP packages
when used together. Along with the "-sf" or "-suffix" switch, this when used together. Along with the "-sf" or "-suffix" switch, this
is a convenient mechanism for invoking accelerator packages and their is a convenient mechanism for invoking accelerator packages and their
options without having to edit an input script. options without having to edit an input script.

View File

@ -120,9 +120,9 @@ self-installed MPICH or OpenMPI, so you should study the provided
documentation to find out how to build and link with it. documentation to find out how to build and link with it.
The majority of OpenMP (threading) support in LAMMPS is provided by the The majority of OpenMP (threading) support in LAMMPS is provided by the
``USER-OMP`` package; see the :doc:`Speed_omp` ``OPENMP`` package; see the :doc:`Speed_omp`
page for details. The ``USER-INTEL`` package also includes OpenMP page for details. The ``USER-INTEL`` package also includes OpenMP
threading (it is compatible with ``USER-OMP`` and will usually fall threading (it is compatible with ``OPENMP`` and will usually fall
back on styles from that package, if a ``USER-INTEL`` does not exist) back on styles from that package, if a ``USER-INTEL`` does not exist)
and adds vectorization support when compiled with compatible compilers, and adds vectorization support when compiled with compatible compilers,
in particular the Intel compilers on top of OpenMP. Also, the ``KOKKOS`` in particular the Intel compilers on top of OpenMP. Also, the ``KOKKOS``
@ -325,7 +325,7 @@ LAMMPS.
.. code-block:: bash .. code-block:: bash
Makefile.opt # OPT package Makefile.opt # OPT package
Makefile.omp # USER-OMP package Makefile.omp # OPENMP package
Makefile.intel_cpu # USER-INTEL package for CPUs Makefile.intel_cpu # USER-INTEL package for CPUs
Makefile.intel_coprocessor # USER-INTEL package for KNLs Makefile.intel_coprocessor # USER-INTEL package for KNLs
Makefile.gpu # GPU package Makefile.gpu # GPU package

View File

@ -310,7 +310,7 @@ and working.
parameter needs to be adjusted. Typically a value around 1.0e-13 parameter needs to be adjusted. Typically a value around 1.0e-13
can be used, but it may need to be as large as 1.0e-8 in some can be used, but it may need to be as large as 1.0e-8 in some
cases. cases.
- The tests for pair styles from OPT, USER-OMP and USER-INTEL are - The tests for pair styles from OPT, OPENMP and USER-INTEL are
performed with automatically rescaled epsilon to account for performed with automatically rescaled epsilon to account for
additional loss of precision from code optimizations and different additional loss of precision from code optimizations and different
summation orders. summation orders.
@ -345,7 +345,7 @@ and compared. If the fix is a thermostat and thus the internal property
``t_target`` can be extracted, then this is compared to the reference ``t_target`` can be extracted, then this is compared to the reference
data. The tests are repeated with the respa run style. data. The tests are repeated with the respa run style.
If the fix has a multi-threaded version in the USER-OMP package, then If the fix has a multi-threaded version in the OPENMP package, then
the entire set of tests is repeated for that version as well. the entire set of tests is repeated for that version as well.
For this to work, some additional conditions have to be met by the For this to work, some additional conditions have to be met by the

View File

@ -56,7 +56,7 @@ This is the list of packages that may require additional steps.
* :ref:`USER-NETCDF <user-netcdf>` * :ref:`USER-NETCDF <user-netcdf>`
* :ref:`ML-PACE <ml-pace>` * :ref:`ML-PACE <ml-pace>`
* :ref:`USER-PLUMED <user-plumed>` * :ref:`USER-PLUMED <user-plumed>`
* :ref:`USER-OMP <user-omp>` * :ref:`OPENMP <openmp>`
* :ref:`USER-QMMM <user-qmmm>` * :ref:`USER-QMMM <user-qmmm>`
* :ref:`ML-QUIP <ml-quip>` * :ref:`ML-QUIP <ml-quip>`
* :ref:`USER-SCAFACOS <user-scafacos>` * :ref:`USER-SCAFACOS <user-scafacos>`
@ -1537,13 +1537,13 @@ USER-INTEL package
To build with this package, you must choose which hardware you want to To build with this package, you must choose which hardware you want to
build for, either x86 CPUs or Intel KNLs in offload mode. You should build for, either x86 CPUs or Intel KNLs in offload mode. You should
also typically :ref:`install the USER-OMP package <user-omp>`, as it can be also typically :ref:`install the OPENMP package <openmp>`, as it can be
used in tandem with the USER-INTEL package to good effect, as explained used in tandem with the USER-INTEL package to good effect, as explained
on the :doc:`Speed_intel` page. on the :doc:`Speed_intel` page.
When using Intel compilers version 16.0 or later is required. You can When using Intel compilers version 16.0 or later is required. You can
also use the GNU or Clang compilers and they will provide performance also use the GNU or Clang compilers and they will provide performance
improvements over regular styles and USER-OMP styles, but less so than improvements over regular styles and OPENMP styles, but less so than
with the Intel compilers. Please also note, that some compilers have with the Intel compilers. Please also note, that some compilers have
been found to apply memory alignment constraints incompletely or been found to apply memory alignment constraints incompletely or
incorrectly and thus can cause segmentation faults in otherwise correct incorrectly and thus can cause segmentation faults in otherwise correct
@ -1740,9 +1740,9 @@ on your system.
---------- ----------
.. _user-omp: .. _openmp:
USER-OMP package OPENMP package
------------------------------- -------------------------------
.. tabs:: .. tabs::
@ -1750,13 +1750,13 @@ USER-OMP package
.. tab:: CMake build .. tab:: CMake build
No additional settings are required besides ``-D No additional settings are required besides ``-D
PKG_USER-OMP=yes``. If CMake detects OpenMP compiler support, the PKG_OPENMP=yes``. If CMake detects OpenMP compiler support, the
USER-OMP code will be compiled with multi-threading support OPENMP code will be compiled with multi-threading support
enabled, otherwise as optimized serial code. enabled, otherwise as optimized serial code.
.. tab:: Traditional make .. tab:: Traditional make
To enable multi-threading support in the USER-OMP package (and To enable multi-threading support in the OPENMP package (and
other styles supporting OpenMP) the following compile and link other styles supporting OpenMP) the following compile and link
flags must be added to your Makefile.machine file. See flags must be added to your Makefile.machine file. See
``src/MAKE/OPTIONS/Makefile.omp`` for an example. ``src/MAKE/OPTIONS/Makefile.omp`` for an example.

View File

@ -120,7 +120,7 @@ settings may become outdated:
make intel_cpu # build with the USER-INTEL package optimized for CPUs make intel_cpu # build with the USER-INTEL package optimized for CPUs
make knl # build with the USER-INTEL package optimized for KNLs make knl # build with the USER-INTEL package optimized for KNLs
make opt # build with the OPT package optimized for CPUs make opt # build with the OPT package optimized for CPUs
make omp # build with the USER-OMP package optimized for OpenMP make omp # build with the OPENMP package optimized for OpenMP
make kokkos_omp # build with the KOKKOS package for OpenMP make kokkos_omp # build with the KOKKOS package for OpenMP
make kokkos_cuda_mpi # build with the KOKKOS package for GPUs make kokkos_cuda_mpi # build with the KOKKOS package for GPUs
make kokkos_phi # build with the KOKKOS package for KNLs make kokkos_phi # build with the KOKKOS package for KNLs

View File

@ -37,7 +37,7 @@ packages:
+--------------------------------------+--------------------------------------+------------------------------------+----------------------------------+--------------------------------+--------------------------------+ +--------------------------------------+--------------------------------------+------------------------------------+----------------------------------+--------------------------------+--------------------------------+
| :ref:`USER-ATC <user-atc>` | :ref:`USER-AWPMD <user-awpmd>` | :ref:`USER-COLVARS <user-colvars>` | :ref:`USER-H5MD <user-h5md>` | :ref:`ML-HDNNP <ml-hdnnp>` | :ref:`USER-INTEL <user-intel>` | | :ref:`USER-ATC <user-atc>` | :ref:`USER-AWPMD <user-awpmd>` | :ref:`USER-COLVARS <user-colvars>` | :ref:`USER-H5MD <user-h5md>` | :ref:`ML-HDNNP <ml-hdnnp>` | :ref:`USER-INTEL <user-intel>` |
+--------------------------------------+--------------------------------------+------------------------------------+----------------------------------+--------------------------------+--------------------------------+ +--------------------------------------+--------------------------------------+------------------------------------+----------------------------------+--------------------------------+--------------------------------+
| :ref:`USER-MOLFILE <user-molfile>` | :ref:`USER-NETCDF <user-netcdf>` | :ref:`ML-PACE <ml-pace>` | :ref:`USER-PLUMED <user-plumed>` | :ref:`USER-OMP <user-omp>` | :ref:`USER-QMMM <user-qmmm>` | | :ref:`USER-MOLFILE <user-molfile>` | :ref:`USER-NETCDF <user-netcdf>` | :ref:`ML-PACE <ml-pace>` | :ref:`USER-PLUMED <user-plumed>` | :ref:`OPENMP <openmp>` | :ref:`USER-QMMM <user-qmmm>` |
+--------------------------------------+--------------------------------------+------------------------------------+----------------------------------+--------------------------------+--------------------------------+ +--------------------------------------+--------------------------------------+------------------------------------+----------------------------------+--------------------------------+--------------------------------+
| :ref:`ML-QUIP <ml-quip>` | :ref:`USER-SCAFACOS <user-scafacos>` | :ref:`MACHDYN <machdyn>` | :ref:`USER-VTK <user-vtk>` | | | | :ref:`ML-QUIP <ml-quip>` | :ref:`USER-SCAFACOS <user-scafacos>` | :ref:`MACHDYN <machdyn>` | :ref:`USER-VTK <user-vtk>` | | |
+--------------------------------------+--------------------------------------+------------------------------------+----------------------------------+--------------------------------+--------------------------------+ +--------------------------------------+--------------------------------------+------------------------------------+----------------------------------+--------------------------------+--------------------------------+

View File

@ -64,7 +64,7 @@ LAMMPS can use them if they are available on your system.
selected, then CMake will try to detect, if threaded FFTW selected, then CMake will try to detect, if threaded FFTW
libraries are available and enable them by default. This setting libraries are available and enable them by default. This setting
is independent of whether OpenMP threads are enabled and a is independent of whether OpenMP threads are enabled and a
packages like KOKKOS or USER-OMP is used. If CMake cannot detect packages like KOKKOS or OPENMP is used. If CMake cannot detect
the FFT library, you can set these variables to assist: the FFT library, you can set these variables to assist:
.. code-block:: bash .. code-block:: bash

View File

@ -18,7 +18,7 @@ Bond_style potentials
All LAMMPS :doc:`bond_style <bond_style>` commands. Some styles have All LAMMPS :doc:`bond_style <bond_style>` commands. Some styles have
accelerated versions. This is indicated by additional letters in accelerated versions. This is indicated by additional letters in
parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t = parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = OPENMP, t =
OPT. OPT.
.. table_from_list:: .. table_from_list::
@ -57,7 +57,7 @@ Angle_style potentials
All LAMMPS :doc:`angle_style <angle_style>` commands. Some styles have All LAMMPS :doc:`angle_style <angle_style>` commands. Some styles have
accelerated versions. This is indicated by additional letters in accelerated versions. This is indicated by additional letters in
parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t = parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = OPENMP, t =
OPT. OPT.
.. table_from_list:: .. table_from_list::
@ -99,7 +99,7 @@ Dihedral_style potentials
All LAMMPS :doc:`dihedral_style <dihedral_style>` commands. Some styles All LAMMPS :doc:`dihedral_style <dihedral_style>` commands. Some styles
have accelerated versions. This is indicated by additional letters in have accelerated versions. This is indicated by additional letters in
parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t = parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = OPENMP, t =
OPT. OPT.
.. table_from_list:: .. table_from_list::
@ -135,7 +135,7 @@ Improper_style potentials
All LAMMPS :doc:`improper_style <improper_style>` commands. Some styles All LAMMPS :doc:`improper_style <improper_style>` commands. Some styles
have accelerated versions. This is indicated by additional letters in have accelerated versions. This is indicated by additional letters in
parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t = parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = OPENMP, t =
OPT. OPT.
.. table_from_list:: .. table_from_list::

View File

@ -17,7 +17,7 @@ Compute commands
An alphabetic list of all LAMMPS :doc:`compute <compute>` commands. An alphabetic list of all LAMMPS :doc:`compute <compute>` commands.
Some styles have accelerated versions. This is indicated by Some styles have accelerated versions. This is indicated by
additional letters in parenthesis: g = GPU, i = USER-INTEL, k = additional letters in parenthesis: g = GPU, i = USER-INTEL, k =
KOKKOS, o = USER-OMP, t = OPT. KOKKOS, o = OPENMP, t = OPT.
.. table_from_list:: .. table_from_list::
:columns: 5 :columns: 5

View File

@ -16,7 +16,7 @@ Fix commands
An alphabetic list of all LAMMPS :doc:`fix <fix>` commands. Some styles An alphabetic list of all LAMMPS :doc:`fix <fix>` commands. Some styles
have accelerated versions. This is indicated by additional letters in have accelerated versions. This is indicated by additional letters in
parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t = parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = OPENMP, t =
OPT. OPT.
.. table_from_list:: .. table_from_list::

View File

@ -16,7 +16,7 @@ KSpace solvers
All LAMMPS :doc:`kspace_style <kspace_style>` solvers. Some styles have All LAMMPS :doc:`kspace_style <kspace_style>` solvers. Some styles have
accelerated versions. This is indicated by additional letters in accelerated versions. This is indicated by additional letters in
parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t = parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = OPENMP, t =
OPT. OPT.
.. table_from_list:: .. table_from_list::

View File

@ -16,7 +16,7 @@ Pair_style potentials
All LAMMPS :doc:`pair_style <pair_style>` commands. Some styles have All LAMMPS :doc:`pair_style <pair_style>` commands. Some styles have
accelerated versions. This is indicated by additional letters in accelerated versions. This is indicated by additional letters in
parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = USER-OMP, t = parenthesis: g = GPU, i = USER-INTEL, k = KOKKOS, o = OPENMP, t =
OPT. OPT.
.. table_from_list:: .. table_from_list::

View File

@ -38,7 +38,7 @@ REAX package
The REAX package has been removed since it was superseded by the The REAX package has been removed since it was superseded by the
:ref:`USER-REAXC package <PKG-USER-REAXC>`. The USER-REAXC :ref:`USER-REAXC package <PKG-USER-REAXC>`. The USER-REAXC
package has been tested to yield equivalent results to the REAX package, package has been tested to yield equivalent results to the REAX package,
offers better performance, supports OpenMP multi-threading via USER-OMP, offers better performance, supports OpenMP multi-threading via OPENMP,
and GPU and threading parallelization through KOKKOS. The new pair styles and GPU and threading parallelization through KOKKOS. The new pair styles
are not syntax compatible with the removed reax pair style, so input are not syntax compatible with the removed reax pair style, so input
files will have to be adapted. files will have to be adapted.

View File

@ -404,7 +404,7 @@ noise). Then it will restart from the previously generated restart and
compare with the reference and also start from the data file. A final compare with the reference and also start from the data file. A final
check will use multi-cutoff r-RESPA (if supported by the pair style) at check will use multi-cutoff r-RESPA (if supported by the pair style) at
a 1:1 split and compare to the Verlet results. These sets of tests are a 1:1 split and compare to the Verlet results. These sets of tests are
run with multiple test fixtures for accelerated styles (OPT, USER-OMP, run with multiple test fixtures for accelerated styles (OPT, OPENMP,
USER-INTEL) and for the latter two with 4 OpenMP threads enabled. For USER-INTEL) and for the latter two with 4 OpenMP threads enabled. For
these tests the relative error (epsilon) is lowered by a common factor these tests the relative error (epsilon) is lowered by a common factor
due to the additional numerical noise, but the tests are still comparing due to the additional numerical noise, but the tests are still comparing

View File

@ -5899,7 +5899,7 @@ Doc page with :doc:`WARNING messages <Errors_warnings>`
other. other.
*Must set number of threads via package omp command* *Must set number of threads via package omp command*
Because you are using the USER-OMP package, set the number of threads Because you are using the OPENMP package, set the number of threads
via its settings, not by the pair_style snap nthreads setting. via its settings, not by the pair_style snap nthreads setting.
*Must shrink-wrap piston boundary* *Must shrink-wrap piston boundary*
@ -6352,8 +6352,8 @@ keyword to allow for additional bonds to be formed
The KOKKOS package must be installed via "make yes-kokkos" before The KOKKOS package must be installed via "make yes-kokkos" before
LAMMPS is built, and the "-k on" must be used to enable the package. LAMMPS is built, and the "-k on" must be used to enable the package.
*Package omp command without USER-OMP package installed* *Package omp command without OPENMP package installed*
The USER-OMP package must be installed via "make yes-user-omp" before The OPENMP package must be installed via "make yes-openmp" before
LAMMPS is built. LAMMPS is built.
*Pair body requires atom style body* *Pair body requires atom style body*
@ -8070,7 +8070,7 @@ keyword to allow for additional bonds to be formed
*Using suffix kk without KOKKOS package enabled* *Using suffix kk without KOKKOS package enabled*
Self-explanatory. Self-explanatory.
*Using suffix omp without USER-OMP package installed* *Using suffix omp without OPENMP package installed*
Self-explanatory. Self-explanatory.
*Using update dipole flag requires atom attribute mu* *Using update dipole flag requires atom attribute mu*

View File

@ -529,7 +529,7 @@ This will most likely cause errors in kinetic fluctuations.
*OMP_NUM_THREADS environment is not set.* *OMP_NUM_THREADS environment is not set.*
This environment variable must be set appropriately to use the This environment variable must be set appropriately to use the
USER-OMP package. OPENMP package.
*One or more atoms are time integrated more than once* *One or more atoms are time integrated more than once*
This is probably an error since you typically do not want to This is probably an error since you typically do not want to

View File

@ -93,7 +93,7 @@ page gives those details.
* :ref:`USER-MOFFF <PKG-USER-MOFFF>` * :ref:`USER-MOFFF <PKG-USER-MOFFF>`
* :ref:`USER-MOLFILE <PKG-USER-MOLFILE>` * :ref:`USER-MOLFILE <PKG-USER-MOLFILE>`
* :ref:`USER-NETCDF <PKG-USER-NETCDF>` * :ref:`USER-NETCDF <PKG-USER-NETCDF>`
* :ref:`USER-OMP <PKG-USER-OMP>` * :ref:`OPENMP <PKG-OPENMP>`
* :ref:`ML-PACE <PKG-ML-PACE>` * :ref:`ML-PACE <PKG-ML-PACE>`
* :ref:`USER-PHONON <PKG-USER-PHONON>` * :ref:`USER-PHONON <PKG-USER-PHONON>`
* :ref:`USER-PLUMED <PKG-USER-PLUMED>` * :ref:`USER-PLUMED <PKG-USER-PLUMED>`
@ -447,7 +447,7 @@ style name. The :doc:`KOKKOS package <Speed_kokkos>` page gives
details of what hardware and software is required on your system, and details of what hardware and software is required on your system, and
how to build and use this package. Its styles can be invoked at run how to build and use this package. Its styles can be invoked at run
time via the "-sf kk" or "-suffix kk" :doc:`command-line switches <Run_options>`. Also see the :ref:`GPU <PKG-GPU>`, :ref:`OPT <PKG-OPT>`, time via the "-sf kk" or "-suffix kk" :doc:`command-line switches <Run_options>`. Also see the :ref:`GPU <PKG-GPU>`, :ref:`OPT <PKG-OPT>`,
:ref:`USER-INTEL <PKG-USER-INTEL>`, and :ref:`USER-OMP <PKG-USER-OMP>` packages, which :ref:`USER-INTEL <PKG-USER-INTEL>`, and :ref:`OPENMP <PKG-OPENMP>` packages, which
have styles optimized for CPUs, KNLs, and GPUs. have styles optimized for CPUs, KNLs, and GPUs.
You must have a C++14 compatible compiler to use this package. You must have a C++14 compatible compiler to use this package.
@ -802,7 +802,7 @@ CHARMM, and Morse potentials. The styles have an "opt" suffix in
their style name. The :doc:`OPT package <Speed_opt>` page gives their style name. The :doc:`OPT package <Speed_opt>` page gives
details of how to build and use this package. Its styles can be details of how to build and use this package. Its styles can be
invoked at run time via the "-sf opt" or "-suffix opt" :doc:`command-line switches <Run_options>`. See also the :ref:`KOKKOS <PKG-KOKKOS>`, invoked at run time via the "-sf opt" or "-suffix opt" :doc:`command-line switches <Run_options>`. See also the :ref:`KOKKOS <PKG-KOKKOS>`,
:ref:`USER-INTEL <PKG-USER-INTEL>`, and :ref:`USER-OMP <PKG-USER-OMP>` packages, which :ref:`USER-INTEL <PKG-USER-INTEL>`, and :ref:`OPENMP <PKG-OPENMP>` packages, which
have styles optimized for CPU performance. have styles optimized for CPU performance.
**Authors:** James Fischer (High Performance Technologies), David Richie, **Authors:** James Fischer (High Performance Technologies), David Richie,
@ -1642,7 +1642,7 @@ All of them have an "intel" in their style name. The
compilers are required on your system, and how to build and use this compilers are required on your system, and how to build and use this
package. Its styles can be invoked at run time via the "-sf intel" or package. Its styles can be invoked at run time via the "-sf intel" or
"-suffix intel" :doc:`command-line switches <Run_options>`. Also see "-suffix intel" :doc:`command-line switches <Run_options>`. Also see
the :ref:`KOKKOS <PKG-KOKKOS>`, :ref:`OPT <PKG-OPT>`, and :ref:`USER-OMP <PKG-USER-OMP>` packages, the :ref:`KOKKOS <PKG-KOKKOS>`, :ref:`OPT <PKG-OPT>`, and :ref:`OPENMP <PKG-OPENMP>` packages,
which have styles optimized for CPUs and KNLs. which have styles optimized for CPUs and KNLs.
You need to have an Intel compiler, version 14 or higher to take full You need to have an Intel compiler, version 14 or higher to take full
@ -2021,9 +2021,9 @@ This package has :ref:`specific installation instructions <user-netcdf>` on the
---------- ----------
.. _PKG-USER-OMP: .. _PKG-OPENMP:
USER-OMP package OPENMP package
---------------- ----------------
**Contents:** **Contents:**
@ -2031,7 +2031,7 @@ USER-OMP package
Hundreds of pair, fix, compute, bond, angle, dihedral, improper, and Hundreds of pair, fix, compute, bond, angle, dihedral, improper, and
kspace styles which are altered to enable threading on many-core CPUs kspace styles which are altered to enable threading on many-core CPUs
via OpenMP directives. All of them have an "omp" in their style name. via OpenMP directives. All of them have an "omp" in their style name.
The :doc:`USER-OMP package <Speed_omp>` page gives details of what hardware The :doc:`OPENMP package <Speed_omp>` page gives details of what hardware
and compilers are required on your system, and how to build and use and compilers are required on your system, and how to build and use
this package. Its styles can be invoked at run time via the "-sf omp" this package. Its styles can be invoked at run time via the "-sf omp"
or "-suffix omp" :doc:`command-line switches <Run_options>`. Also see or "-suffix omp" :doc:`command-line switches <Run_options>`. Also see
@ -2046,7 +2046,7 @@ packages, which have styles optimized for CPUs.
and the link flag "-fopenmp" (for GNU compilers, you have to look up and the link flag "-fopenmp" (for GNU compilers, you have to look up
the equivalent flags for other compilers) must be used to build LAMMPS. the equivalent flags for other compilers) must be used to build LAMMPS.
When using Intel compilers, also the "-restrict" flag is required. When using Intel compilers, also the "-restrict" flag is required.
The USER-OMP package can be compiled without enabling OpenMP; then The OPENMP package can be compiled without enabling OpenMP; then
all code will be compiled as serial and the only improvement over the all code will be compiled as serial and the only improvement over the
regular styles are some data access optimization. These flags should regular styles are some data access optimization. These flags should
be added to the CCFLAGS and LINKFLAGS lines of your Makefile.machine. be added to the CCFLAGS and LINKFLAGS lines of your Makefile.machine.
@ -2057,16 +2057,17 @@ install/un-install the package and build LAMMPS in the usual manner:
**Install:** **Install:**
This package has :ref:`specific installation instructions <user-omp>` on the :doc:`Build extras <Build_extras>` page. This package has :ref:`specific installation instructions <openmp>` on
the :doc:`Build extras <Build_extras>` page.
**Supporting info:** **Supporting info:**
* src/USER-OMP: filenames -> commands * src/OPENMP: filenames -> commands
* src/USER-OMP/README * src/OPENMP/README
* :doc:`Accelerator packages <Speed_packages>` * :doc:`Accelerator packages <Speed_packages>`
* :doc:`USER-OMP package <Speed_omp>` * :doc:`OPENMP package <Speed_omp>`
* :doc:`Section 2.6 -sf omp <Run_options>` * :doc:`Command line option -suffix/-sf omp <Run_options>`
* :doc:`Section 2.6 -pk omp <Run_options>` * :doc:`Command line option -package/-pk omp <Run_options>`
* :doc:`package omp <package>` * :doc:`package omp <package>`
* Search the :doc:`commands <Commands_all>` pages (:doc:`fix <Commands_fix>`, :doc:`compute <Commands_compute>`, * Search the :doc:`commands <Commands_all>` pages (:doc:`fix <Commands_fix>`, :doc:`compute <Commands_compute>`,
:doc:`pair <Commands_pair>`, :doc:`bond, angle, dihedral, improper <Commands_bond>`, :doc:`pair <Commands_pair>`, :doc:`bond, angle, dihedral, improper <Commands_bond>`,

View File

@ -87,7 +87,7 @@ package:
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+ +------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-NETCDF <PKG-USER-NETCDF>` | dump output via NetCDF | :doc:`dump netcdf <dump_netcdf>` | n/a | ext | | :ref:`USER-NETCDF <PKG-USER-NETCDF>` | dump output via NetCDF | :doc:`dump netcdf <dump_netcdf>` | n/a | ext |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+ +------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`USER-OMP <PKG-USER-OMP>` | OpenMP-enabled styles | :doc:`Speed omp <Speed_omp>` | `Benchmarks <https://www.lammps.org/bench.html>`_ | no | | :ref:`OPENMP <PKG-OPENMP>` | OpenMP-enabled styles | :doc:`Speed omp <Speed_omp>` | `Benchmarks <https://www.lammps.org/bench.html>`_ | no |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+ +------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
| :ref:`ML-PACE <PKG-ML-PACE>` | Fast implementation of Atomic Cluster Expansion (ACE) potential | :doc:`pair pace <pair_pace>` | USER/pace | ext | | :ref:`ML-PACE <PKG-ML-PACE>` | Fast implementation of Atomic Cluster Expansion (ACE) potential | :doc:`pair pace <pair_pace>` | USER/pace | ext |
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+ +------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+

View File

@ -89,7 +89,7 @@ in the :doc:`the KOKKOS package page <Speed_kokkos>`, this switch must be set to
running with KOKKOS-enabled styles the package provides. If the running with KOKKOS-enabled styles the package provides. If the
switch is not set (the default), LAMMPS will operate as if the KOKKOS switch is not set (the default), LAMMPS will operate as if the KOKKOS
package were not installed; i.e. you can run standard LAMMPS or with package were not installed; i.e. you can run standard LAMMPS or with
the GPU or USER-OMP packages, for testing or benchmarking purposes. the GPU or OPENMP packages, for testing or benchmarking purposes.
Additional optional keyword/value pairs can be specified which Additional optional keyword/value pairs can be specified which
determine how Kokkos will use the underlying hardware on your determine how Kokkos will use the underlying hardware on your
@ -274,7 +274,7 @@ script. For example "-package gpu 2" or "-pk gpu 2" is the same as
:doc:`package gpu 2 <package>` in the input script. The possible styles :doc:`package gpu 2 <package>` in the input script. The possible styles
and args are documented on the :doc:`package <package>` doc page. This and args are documented on the :doc:`package <package>` doc page. This
switch can be used multiple times, e.g. to set options for the switch can be used multiple times, e.g. to set options for the
USER-INTEL and USER-OMP packages which can be used together. USER-INTEL and OPENMP packages which can be used together.
Along with the "-suffix" command-line switch, this is a convenient Along with the "-suffix" command-line switch, this is a convenient
mechanism for invoking accelerator packages and their options without mechanism for invoking accelerator packages and their options without
@ -542,14 +542,14 @@ refer to optional packages that LAMMPS can be built with, as described
in :doc:`Accelerate performance <Speed>`. The "gpu" style corresponds to the in :doc:`Accelerate performance <Speed>`. The "gpu" style corresponds to the
GPU package, the "intel" style to the USER-INTEL package, the "kk" GPU package, the "intel" style to the USER-INTEL package, the "kk"
style to the KOKKOS package, the "opt" style to the OPT package, and style to the KOKKOS package, the "opt" style to the OPT package, and
the "omp" style to the USER-OMP package. The hybrid style is the only the "omp" style to the OPENMP package. The hybrid style is the only
style that accepts arguments. It allows for two packages to be style that accepts arguments. It allows for two packages to be
specified. The first package specified is the default and will be used specified. The first package specified is the default and will be used
if it is available. If no style is available for the first package, if it is available. If no style is available for the first package,
the style for the second package will be used if available. For the style for the second package will be used if available. For
example, "-suffix hybrid intel omp" will use styles from the example, "-suffix hybrid intel omp" will use styles from the
USER-INTEL package if they are installed and available, but styles for USER-INTEL package if they are installed and available, but styles for
the USER-OMP package otherwise. the OPENMP package otherwise.
Along with the "-package" command-line switch, this is a convenient Along with the "-package" command-line switch, this is a convenient
mechanism for invoking accelerator packages and their options without mechanism for invoking accelerator packages and their options without
@ -575,10 +575,10 @@ invokes the default USER-INTEL settings, as if the command "package
intel 1" were used at the top of your input script. These settings intel 1" were used at the top of your input script. These settings
can be changed by using the "-package intel" command-line switch or can be changed by using the "-package intel" command-line switch or
the :doc:`package intel <package>` command in your script. If the the :doc:`package intel <package>` command in your script. If the
USER-OMP package is also installed, the hybrid style with "intel omp" OPENMP package is also installed, the hybrid style with "intel omp"
arguments can be used to make the omp suffix a second choice, if a arguments can be used to make the omp suffix a second choice, if a
requested style is not available in the USER-INTEL package. It will requested style is not available in the USER-INTEL package. It will
also invoke the default USER-OMP settings, as if the command "package also invoke the default OPENMP settings, as if the command "package
omp 0" were used at the top of your input script. These settings can omp 0" were used at the top of your input script. These settings can
be changed by using the "-package omp" command-line switch or the be changed by using the "-package omp" command-line switch or the
:doc:`package omp <package>` command in your script. :doc:`package omp <package>` command in your script.

View File

@ -11,7 +11,7 @@ To run a serial (non-MPI) executable, follow these steps:
in.file is the name of your LAMMPS input script. in.file is the name of your LAMMPS input script.
Note that the serial executable includes support for multi-threading Note that the serial executable includes support for multi-threading
parallelization from the styles in the USER-OMP packages. To run with parallelization from the styles in the OPENMP packages. To run with
4 threads, you can type this: 4 threads, you can type this:
.. code-block:: bash .. code-block:: bash

View File

@ -67,8 +67,8 @@ section below for examples where this has been done.
pair style - on the CPU. This can often be easily achieved with placing pair style - on the CPU. This can often be easily achieved with placing
a *suffix off* command before and a *suffix on* command after the a *suffix off* command before and a *suffix on* command after the
*kspace_style pppm* command. *kspace_style pppm* command.
* The KOKKOS/OpenMP and USER-OMP package have different thread management * The KOKKOS/OpenMP and OPENMP package have different thread management
strategies, which should result in USER-OMP being more efficient for a strategies, which should result in OPENMP being more efficient for a
small number of threads with increasing overhead as the number of threads small number of threads with increasing overhead as the number of threads
per MPI rank grows. The KOKKOS/OpenMP kernels have less overhead in that per MPI rank grows. The KOKKOS/OpenMP kernels have less overhead in that
case, but have lower performance with few threads. case, but have lower performance with few threads.

View File

@ -150,7 +150,7 @@ hardware, which pair style is used, the number of atoms/GPU, and the
precision used on the GPU (double, single, mixed). Using the GPU package precision used on the GPU (double, single, mixed). Using the GPU package
in OpenCL mode on CPUs (which uses vectorization and multithreading) is in OpenCL mode on CPUs (which uses vectorization and multithreading) is
usually resulting in inferior performance compared to using LAMMPS' native usually resulting in inferior performance compared to using LAMMPS' native
threading and vectorization support in the USER-OMP and USER-INTEL packages. threading and vectorization support in the OPENMP and USER-INTEL packages.
See the `Benchmark page <https://www.lammps.org/bench.html>`_ of the See the `Benchmark page <https://www.lammps.org/bench.html>`_ of the
LAMMPS web site for performance of the GPU package on various LAMMPS web site for performance of the GPU package on various

View File

@ -185,7 +185,7 @@ can start running so that the CPU pipeline is still being used
efficiently. Although benefits can be seen by launching a MPI task efficiently. Although benefits can be seen by launching a MPI task
for every hardware thread, for multinode simulations, we recommend for every hardware thread, for multinode simulations, we recommend
that OpenMP threads are used for SMT instead, either with the that OpenMP threads are used for SMT instead, either with the
USER-INTEL package, :doc:`USER-OMP package <Speed_omp>`, or USER-INTEL package, :doc:`OPENMP package <Speed_omp>`, or
:doc:`KOKKOS package <Speed_kokkos>`. In the example above, up :doc:`KOKKOS package <Speed_kokkos>`. In the example above, up
to 36X speedups can be observed by using all 36 physical cores with to 36X speedups can be observed by using all 36 physical cores with
LAMMPS. By using all 72 hardware threads, an additional 10-30% LAMMPS. By using all 72 hardware threads, an additional 10-30%
@ -409,7 +409,7 @@ when using offload.
Not all styles are supported in the USER-INTEL package. You can mix Not all styles are supported in the USER-INTEL package. You can mix
the USER-INTEL package with styles from the :doc:`OPT <Speed_opt>` the USER-INTEL package with styles from the :doc:`OPT <Speed_opt>`
package or the :doc:`USER-OMP package <Speed_omp>`. Of course, this package or the :doc:`OPENMP package <Speed_omp>`. Of course, this
requires that these packages were installed at build time. This can requires that these packages were installed at build time. This can
performed automatically by using "-sf hybrid intel opt" or "-sf hybrid performed automatically by using "-sf hybrid intel opt" or "-sf hybrid
intel omp" command-line options. Alternatively, the "opt" and "omp" intel omp" command-line options. Alternatively, the "opt" and "omp"

View File

@ -390,10 +390,10 @@ Generally speaking, the following rules of thumb apply:
* When running on CPUs only, with a single thread per MPI task, * When running on CPUs only, with a single thread per MPI task,
performance of a KOKKOS style is somewhere between the standard performance of a KOKKOS style is somewhere between the standard
(un-accelerated) styles (MPI-only mode), and those provided by the (un-accelerated) styles (MPI-only mode), and those provided by the
USER-OMP package. However the difference between all 3 is small (less OPENMP package. However the difference between all 3 is small (less
than 20%). than 20%).
* When running on CPUs only, with multiple threads per MPI task, * When running on CPUs only, with multiple threads per MPI task,
performance of a KOKKOS style is a bit slower than the USER-OMP performance of a KOKKOS style is a bit slower than the OPENMP
package. package.
* When running large number of atoms per GPU, KOKKOS is typically faster * When running large number of atoms per GPU, KOKKOS is typically faster
than the GPU package when compiled for double precision. The benefit than the GPU package when compiled for double precision. The benefit

View File

@ -1,7 +1,7 @@
USER-OMP package OPENMP package
================ ================
The USER-OMP package was developed by Axel Kohlmeyer at Temple The OPENMP package was developed by Axel Kohlmeyer at Temple
University. It provides optimized and multi-threaded versions University. It provides optimized and multi-threaded versions
of many pair styles, nearly all bonded styles (bond, angle, dihedral, of many pair styles, nearly all bonded styles (bond, angle, dihedral,
improper), several Kspace styles, and a few fix styles. It uses improper), several Kspace styles, and a few fix styles. It uses
@ -15,13 +15,13 @@ To enable multi-threading, your compiler must support the OpenMP interface.
You should have one or more multi-core CPUs, as multiple threads can only be You should have one or more multi-core CPUs, as multiple threads can only be
launched by each MPI task on the local node (using shared memory). launched by each MPI task on the local node (using shared memory).
Building LAMMPS with the USER-OMP package Building LAMMPS with the OPENMP package
""""""""""""""""""""""""""""""""""""""""" """""""""""""""""""""""""""""""""""""""""
See the :ref:`Build extras <user-omp>` doc page for See the :ref:`Build extras <openmp>` doc page for
instructions. instructions.
Run with the USER-OMP package from the command line Run with the OPENMP package from the command line
""""""""""""""""""""""""""""""""""""""""""""""""""" """""""""""""""""""""""""""""""""""""""""""""""""""
These examples assume one or more 16-core nodes. These examples assume one or more 16-core nodes.
@ -39,7 +39,7 @@ tasks used per node. E.g. the mpirun command in MPICH does this via
its -np and -ppn switches. Ditto for OpenMPI via -np and -npernode. its -np and -ppn switches. Ditto for OpenMPI via -np and -npernode.
You need to choose how many OpenMP threads per MPI task will be used You need to choose how many OpenMP threads per MPI task will be used
by the USER-OMP package. Note that the product of MPI tasks \* by the OPENMP package. Note that the product of MPI tasks \*
threads/task should not exceed the physical number of cores (on a threads/task should not exceed the physical number of cores (on a
node), otherwise performance will suffer. node), otherwise performance will suffer.
@ -55,7 +55,7 @@ details, including the default values used if it is not specified. It
also gives more details on how to set the number of threads via the also gives more details on how to set the number of threads via the
OMP_NUM_THREADS environment variable. OMP_NUM_THREADS environment variable.
Or run with the USER-OMP package by editing an input script Or run with the OPENMP package by editing an input script
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" """""""""""""""""""""""""""""""""""""""""""""""""""""""""""
The discussion above for the mpirun/mpiexec command, MPI tasks/node, The discussion above for the mpirun/mpiexec command, MPI tasks/node,
@ -69,7 +69,7 @@ Use the :doc:`suffix omp <suffix>` command, or you can explicitly add an
pair_style lj/cut/omp 2.5 pair_style lj/cut/omp 2.5
You must also use the :doc:`package omp <package>` command to enable the You must also use the :doc:`package omp <package>` command to enable the
USER-OMP package. When you do this you also specify how many threads OPENMP package. When you do this you also specify how many threads
per MPI task to use. The command doc page explains other options and per MPI task to use. The command doc page explains other options and
how to set the number of threads via the OMP_NUM_THREADS environment how to set the number of threads via the OMP_NUM_THREADS environment
variable. variable.
@ -82,10 +82,10 @@ reduction in the "Pair time", "Bond time", "KSpace time", and "Loop
time" values printed at the end of a run. time" values printed at the end of a run.
You may see a small performance advantage (5 to 20%) when running a You may see a small performance advantage (5 to 20%) when running a
USER-OMP style (in serial or parallel) with a single thread per MPI OPENMP style (in serial or parallel) with a single thread per MPI
task, versus running standard LAMMPS with its standard un-accelerated task, versus running standard LAMMPS with its standard un-accelerated
styles (in serial or all-MPI parallelization with 1 task/core). This styles (in serial or all-MPI parallelization with 1 task/core). This
is because many of the USER-OMP styles contain similar optimizations is because many of the OPENMP styles contain similar optimizations
to those used in the OPT package, described in to those used in the OPT package, described in
:doc:`the OPT package <Speed_opt>` doc page. :doc:`the OPT package <Speed_opt>` doc page.
@ -95,19 +95,19 @@ tested via benchmark runs for a specific simulation running on a
specific machine, paying attention to guidelines discussed in the next specific machine, paying attention to guidelines discussed in the next
sub-section. sub-section.
A description of the multi-threading strategy used in the USER-OMP A description of the multi-threading strategy used in the OPENMP
package and some performance examples are package and some performance examples are
`presented here <http://sites.google.com/site/akohlmey/software/lammps-icms/lammps-icms-tms2011-talk.pdf?attredirects=0&d=1>`_. `presented here <http://sites.google.com/site/akohlmey/software/lammps-icms/lammps-icms-tms2011-talk.pdf?attredirects=0&d=1>`_.
Guidelines for best performance Guidelines for best performance
""""""""""""""""""""""""""""""" """""""""""""""""""""""""""""""
For many problems on current generation CPUs, running the USER-OMP For many problems on current generation CPUs, running the OPENMP
package with a single thread/task is faster than running with multiple package with a single thread/task is faster than running with multiple
threads/task. This is because the MPI parallelization in LAMMPS is threads/task. This is because the MPI parallelization in LAMMPS is
often more efficient than multi-threading as implemented in the often more efficient than multi-threading as implemented in the
USER-OMP package. The parallel efficiency (in a threaded sense) also OPENMP package. The parallel efficiency (in a threaded sense) also
varies for different USER-OMP styles. varies for different OPENMP styles.
Using multiple threads/task can be more effective under the following Using multiple threads/task can be more effective under the following
circumstances: circumstances:
@ -143,7 +143,7 @@ circumstances:
sometimes be achieved by increasing the length of the Coulombic cutoff sometimes be achieved by increasing the length of the Coulombic cutoff
and thus reducing the work done by the long-range solver. Using the and thus reducing the work done by the long-range solver. Using the
:doc:`run_style verlet/split <run_style>` command, which is compatible :doc:`run_style verlet/split <run_style>` command, which is compatible
with the USER-OMP package, is an alternative way to reduce the number with the OPENMP package, is an alternative way to reduce the number
of MPI tasks assigned to the KSpace calculation. of MPI tasks assigned to the KSpace calculation.
Additional performance tips are as follows: Additional performance tips are as follows:

View File

@ -22,7 +22,7 @@ standard or user packages:
+-----------------------------------------+-------------------------------------------------------+ +-----------------------------------------+-------------------------------------------------------+
| :doc:`KOKKOS Package <Speed_kokkos>` | for NVIDIA GPUs, Intel Xeon Phi, and OpenMP threading | | :doc:`KOKKOS Package <Speed_kokkos>` | for NVIDIA GPUs, Intel Xeon Phi, and OpenMP threading |
+-----------------------------------------+-------------------------------------------------------+ +-----------------------------------------+-------------------------------------------------------+
| :doc:`USER-OMP Package <Speed_omp>` | for OpenMP threading and generic CPU optimizations | | :doc:`OPENMP Package <Speed_omp>` | for OpenMP threading and generic CPU optimizations |
+-----------------------------------------+-------------------------------------------------------+ +-----------------------------------------+-------------------------------------------------------+
| :doc:`OPT Package <Speed_opt>` | generic CPU optimizations | | :doc:`OPT Package <Speed_opt>` | generic CPU optimizations |
+-----------------------------------------+-------------------------------------------------------+ +-----------------------------------------+-------------------------------------------------------+
@ -41,7 +41,7 @@ Inverting this list, LAMMPS currently has acceleration support for
three kinds of hardware, via the listed packages: three kinds of hardware, via the listed packages:
+-----------------+-----------------------------------------------------------------------------------------------------------------------------+ +-----------------+-----------------------------------------------------------------------------------------------------------------------------+
| Many-core CPUs | :doc:`USER-INTEL <Speed_intel>`, :doc:`KOKKOS <Speed_kokkos>`, :doc:`USER-OMP <Speed_omp>`, :doc:`OPT <Speed_opt>` packages | | Many-core CPUs | :doc:`USER-INTEL <Speed_intel>`, :doc:`KOKKOS <Speed_kokkos>`, :doc:`OPENMP <Speed_omp>`, :doc:`OPT <Speed_opt>` packages |
+-----------------+-----------------------------------------------------------------------------------------------------------------------------+ +-----------------+-----------------------------------------------------------------------------------------------------------------------------+
| GPUs | :doc:`GPU <Speed_gpu>`, :doc:`KOKKOS <Speed_kokkos>` packages | | GPUs | :doc:`GPU <Speed_gpu>`, :doc:`KOKKOS <Speed_kokkos>` packages |
+-----------------+-----------------------------------------------------------------------------------------------------------------------------+ +-----------------+-----------------------------------------------------------------------------------------------------------------------------+
@ -86,7 +86,7 @@ listed above:
+--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------+ +--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------+
| install the accelerator package | make yes-opt, make yes-user-intel, etc | | install the accelerator package | make yes-opt, make yes-user-intel, etc |
+--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------+ +--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------+
| add compile/link flags to Makefile.machine in src/MAKE | only for USER-INTEL, KOKKOS, USER-OMP, OPT packages | | add compile/link flags to Makefile.machine in src/MAKE | only for USER-INTEL, KOKKOS, OPENMP, OPT packages |
+--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------+ +--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------+
| re-build LAMMPS | make machine | | re-build LAMMPS | make machine |
+--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------+ +--------------------------------------------------------------------------------------------------------------------------------+----------------------------------------------------------------------+
@ -167,7 +167,7 @@ are in the individual accelerator sections.
run using OpenMP on multicore CPUs, on an NVIDIA or AMD GPU, or on an run using OpenMP on multicore CPUs, on an NVIDIA or AMD GPU, or on an
Intel Xeon Phi in "native" mode. The speed-up depends on a variety of Intel Xeon Phi in "native" mode. The speed-up depends on a variety of
factors, as discussed on the KOKKOS accelerator page. factors, as discussed on the KOKKOS accelerator page.
* Styles with an "omp" suffix are part of the USER-OMP package and allow * Styles with an "omp" suffix are part of the OPENMP package and allow
a pair-style to be run in multi-threaded mode using OpenMP. This can a pair-style to be run in multi-threaded mode using OpenMP. This can
be useful on nodes with high-core counts when using less MPI processes be useful on nodes with high-core counts when using less MPI processes
than cores is advantageous, e.g. when running with PPPM so that FFTs than cores is advantageous, e.g. when running with PPPM so that FFTs

View File

@ -6,7 +6,7 @@ page. The accelerated styles take the same arguments and should
produce the same results, except for round-off and precision issues. produce the same results, except for round-off and precision issues.
These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, These accelerated styles are part of the GPU, USER-INTEL, KOKKOS,
USER-OMP and OPT packages, respectively. They are only enabled if OPENMP and OPT packages, respectively. They are only enabled if
LAMMPS was built with those packages. See the :doc:`Build package <Build_package>` doc page for more info. LAMMPS was built with those packages. See the :doc:`Build package <Build_package>` doc page for more info.
You can specify the accelerated styles explicitly in your input script You can specify the accelerated styles explicitly in your input script

View File

@ -64,7 +64,7 @@ page. The accelerated styles take the same arguments and should
produce the same results, except for round-off and precision issues. produce the same results, except for round-off and precision issues.
These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, These accelerated styles are part of the GPU, USER-INTEL, KOKKOS,
USER-OMP and OPT packages, respectively. They are only enabled if OPENMP and OPT packages, respectively. They are only enabled if
LAMMPS was built with those packages. See the :doc:`Build package <Build_package>` doc page for more info. LAMMPS was built with those packages. See the :doc:`Build package <Build_package>` doc page for more info.
You can specify the accelerated styles explicitly in your input script You can specify the accelerated styles explicitly in your input script

View File

@ -319,7 +319,7 @@ styles take the same arguments and should produce the same results,
except for round-off and precision issues. except for round-off and precision issues.
Note that other acceleration packages in LAMMPS, specifically the GPU, Note that other acceleration packages in LAMMPS, specifically the GPU,
USER-INTEL, USER-OMP, and OPT packages do not use accelerated atom USER-INTEL, OPENMP, and OPT packages do not use accelerated atom
styles. styles.
The accelerated styles are part of the KOKKOS package. They are only The accelerated styles are part of the KOKKOS package. They are only

View File

@ -72,7 +72,7 @@ page. The accelerated styles take the same arguments and should
produce the same results, except for round-off and precision issues. produce the same results, except for round-off and precision issues.
These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, These accelerated styles are part of the GPU, USER-INTEL, KOKKOS,
USER-OMP and OPT packages, respectively. They are only enabled if OPENMP and OPT packages, respectively. They are only enabled if
LAMMPS was built with those packages. See the :doc:`Build package LAMMPS was built with those packages. See the :doc:`Build package
<Build_package>` doc page for more info. <Build_package>` doc page for more info.

View File

@ -90,7 +90,7 @@ to debug error messages like "All pair coeffs are not set".
The *accelerator* category prints out information about compile time The *accelerator* category prints out information about compile time
settings of included accelerator support for the GPU, KOKKOS, USER-INTEL, settings of included accelerator support for the GPU, KOKKOS, USER-INTEL,
and USER-OMP packages. and OPENMP packages.
The *styles* category prints the list of styles available in the The *styles* category prints the list of styles available in the
current LAMMPS binary. It supports one of the following options current LAMMPS binary. It supports one of the following options

View File

@ -421,7 +421,7 @@ calculations, along with the FFTs themselves, on the GPU or (optionally) threade
on the CPU when using OpenMP and FFTW3. on the CPU when using OpenMP and FFTW3.
These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, These accelerated styles are part of the GPU, USER-INTEL, KOKKOS,
USER-OMP, and OPT packages respectively. They are only enabled if OPENMP, and OPT packages respectively. They are only enabled if
LAMMPS was built with those packages. See the :doc:`Build package <Build_package>` doc page for more info. LAMMPS was built with those packages. See the :doc:`Build package <Build_package>` doc page for more info.
See the :doc:`Speed packages <Speed_packages>` doc page for more See the :doc:`Speed packages <Speed_packages>` doc page for more

View File

@ -131,7 +131,7 @@ Description
This command invokes package-specific settings for the various This command invokes package-specific settings for the various
accelerator packages available in LAMMPS. Currently the following accelerator packages available in LAMMPS. Currently the following
packages use settings from this command: GPU, USER-INTEL, KOKKOS, and packages use settings from this command: GPU, USER-INTEL, KOKKOS, and
USER-OMP. OPENMP.
If this command is specified in an input script, it must be near the If this command is specified in an input script, it must be near the
top of the script, before the simulation box has been defined. This top of the script, before the simulation box has been defined. This
@ -152,7 +152,7 @@ accelerator settings.
The KOKKOS package requires a "-k on" :doc:`command-line switch <Run_options>` respectively, which invokes a "package The KOKKOS package requires a "-k on" :doc:`command-line switch <Run_options>` respectively, which invokes a "package
kokkos" command with default settings. kokkos" command with default settings.
For the GPU, USER-INTEL, and USER-OMP packages, if a "-sf gpu" or "-sf For the GPU, USER-INTEL, and OPENMP packages, if a "-sf gpu" or "-sf
intel" or "-sf omp" :doc:`command-line switch <Run_options>` is used to intel" or "-sf omp" :doc:`command-line switch <Run_options>` is used to
auto-append accelerator suffixes to various styles in the input auto-append accelerator suffixes to various styles in the input
script, then those switches also invoke a "package gpu", "package script, then those switches also invoke a "package gpu", "package
@ -556,7 +556,7 @@ result in better performance for certain configurations and system sizes.
---------- ----------
The *omp* style invokes settings associated with the use of the The *omp* style invokes settings associated with the use of the
USER-OMP package. OPENMP package.
The *Nthreads* argument sets the number of OpenMP threads allocated for The *Nthreads* argument sets the number of OpenMP threads allocated for
each MPI task. For example, if your system has nodes with dual each MPI task. For example, if your system has nodes with dual
@ -595,12 +595,12 @@ for OpenMPI. Check your MPI documentation for additional details.
What combination of threads and MPI tasks gives the best performance What combination of threads and MPI tasks gives the best performance
is difficult to predict and can depend on many components of your is difficult to predict and can depend on many components of your
input. Not all features of LAMMPS support OpenMP threading via the input. Not all features of LAMMPS support OpenMP threading via the
USER-OMP package and the parallel efficiency can be very different, OPENMP package and the parallel efficiency can be very different,
too. too.
.. note:: .. note::
If you build LAMMPS with the GPU, USER-INTEL, and / or USER-OMP If you build LAMMPS with the GPU, USER-INTEL, and / or OPENMP
packages, be aware these packages all allow setting of the *Nthreads* packages, be aware these packages all allow setting of the *Nthreads*
value via their package commands, but there is only a single global value via their package commands, but there is only a single global
*Nthreads* value used by OpenMP. Thus if multiple package commands are *Nthreads* value used by OpenMP. Thus if multiple package commands are
@ -649,7 +649,7 @@ with the KOKKOS package. See the :doc:`Build package <Build_package>`
doc page for more info. doc page for more info.
The omp style of this command can only be invoked if LAMMPS was built The omp style of this command can only be invoked if LAMMPS was built
with the USER-OMP package. See the :doc:`Build package <Build_package>` with the OPENMP package. See the :doc:`Build package <Build_package>`
doc page for more info. doc page for more info.
Related commands Related commands

View File

@ -73,7 +73,7 @@ depending on your available hardware, as discussed on the :doc:`Speed packages <
the same arguments and should produce the same results, except for the same arguments and should produce the same results, except for
round-off and precision issues. round-off and precision issues.
The accelerated style is part of the USER-OMP. They are only enabled The accelerated style is part of the OPENMP. They are only enabled
if LAMMPS was built with those packages. See the :doc:`Build package <Build_package>` doc page for more info. if LAMMPS was built with those packages. See the :doc:`Build package <Build_package>` doc page for more info.
You can specify the accelerated style explicitly in your input script You can specify the accelerated style explicitly in your input script

View File

@ -389,7 +389,7 @@ corresponding suffix to all sub-styles, if those versions
exist. Otherwise the non-accelerated version will be used. exist. Otherwise the non-accelerated version will be used.
The individual accelerated sub-styles are part of the GPU, KOKKOS, The individual accelerated sub-styles are part of the GPU, KOKKOS,
USER-INTEL, USER-OMP, and OPT packages, respectively. They are only USER-INTEL, OPENMP, and OPT packages, respectively. They are only
enabled if LAMMPS was built with those packages. See the :doc:`Build enabled if LAMMPS was built with those packages. See the :doc:`Build
package <Build_package>` doc page for more info. package <Build_package>` doc page for more info.

View File

@ -167,7 +167,7 @@ page. The accelerated styles take the same arguments and should
produce the same results, except for round-off and precision issues. produce the same results, except for round-off and precision issues.
These accelerated styles are part of the GPU, USER-INTEL, KOKKOS, These accelerated styles are part of the GPU, USER-INTEL, KOKKOS,
USER-OMP and OPT packages, respectively. They are only enabled if OPENMP and OPT packages, respectively. They are only enabled if
LAMMPS was built with those packages. See the :doc:`Build package <Build_package>` doc page for more info. LAMMPS was built with those packages. See the :doc:`Build package <Build_package>` doc page for more info.
You can specify the accelerated styles explicitly in your input script You can specify the accelerated styles explicitly in your input script

View File

@ -308,7 +308,7 @@ Restrictions
The *verlet/split* style can only be used if LAMMPS was built with the The *verlet/split* style can only be used if LAMMPS was built with the
REPLICA package. Correspondingly the *respa/omp* style is available REPLICA package. Correspondingly the *respa/omp* style is available
only if the USER-OMP package was included. See the :doc:`Build package <Build_package>` doc page for more info. only if the OPENMP package was included. See the :doc:`Build package <Build_package>` doc page for more info.
Whenever using rRESPA, the user should experiment with trade-offs in Whenever using rRESPA, the user should experiment with trade-offs in
speed and accuracy for their system, and verify that they are speed and accuracy for their system, and verify that they are

View File

@ -37,7 +37,7 @@ The specified style can be *gpu*\ , *intel*\ , *kk*\ , *omp*\ , *opt* or
with, as described on the :doc:`Build package <Build_package>` doc page. with, as described on the :doc:`Build package <Build_package>` doc page.
The "gpu" style corresponds to the GPU package, the "intel" style to The "gpu" style corresponds to the GPU package, the "intel" style to
the USER-INTEL package, the "kk" style to the KOKKOS package, the the USER-INTEL package, the "kk" style to the KOKKOS package, the
"omp" style to the USER-OMP package, and the "opt" style to the OPT "omp" style to the OPENMP package, and the "opt" style to the OPT
package. package.
These are the variants these packages provide: These are the variants these packages provide:
@ -50,7 +50,7 @@ These are the variants these packages provide:
* KOKKOS = a collection of atom, pair, and fix styles optimized to run * KOKKOS = a collection of atom, pair, and fix styles optimized to run
using the Kokkos library on various kinds of hardware, including GPUs using the Kokkos library on various kinds of hardware, including GPUs
via CUDA and many-core chips via OpenMP or threading. via CUDA and many-core chips via OpenMP or threading.
* USER-OMP = a collection of pair, bond, angle, dihedral, improper, * OPENMP = a collection of pair, bond, angle, dihedral, improper,
kspace, compute, and fix styles with support for OpenMP kspace, compute, and fix styles with support for OpenMP
multi-threading multi-threading
* OPT = a handful of pair styles, cache-optimized for faster CPU * OPT = a handful of pair styles, cache-optimized for faster CPU
@ -75,7 +75,7 @@ For "hybrid", two packages are specified. The first is used whenever
available. If a style with the first suffix is not available, the style available. If a style with the first suffix is not available, the style
with the suffix for the second package will be used if available. For with the suffix for the second package will be used if available. For
example, "hybrid intel omp" will use styles from the USER-INTEL package example, "hybrid intel omp" will use styles from the USER-INTEL package
as a first choice and styles from the USER-OMP package as a second choice as a first choice and styles from the OPENMP package as a second choice
if no USER-INTEL variant is available. if no USER-INTEL variant is available.
If the specified style is *off*\ , then any previously specified suffix If the specified style is *off*\ , then any previously specified suffix

View File

@ -943,7 +943,7 @@ features or LAMMPS, *respa* allows to check whether the inner/middle/outer
mode of r-RESPA is supported. In the various style categories, mode of r-RESPA is supported. In the various style categories,
the checking is also done using suffix flags, if available and enabled. the checking is also done using suffix flags, if available and enabled.
Example 1: disable use of suffix for pppm when using GPU package (i.e. run it on the CPU concurrently to running the pair style on the GPU), but do use the suffix otherwise (e.g. with USER-OMP). Example 1: disable use of suffix for pppm when using GPU package (i.e. run it on the CPU concurrently to running the pair style on the GPU), but do use the suffix otherwise (e.g. with OPENMP).
.. code-block:: LAMMPS .. code-block:: LAMMPS

View File

@ -44,7 +44,7 @@ include(LAMMPSInterfaceCXX)
# building the plugins # building the plugins
add_library(morse2plugin MODULE morse2plugin.cpp pair_morse2.cpp pair_morse2_omp.cpp) add_library(morse2plugin MODULE morse2plugin.cpp pair_morse2.cpp pair_morse2_omp.cpp)
target_include_directories(morse2plugin PRIVATE "${LAMMPS_HEADER_DIR}/USER-OMP") target_include_directories(morse2plugin PRIVATE "${LAMMPS_HEADER_DIR}/OPENMP")
target_link_libraries(morse2plugin PRIVATE lammps) target_link_libraries(morse2plugin PRIVATE lammps)
add_library(nve2plugin MODULE nve2plugin.cpp fix_nve2.cpp) add_library(nve2plugin MODULE nve2plugin.cpp fix_nve2.cpp)

View File

@ -1,5 +1,5 @@
CXX=mpicxx CXX=mpicxx
CXXFLAGS=-I../../src -Wall -Wextra -O3 -fPIC -I../../src/USER-OMP -fopenmp CXXFLAGS=-I../../src -Wall -Wextra -O3 -fPIC -I../../src/OPENMP -fopenmp
LD=$(CXX) -shared -rdynamic -fopenmp LD=$(CXX) -shared -rdynamic -fopenmp
DSOEXT=.so DSOEXT=.so

View File

@ -1,5 +1,5 @@
CXX=mpicxx CXX=mpicxx
CXXFLAGS=-I../../src -Wall -Wextra -O3 -fPIC -I../../src/USER-OMP CXXFLAGS=-I../../src -Wall -Wextra -O3 -fPIC -I../../src/OPENMP
LD=$(CXX) -bundle -rdynamic -Wl,-undefined,dynamic_lookup LD=$(CXX) -bundle -rdynamic -Wl,-undefined,dynamic_lookup
DSOEXT=.dylib DSOEXT=.dylib

View File

@ -1,5 +1,5 @@
CXX=g++ CXX=g++
CXXFLAGS=-I../../src -I../../src/STUBS -Wall -Wextra -O3 -fPIC -I../../src/USER-OMP -fopenmp CXXFLAGS=-I../../src -I../../src/STUBS -Wall -Wextra -O3 -fPIC -I../../src/OPENMP -fopenmp
LD=$(CXX) -shared -rdynamic -fopenmp LD=$(CXX) -shared -rdynamic -fopenmp
DSOEXT=.so DSOEXT=.so

View File

@ -1536,7 +1536,7 @@ class lammps(object):
""" """
result = {} result = {}
for p in ['GPU', 'KOKKOS', 'USER-INTEL', 'USER-OMP']: for p in ['GPU', 'KOKKOS', 'USER-INTEL', 'OPENMP']:
result[p] = {} result[p] = {}
c = 'api' c = 'api'
result[p][c] = [] result[p][c] = []

View File

@ -47,7 +47,7 @@ depend () {
if (test $1 = "ASPHERE") then if (test $1 = "ASPHERE") then
depend GPU depend GPU
depend USER-OMP depend OPENMP
depend CG-DNA depend CG-DNA
depend USER-INTEL depend USER-INTEL
fi fi
@ -55,22 +55,22 @@ fi
if (test $1 = "CLASS2") then if (test $1 = "CLASS2") then
depend GPU depend GPU
depend KOKKOS depend KOKKOS
depend USER-OMP depend OPENMP
fi fi
if (test $1 = "COLLOID") then if (test $1 = "COLLOID") then
depend GPU depend GPU
depend USER-OMP depend OPENMP
fi fi
if (test $1 = "DIPOLE") then if (test $1 = "DIPOLE") then
depend USER-MISC depend USER-MISC
depend USER-OMP depend OPENMP
fi fi
if (test $1 = "GRANULAR") then if (test $1 = "GRANULAR") then
depend KOKKOS depend KOKKOS
depend USER-OMP depend OPENMP
fi fi
if (test $1 = "KSPACE") then if (test $1 = "KSPACE") then
@ -78,7 +78,7 @@ if (test $1 = "KSPACE") then
depend GPU depend GPU
depend KOKKOS depend KOKKOS
depend OPT depend OPT
depend USER-OMP depend OPENMP
depend USER-INTEL depend USER-INTEL
depend USER-PHONON depend USER-PHONON
depend USER-FEP depend USER-FEP
@ -90,7 +90,7 @@ if (test $1 = "MANYBODY") then
depend OPT depend OPT
depend QEQ depend QEQ
depend USER-MISC depend USER-MISC
depend USER-OMP depend OPENMP
fi fi
if (test $1 = "MOLECULE") then if (test $1 = "MOLECULE") then
@ -98,12 +98,12 @@ if (test $1 = "MOLECULE") then
depend KOKKOS depend KOKKOS
depend USER-MISC depend USER-MISC
depend USER-FEP depend USER-FEP
depend USER-OMP depend OPENMP
depend USER-INTEL depend USER-INTEL
fi fi
if (test $1 = "PERI") then if (test $1 = "PERI") then
depend USER-OMP depend OPENMP
fi fi
if (test $1 = "PYTHON") then if (test $1 = "PYTHON") then
@ -112,7 +112,7 @@ fi
if (test $1 = "RIGID") then if (test $1 = "RIGID") then
depend KOKKOS depend KOKKOS
depend USER-OMP depend OPENMP
depend USER-SDPD depend USER-SDPD
fi fi
@ -124,7 +124,7 @@ fi
if (test $1 = "CG-SDK") then if (test $1 = "CG-SDK") then
depend GPU depend GPU
depend KOKKOS depend KOKKOS
depend USER-OMP depend OPENMP
fi fi
if (test $1 = "USER-DPD") then if (test $1 = "USER-DPD") then
@ -132,20 +132,20 @@ if (test $1 = "USER-DPD") then
fi fi
if (test $1 = "USER-DRUDE") then if (test $1 = "USER-DRUDE") then
depend USER-OMP depend OPENMP
fi fi
if (test $1 = "USER-FEP") then if (test $1 = "USER-FEP") then
depend USER-OMP depend OPENMP
fi fi
if (test $1 = "USER-MISC") then if (test $1 = "USER-MISC") then
depend GPU depend GPU
depend USER-OMP depend OPENMP
depend USER-INTEL depend USER-INTEL
fi fi
if (test $1 = "USER-REAXC") then if (test $1 = "USER-REAXC") then
depend KOKKOS depend KOKKOS
depend USER-OMP depend OPENMP
fi fi

View File

@ -1532,7 +1532,7 @@ void PPPMKokkos<DeviceType>::operator()(TagPPPM_make_rho_atomic, const int &i) c
template<class DeviceType> template<class DeviceType>
KOKKOS_INLINE_FUNCTION KOKKOS_INLINE_FUNCTION
void PPPMKokkos<DeviceType>::operator() (TagPPPM_make_rho, typename Kokkos::TeamPolicy<DeviceType, TagPPPM_make_rho>::member_type dev) const { void PPPMKokkos<DeviceType>::operator() (TagPPPM_make_rho, typename Kokkos::TeamPolicy<DeviceType, TagPPPM_make_rho>::member_type dev) const {
// adapted from USER-OMP/pppm.cpp: // adapted from OPENMP/pppm.cpp:
// determine range of grid points handled by this thread // determine range of grid points handled by this thread
int tid = dev.league_rank(); int tid = dev.league_rank();

View File

@ -1,4 +1,4 @@
# omp = USER-OMP package, MPI with its default compiler # omp = OPENMP package, MPI with its default compiler
SHELL = /bin/sh SHELL = /bin/sh

View File

@ -63,7 +63,7 @@ the compiler wrapped by mpicxx. Setting this requires a different
syntax for different MPIs. syntax for different MPIs.
Makefile.opt OPT package, using default MPI Makefile.opt OPT package, using default MPI
Makefile.omp USER-OMP package, using default MPI Makefile.omp OPENMP package, using default MPI
Makefile.gpu GPU package, using default MPI Makefile.gpu GPU package, using default MPI
Makefile.intel_cpu_intelmpi USER-INTEL package for CPU with Intel MPI Makefile.intel_cpu_intelmpi USER-INTEL package for CPU with Intel MPI

View File

@ -55,7 +55,7 @@ PACKUSER = user-adios user-atc user-awpmd user-brownian user-bocs cg-dna \
cg-sdk user-colvars user-dielectric user-diffraction user-dpd user-drude \ cg-sdk user-colvars user-dielectric user-diffraction user-dpd user-drude \
user-eff user-fep user-h5md ml-hdnnp user-intel latboltz user-manifold \ user-eff user-fep user-h5md ml-hdnnp user-intel latboltz user-manifold \
user-mdi meam user-mesodpd user-mesont user-mgpt user-misc \ user-mdi meam user-mesodpd user-mesont user-mgpt user-misc \
user-mofff user-molfile user-netcdf user-omp user-phonon \ user-mofff user-molfile user-netcdf openmp user-phonon \
ml-pace user-plumed user-ptm user-qmmm user-qtb ml-quip \ ml-pace user-plumed user-ptm user-qmmm user-qtb ml-quip \
ml-rann user-reaction user-reaxc user-scafacos machdyn user-smtbq \ ml-rann user-reaction user-reaxc user-scafacos machdyn user-smtbq \
user-sdpd user-sph user-tally user-uef user-vtk user-yaff user-sdpd user-sph user-tally user-uef user-vtk user-yaff

Some files were not shown because too many files have changed in this diff Show More