update documentation for changes in USER-INTEL support in CMake

This commit is contained in:
Axel Kohlmeyer 2019-04-02 06:59:19 -04:00
parent 91f3a94851
commit 800f3a81b1
No known key found for this signature in database
GPG Key ID: D9B44E93BF0C375A
3 changed files with 36 additions and 12 deletions

View File

@ -155,11 +155,13 @@ make
The CMake build exposes a lot of different options. In the old build system The CMake build exposes a lot of different options. In the old build system
some of the package selections were possible by using special make target like some of the package selections were possible by using special make target like
`make yes-std` or `make no-lib`. Achieving the same result with cmake requires `make yes-std` or `make no-lib`. Achieving a similar result with cmake requires
specifying all options manually. This can quickly become a very long command specifying all options manually. This can quickly become a very long command
line that is hard to handle. While these could be stored in a simple script line that is hard to handle. While these could be stored in a simple script
file, there is another way of defining "presets" to compile LAMMPS in a certain file, there is another way of defining "presets" to compile LAMMPS in a certain
way. way. Since the cmake build process - contrary to the conventional build system -
includes the compilation of the bundled libraries into the standard build process,
the grouping of those presets is somewhat different.
A preset is a regular CMake script file that can use constructs such as A preset is a regular CMake script file that can use constructs such as
variables, lists and for-loops to manipulate configuration options and create variables, lists and for-loops to manipulate configuration options and create
@ -171,10 +173,10 @@ Such a file can then be passed to cmake via the `-C` flag. Several examples of
presets can be found in the `cmake/presets` folder. presets can be found in the `cmake/presets` folder.
```bash ```bash
# build LAMMPS with all "standard" packages which don't use libraries and enable GPU package # build LAMMPS with all packages enabled which don't use external libraries and enable GPU package
mkdir build mkdir build
cd build cd build
cmake -C ../cmake/presets/std_nolib.cmake -D PKG_GPU=on ../cmake cmake -C ../cmake/presets/all_on.cmake -C ../cmake/presets/nolib.cmake -D PKG_GPU=on ../cmake
``` ```
# Reference # Reference
@ -1429,6 +1431,17 @@ TODO
</dl> </dl>
</td> </td>
</tr> </tr>
<tr>
<td><code>INTEL_LRT_MODE</code></td>
<td>How to support Long-range thread mode in Verlet integration</td>
<td>
<dl>
<dt><code>threads</code> (default, if pthreads available)</dt>
<dt><code>none</code> (default, if pthreads not available)</dt>
<dt><code>c++11</code></dt>
</dl>
</td>
</tr>
</tbody> </tbody>
</table> </table>

View File

@ -859,23 +859,34 @@ file.
USER-INTEL package :h4,link(user-intel) USER-INTEL package :h4,link(user-intel)
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 Intel CPUs or Intel KNLs. You should also typically build for, either x86 CPUs or Intel KNLs in offload mode. You should
"install the USER-OMP package"_#user-omp, as it can be used in tandem also typically "install the USER-OMP package"_#user-omp, as it can be
with the USER-INTEL package to good effect, as explained on the "Speed used in tandem with the USER-INTEL package to good effect, as explained
intel"_Speed_intel.html doc page. on the "Speed intel"_Speed_intel.html doc page.
[CMake build]: [CMake build]:
-D INTEL_ARCH=value # value = cpu (default) or knl -D INTEL_ARCH=value # value = cpu (default) or knl
-D BUILD_OMP=yes # also required to build with the USER-INTEl package :pre -D INTEL_LRT_MODE=value # value = threads, none, or c++11 :pre
Requires an Intel compiler as well as the Intel TBB and MKL libraries. In Long-range thread mode (LRT) a modified verlet style is used, that
operates the Kspace calculation in a separate thread concurrently to
other calculations. This has to be enabled in the "package intel"_package.html
command at runtime. With the setting "threads" it used the pthreads
library, while c++11 will use the built-in thread support of C++11
compilers. The option "none" skips compilation of this feature. The
default is to use "threads" if pthreads is available and otherwise "none".
Best performance is achieved with Intel hardware, Intel compilers, as well as
the Intel TBB and MKL libraries. However, the code also compiles, links, and
runs with other compilers and without TBB and MKL.
[Traditional make]: [Traditional make]:
Choose which hardware to compile for in Makefile.machine via the Choose which hardware to compile for in Makefile.machine via the
following settings. See src/MAKE/OPTIONS/Makefile.intel_cpu* and following settings. See src/MAKE/OPTIONS/Makefile.intel_cpu* and
Makefile.knl files for examples. Makefile.knl files for examples. and src/USER-INTEL/README for
additional information.
For CPUs: For CPUs:

View File

@ -24,7 +24,7 @@ LAMMPS to run on the CPU cores and co-processor cores simultaneously.
Angle Styles: charmm, harmonic :ulb,l Angle Styles: charmm, harmonic :ulb,l
Bond Styles: fene, fourier, harmonic :l Bond Styles: fene, fourier, harmonic :l
Dihedral Styles: charmm, harmonic, opls :l Dihedral Styles: charmm, fourier, harmonic, opls :l
Fixes: nve, npt, nvt, nvt/sllod, nve/asphere :l Fixes: nve, npt, nvt, nvt/sllod, nve/asphere :l
Improper Styles: cvff, harmonic :l Improper Styles: cvff, harmonic :l
Pair Styles: airebo, airebo/morse, buck/coul/cut, buck/coul/long, Pair Styles: airebo, airebo/morse, buck/coul/cut, buck/coul/long,