rename USER-OMP to OPENMP
This commit is contained in:
2
.github/CODEOWNERS
vendored
2
.github/CODEOWNERS
vendored
@ -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
|
||||||
|
|||||||
@ -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()
|
||||||
|
|||||||
40
cmake/Modules/Packages/OPENMP.cmake
Normal file
40
cmake/Modules/Packages/OPENMP.cmake
Normal 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})
|
||||||
@ -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})
|
|
||||||
@ -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)
|
||||||
|
|||||||
@ -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)
|
||||||
|
|||||||
@ -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)
|
||||||
|
|||||||
@ -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})
|
||||||
|
|||||||
@ -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.
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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.
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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>` | | |
|
||||||
+--------------------------------------+--------------------------------------+------------------------------------+----------------------------------+--------------------------------+--------------------------------+
|
+--------------------------------------+--------------------------------------+------------------------------------+----------------------------------+--------------------------------+--------------------------------+
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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::
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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::
|
||||||
|
|||||||
@ -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::
|
||||||
|
|||||||
@ -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::
|
||||||
|
|||||||
@ -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.
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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*
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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>`,
|
||||||
|
|||||||
@ -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 |
|
||||||
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
|
+------------------------------------------------+-----------------------------------------------------------------+-------------------------------------------------------------------------------+------------------------------------------------------+---------+
|
||||||
|
|||||||
@ -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.
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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.
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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"
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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:
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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.
|
||||||
|
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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.
|
||||||
|
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|
||||||
|
|||||||
@ -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)
|
||||||
|
|||||||
@ -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
|
||||||
|
|
||||||
|
|||||||
@ -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
|
||||||
|
|
||||||
|
|||||||
@ -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
|
||||||
|
|
||||||
|
|||||||
@ -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] = []
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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();
|
||||||
|
|||||||
@ -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
|
||||||
|
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
Reference in New Issue
Block a user