lammps/src/USER-INTEL
Axel Kohlmeyer 3704d90efb
Merge branch 'master' into collected-small-fixes
2020-03-25 06:50:11 -04:00
..
TEST USER-INTEL: Adding explicit include path for MKL and updating benchmark script. 2019-09-04 07:53:33 -07:00
Install.sh update dependencies for USER-CGSDK package. make script permissions consistent 2018-05-09 16:13:54 -04:00
README Fix typo 2020-03-14 13:57:48 +09:00
angle_charmm_intel.cpp error out when per-atom stress is requested for bonded interactions with USER-INTEL 2019-03-28 12:38:41 -04:00
angle_charmm_intel.h bulk removal of #include <cstdio> from header files 2019-06-27 21:54:07 -04:00
angle_harmonic_intel.cpp error out when per-atom stress is requested for bonded interactions with USER-INTEL 2019-03-28 12:38:41 -04:00
angle_harmonic_intel.h bulk removal of #include <cstdio> from header files 2019-06-27 21:54:07 -04:00
bond_fene_intel.cpp error out when per-atom stress is requested for bonded interactions with USER-INTEL 2019-03-28 12:38:41 -04:00
bond_fene_intel.h bulk removal of #include <cstdio> from header files 2019-06-27 21:54:07 -04:00
bond_harmonic_intel.cpp error out when per-atom stress is requested for bonded interactions with USER-INTEL 2019-03-28 12:38:41 -04:00
bond_harmonic_intel.h bulk removal of #include <cstdio> from header files 2019-06-27 21:54:07 -04:00
dihedral_charmm_intel.cpp error out when per-atom stress is requested for bonded interactions with USER-INTEL 2019-03-28 12:38:41 -04:00
dihedral_charmm_intel.h massive whitespace cleanup in USER-INTEL 2017-06-19 13:23:01 -04:00
dihedral_fourier_intel.cpp error out when per-atom stress is requested for bonded interactions with USER-INTEL 2019-03-28 12:38:41 -04:00
dihedral_fourier_intel.h replace leading tabs 2018-03-16 12:34:33 -04:00
dihedral_harmonic_intel.cpp error out when per-atom stress is requested for bonded interactions with USER-INTEL 2019-03-28 12:38:41 -04:00
dihedral_harmonic_intel.h massive whitespace cleanup in USER-INTEL 2017-06-19 13:23:01 -04:00
dihedral_opls_intel.cpp error out when per-atom stress is requested for bonded interactions with USER-INTEL 2019-03-28 12:38:41 -04:00
dihedral_opls_intel.h massive whitespace cleanup in USER-INTEL 2017-06-19 13:23:01 -04:00
fix_intel.cpp refactor fix for detecting intel pair styles in hybrid pair styles 2020-01-07 15:09:50 -05:00
fix_intel.h refactor fix for detecting intel pair styles in hybrid pair styles 2020-01-07 15:09:50 -05:00
fix_nh_intel.cpp fix bug reported by jesse carter on lammps-users 2019-07-11 17:42:58 -04:00
fix_nh_intel.h massive whitespace cleanup in USER-INTEL 2017-06-19 13:23:01 -04:00
fix_npt_intel.cpp replace C-style include files with their C++ equivalents 2018-04-27 18:00:24 -04:00
fix_npt_intel.h git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@14388 f3b2605a-c512-4ea7-a41b-209d697bcdaa 2015-12-19 18:31:40 +00:00
fix_nve_asphere_intel.cpp Fix misc. warnings (#1076) 2018-08-24 14:58:28 -06:00
fix_nve_asphere_intel.h remove executable permissions on non-executables and non-scripts 2016-09-08 14:45:07 -04:00
fix_nve_intel.cpp fix bug reported by jesse carter on lammps-users 2019-07-11 17:42:58 -04:00
fix_nve_intel.h git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@14765 f3b2605a-c512-4ea7-a41b-209d697bcdaa 2016-03-22 00:15:54 +00:00
fix_nvt_intel.cpp replace C-style include files with their C++ equivalents 2018-04-27 18:00:24 -04:00
fix_nvt_intel.h git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@14596 f3b2605a-c512-4ea7-a41b-209d697bcdaa 2016-02-15 15:33:36 +00:00
fix_nvt_sllod_intel.cpp use more accurate strncmp() check instead of strstr() and apply the same change to all affected variants of fix nvt/sllod 2018-12-12 00:02:06 -05:00
fix_nvt_sllod_intel.h git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@14596 f3b2605a-c512-4ea7-a41b-209d697bcdaa 2016-02-15 15:33:36 +00:00
improper_cvff_intel.cpp error out when per-atom stress is requested for bonded interactions with USER-INTEL 2019-03-28 12:38:41 -04:00
improper_cvff_intel.h bulk removal of #include <cstdio> from header files 2019-06-27 21:54:07 -04:00
improper_harmonic_intel.cpp error out when per-atom stress is requested for bonded interactions with USER-INTEL 2019-03-28 12:38:41 -04:00
improper_harmonic_intel.h bulk removal of #include <cstdio> from header files 2019-06-27 21:54:07 -04:00
intel_buffers.cpp USER-INTEL: Changes to support LAMMPS_BIGBIG in USER-INTEL + fixed check for per-atom virials + fixed check for exclusion with offload. 2019-05-13 05:02:46 -07:00
intel_buffers.h USER-INTEL: Changes to support LAMMPS_BIGBIG in USER-INTEL + fixed check for per-atom virials + fixed check for exclusion with offload. 2019-05-13 05:02:46 -07:00
intel_intrinsics.h replace non-UTF-8 compliant character with ASCII 2019-11-21 17:09:24 -05:00
intel_intrinsics_airebo.h Bug fixes for use of uninitialized variable and strict-aliasing in USER-INTEL. 2019-08-01 05:32:18 -07:00
intel_preprocess.h remove trailing blanks 2018-12-01 21:38:22 -05:00
intel_simd.h bulk removal of #include <cstdio> from header files 2019-06-27 21:54:07 -04:00
math_extra_intel.h massive whitespace cleanup in USER-INTEL 2017-06-19 13:23:01 -04:00
nbin_intel.cpp fix small memory leak in USER-INTEL binning style 2020-01-07 11:13:43 -05:00
nbin_intel.h new neighbor list changes 2016-09-07 13:42:58 -06:00
npair_full_bin_ghost_intel.cpp USER-INTEL: Explictly disabling G2S opts to improve lj/cut, eam, and dpd performance. Removing -fno-alias flag from Makefiles due to issues with 2019 compilers and adding explicit _noalias qualifier for some variables to compensate. 2019-09-17 02:50:37 -07:00
npair_full_bin_ghost_intel.h replace leading tabs 2018-03-16 12:34:33 -04:00
npair_full_bin_intel.cpp Adding full hybrid support to USER-INTEL package and fixing bug with EAM parameter initialization. 2018-10-11 05:12:00 -07:00
npair_full_bin_intel.h massive whitespace cleanup in USER-INTEL 2017-06-19 13:23:01 -04:00
npair_half_bin_newton_intel.cpp Adding full hybrid support to USER-INTEL package and fixing bug with EAM parameter initialization. 2018-10-11 05:12:00 -07:00
npair_half_bin_newton_intel.h USER-INTEL upgrade from M Brown 2017-06-16 16:56:28 -06:00
npair_half_bin_newton_tri_intel.cpp Adding full hybrid support to USER-INTEL package and fixing bug with EAM parameter initialization. 2018-10-11 05:12:00 -07:00
npair_half_bin_newton_tri_intel.h USER-INTEL upgrade from M Brown 2017-06-16 16:56:28 -06:00
npair_halffull_newtoff_intel.h Adding full hybrid support to USER-INTEL package and fixing bug with EAM parameter initialization. 2018-10-11 05:12:00 -07:00
npair_halffull_newton_intel.cpp remove trailing blanks 2018-12-01 21:38:22 -05:00
npair_halffull_newton_intel.h Adding full hybrid support to USER-INTEL package and fixing bug with EAM parameter initialization. 2018-10-11 05:12:00 -07:00
npair_intel.cpp Bug fix for USER-INTEL package with triclinic neighbor builds. 2019-12-18 01:27:39 -08:00
npair_intel.h remove trailing blanks 2018-12-01 21:38:22 -05:00
npair_skip_intel.cpp remove trailing blanks 2018-12-01 21:38:22 -05:00
npair_skip_intel.h remove trailing blanks 2018-12-01 21:38:22 -05:00
pair_airebo_intel.cpp Fix typo 2020-03-14 13:57:48 +09:00
pair_airebo_intel.h align USER-INTEL versions of REBO/AIREBO with MANYBODY implementation 2019-05-04 20:08:34 -04:00
pair_airebo_morse_intel.cpp set variant flag in USER-INTEL (AI)REBO(-M) styles 2019-05-04 20:53:43 -04:00
pair_airebo_morse_intel.h USER-INTEL add-ons from Mike 2017-08-15 17:12:07 -06:00
pair_buck_coul_cut_intel.cpp error out when per-atom stress is requested 2019-03-28 12:25:40 -04:00
pair_buck_coul_cut_intel.h massive whitespace cleanup in USER-INTEL 2017-06-19 13:23:01 -04:00
pair_buck_coul_long_intel.cpp error out when per-atom stress is requested 2019-03-28 12:25:40 -04:00
pair_buck_coul_long_intel.h massive whitespace cleanup in USER-INTEL 2017-06-19 13:23:01 -04:00
pair_buck_intel.cpp error out when per-atom stress is requested 2019-03-28 12:25:40 -04:00
pair_buck_intel.h massive whitespace cleanup in USER-INTEL 2017-06-19 13:23:01 -04:00
pair_dpd_intel.cpp USER-INTEL: Explictly disabling G2S opts to improve lj/cut, eam, and dpd performance. Removing -fno-alias flag from Makefiles due to issues with 2019 compilers and adding explicit _noalias qualifier for some variables to compensate. 2019-09-17 02:50:37 -07:00
pair_dpd_intel.h more whitespace cleanup 2018-03-15 22:02:02 -04:00
pair_eam_alloy_intel.cpp more replacing of sprintf() with snprintf() 2018-09-06 10:45:48 -04:00
pair_eam_alloy_intel.h USER-INTEL add-ons from Mike 2017-08-15 17:12:07 -06:00
pair_eam_fs_intel.cpp more replacing of sprintf() with snprintf() 2018-09-06 10:45:48 -04:00
pair_eam_fs_intel.h USER-INTEL add-ons from Mike 2017-08-15 17:12:07 -06:00
pair_eam_intel.cpp USER-INTEL: Explictly disabling G2S opts to improve lj/cut, eam, and dpd performance. Removing -fno-alias flag from Makefiles due to issues with 2019 compilers and adding explicit _noalias qualifier for some variables to compensate. 2019-09-17 02:50:37 -07:00
pair_eam_intel.h bulk removal of #include <cstdio> from header files 2019-06-27 21:54:07 -04:00
pair_gayberne_intel.cpp Bug fix for gay-berne potential when mu != 1.0. 2019-10-27 22:31:00 -07:00
pair_gayberne_intel.h USER-INTEL upgrade from M Brown 2017-06-16 16:56:28 -06:00
pair_lj_charmm_coul_charmm_intel.cpp Fix typo 2020-03-14 13:57:48 +09:00
pair_lj_charmm_coul_charmm_intel.h Fix typo 2020-03-14 13:57:48 +09:00
pair_lj_charmm_coul_long_intel.cpp Fix typo 2020-03-14 13:57:48 +09:00
pair_lj_charmm_coul_long_intel.h Fix typo 2020-03-14 13:57:48 +09:00
pair_lj_cut_coul_long_intel.cpp avoid uninitialized memory access when used with hybrid styles 2020-01-07 11:14:22 -05:00
pair_lj_cut_coul_long_intel.h massive whitespace cleanup in USER-INTEL 2017-06-19 13:23:01 -04:00
pair_lj_cut_intel.cpp plug small memory leak 2020-01-07 15:32:44 -05:00
pair_lj_cut_intel.h USER-INTEL upgrade from M Brown 2017-06-16 16:56:28 -06:00
pair_lj_long_coul_long_intel.cpp replace C-style include files with their C++ equivalents 2018-04-27 18:00:24 -04:00
pair_lj_long_coul_long_intel.h massive whitespace cleanup in USER-INTEL 2017-06-19 13:23:01 -04:00
pair_rebo_intel.cpp set variant flag in USER-INTEL (AI)REBO(-M) styles 2019-05-04 20:53:43 -04:00
pair_rebo_intel.h USER-INTEL add-ons from Mike 2017-08-15 17:12:07 -06:00
pair_sw_intel.cpp error out when per-atom stress is requested 2019-03-28 12:25:40 -04:00
pair_sw_intel.h Adding full hybrid support to USER-INTEL package and fixing bug with EAM parameter initialization. 2018-10-11 05:12:00 -07:00
pair_tersoff_intel.cpp Convert characters to UTF-8 2020-03-23 09:42:46 -04:00
pair_tersoff_intel.h massive whitespace cleanup in USER-INTEL 2017-06-19 13:23:01 -04:00
pppm_disp_intel.cpp Merge pull request #1941 from e-kwsm/typo 2020-03-18 20:24:06 -04:00
pppm_disp_intel.h fix bug reported in issue #1173 2018-10-23 11:58:00 -04:00
pppm_intel.cpp restore support for triclinic cells with pppm/intel by calling the corresponding functions in PPPM in that case 2020-03-13 16:01:00 -04:00
pppm_intel.h fix bug reported in issue #1173 2018-10-23 11:58:00 -04:00
verlet_lrt_intel.cpp use consistent naming for c++11 style kspace thread 2020-03-22 21:14:26 -04:00
verlet_lrt_intel.h Intel Package: Bug fix when using LRT with minimize. Bug fix for virial calculation when using GNU compilers. Most of framework for adding hybrid support is now in place. 2018-06-22 01:52:55 -07:00

README

                     --------------------------------
                          LAMMPS Intel(R) Package
                     --------------------------------

             W. Michael Brown (Intel) michael.w.brown at intel.com
                  Markus Hohnerbach (RWTH Aachen University)
                   William McDoniel (RWTH Aachen University)
                   Rodrigo Canales (RWTH Aachen University)
                           Stan Moore (Sandia)
                   Ahmed E. Ismail (RWTH Aachen University)
                   Paolo Bientinesi (RWTH Aachen University)
                          Anupama Kurpad (Intel)
                          Biswajit Mishra (Shell)

-----------------------------------------------------------------------------

This package provides LAMMPS styles that:

   1. include support for single and mixed precision in addition to double.
   2. include modifications to support vectorization for key routines
   3. include modifications for data layouts to improve cache efficiency
   3. include modifications to support offload to Intel(R) Xeon Phi(TM)
      coprocessors

-----------------------------------------------------------------------------

As of 2019/03/28 none of the styles provided in this package support
tallying per-atom stresses. Any attempt to compute/access it will
cause an error termination.

-----------------------------------------------------------------------------

For Intel server processors codenamed "Skylake", the following flags should
be added or changed in the Makefile depending on the version:

2017 update 2         - No changes needed
2017 updates 3 or 4   - Use -xCOMMON-AVX512 and not -xHost or -xCORE-AVX512
2018 initial release  - Use -xCOMMON-AVX512 and not -xHost or -xCORE-AVX512
2018u1 or newer       - Use -xHost or -xCORE-AVX512 and -qopt-zmm-usage=high

-----------------------------------------------------------------------------

When using the suffix command with "intel", intel styles will be used if they
exist. If the suffix command is used with "hybrid intel omp" and the USER-OMP
is installed, USER-OMP styles will be used whenever USER-INTEL styles are not
available. This allow for running most styles in LAMMPS with threading.

-----------------------------------------------------------------------------

The Long-Range Thread mode (LRT) in the Intel package is enabled through the
-DLMP_INTEL_USELRT define at compile time. All intel optimized makefiles
include this define. This feature will use pthreads by default.
Alternatively, "-DLMP_INTEL_LRT11" can be used to build with compilers that
support threads intrinsically using the C++11 standard. When using
LRT mode, you might need to disable OpenMP affinity settings (e.g.
export KMP_AFFINITY=none). LAMMPS will generate a warning if the settings
need to be changed.

-----------------------------------------------------------------------------

Unless Intel Math Kernel Library (MKL) is unavailable, -DLMP_USE_MKL_RNG
should be added to the compile flags. This will enable using the MKL Mersenne
Twister random number generator (RNG) for Dissipative Particle Dynamics
(DPD). This RNG can allow significantly faster performance and it also has a
significantly longer period than the standard RNG for DPD.

-----------------------------------------------------------------------------

In order to use offload to Intel(R) Xeon Phi(TM) coprocessors, the flag
-DLMP_INTEL_OFFLOAD should be set in the Makefile. Offload requires the use of
Intel compilers.

-----------------------------------------------------------------------------

For portability reasons, vectorization directives are currently only enabled
for Intel compilers. Using other compilers may result in significantly
lower performance. This behavior can be changed by defining
LMP_SIMD_COMPILER for the preprocessor (see intel_preprocess.h).

-----------------------------------------------------------------------------

By default, when running with offload to Intel(R) coprocessors, affinity
for host MPI tasks and OpenMP threads is set automatically within the code.
This currently requires the use of system calls. To disable at build time,
compile with -DINTEL_OFFLOAD_NOAFFINITY.

-----------------------------------------------------------------------------

Vector intrinsics are temporarily being used for the Stillinger-Weber
potential to allow for advanced features in the AVX512 instruction set to
be exploited on early hardware. We hope to see compiler improvements for
AVX512 that will eliminate this requirement, so it is not recommended to
develop code based on the intrinsics implementation. Please e-mail the
authors for more details.