git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@14090 f3b2605a-c512-4ea7-a41b-209d697bcdaa
This commit is contained in:
sjplimp 2015-10-05 15:19:04 +00:00
parent 0e398e5e65
commit bee7ed920a
9 changed files with 129 additions and 111 deletions

View File

@ -1651,16 +1651,23 @@ writes screen information to a file.N. For both one-partition and
multi-partition mode, if the specified file is “none”, then no screen multi-partition mode, if the specified file is “none”, then no screen
output is performed. Option -pscreen will override the name of the output is performed. Option -pscreen will override the name of the
partition screen files file.N.</p> partition screen files file.N.</p>
<div class="highlight-python"><div class="highlight"><pre>-suffix style <div class="highlight-python"><div class="highlight"><pre>-suffix style args
</pre></div> </pre></div>
</div> </div>
<p>Use variants of various styles if they exist. The specified style can <p>Use variants of various styles if they exist. The specified style can
be <em>cuda</em>, <em>gpu</em>, <em>intel</em>, <em>kk</em>, <em>omp</em>, or <em>opt</em>. These refer to be <em>cuda</em>, <em>gpu</em>, <em>intel</em>, <em>kk</em>, <em>omp</em>, <em>opt</em>, or <em>hybrid</em>. These refer
optional packages that LAMMPS can be built with, as described above in to optional packages that LAMMPS can be built with, as described above in
<a class="reference internal" href="#start-3"><span>Section 2.3</span></a>. The &#8220;cuda&#8221; style corresponds to the USER-CUDA <a class="reference internal" href="#start-3"><span>Section 2.3</span></a>. The &#8220;cuda&#8221; style corresponds to the USER-CUDA
package, the &#8220;gpu&#8221; style to the GPU package, the &#8220;intel&#8221; style to the package, the &#8220;gpu&#8221; style to the GPU package, the &#8220;intel&#8221; style to the
USER-INTEL package, the &#8220;kk&#8221; style to the KOKKOS package, the &#8220;opt&#8221; USER-INTEL package, the &#8220;kk&#8221; style to the KOKKOS package, the &#8220;opt&#8221;
style to the OPT package, and the &#8220;omp&#8221; style to the USER-OMP package.</p> style to the OPT package, and the &#8220;omp&#8221; style to the USER-OMP package. The
hybrid style is the only style that accepts arguments. It allows for two
packages to be 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, the style for the second package will be used if available. For
example, &#8220;-suffix hybrid intel omp&#8221; will use styles from the USER-INTEL
package if they are installed and available, but styles for the USER-OMP
package otherwise.</p>
<p>Along with the &#8220;-package&#8221; command-line switch, this is a convenient <p>Along with the &#8220;-package&#8221; 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
having to edit an input script.</p> having to edit an input script.</p>
@ -1681,14 +1688,14 @@ the &#8220;-package gpu&#8221; command-line switch or the <a class="reference in
invokes the default USER-INTEL settings, as if the command &#8220;package invokes the default USER-INTEL settings, as if the command &#8220;package
intel 1&#8221; were used at the top of your input script. These settings intel 1&#8221; were used at the top of your input script. These settings
can be changed by using the &#8220;-package intel&#8221; command-line switch or can be changed by using the &#8220;-package intel&#8221; command-line switch or
the <a class="reference internal" href="package.html"><em>package intel</em></a> command in your script. If the the <a class="reference internal" href="package.html"><em>package intel</em></a> command in your script. If the
USER-OMP package is also installed, the intel suffix will make the omp USER-OMP package is also installed, the hybrid style with &#8220;intel omp&#8221;
suffix a second choice, if a requested style is not available in the arguments can be used to make the omp suffix a second choice, if a
USER-INTEL package. It will also invoke the default USER-OMP requested style is not available in the USER-INTEL package. It will
settings, as if the command &#8220;package omp 0&#8221; were used at the top of also invoke the default USER-OMP settings, as if the command &#8220;package
your input script. These settings can be changed by using the omp 0&#8221; were used at the top of your input script. These settings can
&#8220;-package omp&#8221; command-line switch or the <a class="reference internal" href="package.html"><em>package omp</em></a> be changed by using the &#8220;-package omp&#8221; command-line switch or the
command in your script.</p> <a class="reference internal" href="package.html"><em>package omp</em></a> command in your script.</p>
<p>For the KOKKOS package, using this command-line switch also invokes <p>For the KOKKOS package, using this command-line switch also invokes
the default KOKKOS settings, as if the command &#8220;package kokkos&#8221; were the default KOKKOS settings, as if the command &#8220;package kokkos&#8221; were
used at the top of your input script. These settings can be changed used at the top of your input script. These settings can be changed

View File

@ -1645,15 +1645,22 @@ multi-partition mode, if the specified file is "none", then no screen
output is performed. Option -pscreen will override the name of the output is performed. Option -pscreen will override the name of the
partition screen files file.N. partition screen files file.N.
-suffix style :pre -suffix style args :pre
Use variants of various styles if they exist. The specified style can Use variants of various styles if they exist. The specified style can
be {cuda}, {gpu}, {intel}, {kk}, {omp}, or {opt}. These refer to be {cuda}, {gpu}, {intel}, {kk}, {omp}, {opt}, or {hybrid}. These refer
optional packages that LAMMPS can be built with, as described above in to optional packages that LAMMPS can be built with, as described above in
"Section 2.3"_#start_3. The "cuda" style corresponds to the USER-CUDA "Section 2.3"_#start_3. The "cuda" style corresponds to the USER-CUDA
package, the "gpu" style to the GPU package, the "intel" style to the package, the "gpu" style to the GPU package, the "intel" style to the
USER-INTEL package, the "kk" style to the KOKKOS package, the "opt" USER-INTEL package, the "kk" style to the KOKKOS package, the "opt"
style to the OPT package, and the "omp" style to the USER-OMP package. style to the OPT package, and the "omp" style to the USER-OMP package. The
hybrid style is the only style that accepts arguments. It allows for two
packages to be 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, the style for the second package will be used if available. For
example, "-suffix hybrid intel omp" will use styles from the USER-INTEL
package if they are installed and available, but styles for the USER-OMP
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
@ -1680,14 +1687,14 @@ For the USER-INTEL package, using this command-line switch also
invokes the default USER-INTEL settings, as if the command "package 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 "package intel"_package.html command in your script. If the the "package intel"_package.html command in your script. If the
USER-OMP package is also installed, the intel suffix will make the omp USER-OMP package is also installed, the hybrid style with "intel omp"
suffix a second choice, if a requested style is not available in the arguments can be used to make the omp suffix a second choice, if a
USER-INTEL package. It will also invoke the default USER-OMP requested style is not available in the USER-INTEL package. It will
settings, as if the command "package omp 0" were used at the top of also invoke the default USER-OMP settings, as if the command "package
your input script. These settings can be changed by using the omp 0" were used at the top of your input script. These settings can
"-package omp" command-line switch or the "package omp"_package.html be changed by using the "-package omp" command-line switch or the
command in your script. "package omp"_package.html command in your script.
For the KOKKOS package, using this command-line switch also invokes For the KOKKOS package, using this command-line switch also invokes
the default KOKKOS settings, as if the command "package kokkos" were the default KOKKOS settings, as if the command "package kokkos" were

View File

@ -145,15 +145,15 @@ cores. Since less MPI tasks than CPU cores will typically be invoked
when running with coprocessors, this enables the extra CPU cores to be when running with coprocessors, this enables the extra CPU cores to be
used for useful computation.</p> used for useful computation.</p>
<p>If LAMMPS is built with both the USER-INTEL and USER-OMP packages <p>If LAMMPS is built with both the USER-INTEL and USER-OMP packages
intsalled, this mode of operation is made easier to use, because the installed, this mode of operation is made easier to use, with the
&#8220;-suffix intel&#8221; <a class="reference internal" href="Section_start.html#start-7"><span>command-line switch</span></a> or &#8220;-suffix hybrid intel omp&#8221; <a class="reference internal" href="Section_start.html#start-7"><span>command-line switch</span></a>
the <a class="reference internal" href="suffix.html"><em>suffix intel</em></a> command will both set a second-choice or the <a class="reference internal" href="suffix.html"><em>suffix hybrid intel omp</em></a> command will both set a
suffix to &#8220;omp&#8221; so that styles from the USER-OMP package will be used second-choice suffix to &#8220;omp&#8221; so that styles from the USER-OMP package will be
if available, after first testing if a style from the USER-INTEL used if available, after first testing if a style from the USER-INTEL
package is available.</p> package is available.</p>
<p>When using the USER-INTEL package, you must choose at build time <p>When using the USER-INTEL package, you must choose at build time whether the
whether you are building for CPU-only acceleration or for using the binary will support offload to Xeon Phi coprocessors. Binaries supporting
Xeon Phi in offload mode.</p> offload can still be run in CPU-only (host-only) mode.</p>
<p>Here is a quick overview of how to use the USER-INTEL package <p>Here is a quick overview of how to use the USER-INTEL package
for CPU-only acceleration:</p> for CPU-only acceleration:</p>
<ul class="simple"> <ul class="simple">
@ -259,15 +259,14 @@ the physical number of cores (on a node), otherwise performance will
suffer.</p> suffer.</p>
<p>If LAMMPS was built with coprocessor support for the USER-INTEL <p>If LAMMPS was built with coprocessor support for the USER-INTEL
package, you also need to specify the number of coprocessor/node and package, you also need to specify the number of coprocessor/node and
the number of coprocessor threads per MPI task to use. Note that optionally the number of coprocessor threads per MPI task to use. Note that
coprocessor threads (which run on the coprocessor) are totally coprocessor threads (which run on the coprocessor) are totally
independent from OpenMP threads (which run on the CPU). The default independent from OpenMP threads (which run on the CPU). The default
values for the settings that affect coprocessor threads are typically values for the settings that affect coprocessor threads are typically
fine, as discussed below.</p> fine, as discussed below.</p>
<p>Use the &#8220;-sf intel&#8221; <a class="reference internal" href="Section_start.html#start-7"><span>command-line switch</span></a>, <p>Use the &#8220;-sf intel&#8221; <a class="reference internal" href="Section_start.html#start-7"><span>command-line switch</span></a>,
which will automatically append &#8220;intel&#8221; to styles that support it. If which will automatically append &#8220;intel&#8221; to styles that support it.
a style does not support it, an &#8220;omp&#8221; suffix is tried next. OpenMP OpenMP threads per MPI task can be set via the &#8220;-pk intel Nphi omp Nt&#8221; or
threads per MPI task can be set via the &#8220;-pk intel Nphi omp Nt&#8221; or
&#8220;-pk omp Nt&#8221; <a class="reference internal" href="Section_start.html#start-7"><span>command-line switches</span></a>, which &#8220;-pk omp Nt&#8221; <a class="reference internal" href="Section_start.html#start-7"><span>command-line switches</span></a>, which
set Nt = # of OpenMP threads per MPI task to use. The &#8220;-pk omp&#8221; form set Nt = # of OpenMP threads per MPI task to use. The &#8220;-pk omp&#8221; form
is only allowed if LAMMPS was also built with the USER-OMP package.</p> is only allowed if LAMMPS was also built with the USER-OMP package.</p>
@ -278,38 +277,36 @@ MPI tasks, unless the <em>tptask</em> option of the &#8220;-pk intel&#8221; <a c
threads per MPI task. See the <a class="reference internal" href="package.html"><em>package intel</em></a> command threads per MPI task. See the <a class="reference internal" href="package.html"><em>package intel</em></a> command
for details.</p> for details.</p>
<div class="highlight-python"><div class="highlight"><pre>CPU-only without USER-OMP (but using Intel vectorization on CPU): <div class="highlight-python"><div class="highlight"><pre>CPU-only without USER-OMP (but using Intel vectorization on CPU):
lmp_machine -sf intel -in in.script # 1 MPI task mpirun -np 32 lmp_machine -sf intel -in in.script # 32 MPI tasks on as many nodes as needed (e.g. 2 16-core nodes)
mpirun -np 32 lmp_machine -sf intel -in in.script # 32 MPI tasks on as many nodes as needed (e.g. 2 16-core nodes) lmp_machine -sf intel -pk intel 0 omp 16 -in in.script # 1 MPI task and 16 threads
</pre></div> </pre></div>
</div> </div>
<div class="highlight-python"><div class="highlight"><pre>CPU-only with USER-OMP (and Intel vectorization on CPU): <div class="highlight-python"><div class="highlight"><pre>CPU-only with USER-OMP (and Intel vectorization on CPU):
lmp_machine -sf intel -pk intel 16 0 -in in.script # 1 MPI task on a 16-core node lmp_machine -sf hybrid intel omp -pk intel 0 omp 16 -in in.script # 1 MPI task on a 16-core node with 16 threads
mpirun -np 4 lmp_machine -sf intel -pk omp 4 -in in.script # 4 MPI tasks each with 4 threads on a single 16-core node mpirun -np 4 lmp_machine -sf hybrid intel omp -pk omp 4 -in in.script # 4 MPI tasks each with 4 threads on a single 16-core node
mpirun -np 32 lmp_machine -sf intel -pk omp 4 -in in.script # ditto on 8 16-core nodes
</pre></div> </pre></div>
</div> </div>
<div class="highlight-python"><div class="highlight"><pre>CPUs + Xeon Phi(TM) coprocessors with or without USER-OMP: <div class="highlight-python"><div class="highlight"><pre>CPUs + Xeon Phi(TM) coprocessors with or without USER-OMP:
lmp_machine -sf intel -pk intel 1 omp 16 -in in.script # 1 MPI task, 16 OpenMP threads on CPU, 1 coprocessor, all 240 coprocessor threads mpirun -np 32 -ppn 16 lmp_machine -sf intel -pk intel 1 -in in.script # 2 nodes with 16 MPI tasks on each, 240 total threads on coprocessor
lmp_machine -sf intel -pk intel 1 omp 16 tptask 32 -in in.script # 1 MPI task, 16 OpenMP threads on CPU, 1 coprocessor, only 32 coprocessor threads mpirun -np 16 -ppn 8 lmp_machine -sf intel -pk intel 1 omp 2 -in in.script # 2 nodes, 8 MPI tasks on each node, 2 threads for each task, 240 total threads on coprocessor
mpirun -np 4 lmp_machine -sf intel -pk intel 1 omp 4 -in in.script # 4 MPI tasks, 4 OpenMP threads/task, 1 coprocessor, 60 coprocessor threads/task mpirun -np 16 -ppn 8 lmp_machine -sf hybrid intel omp -pk intel 1 omp 2 -in in.script # 2 nodes, 8 MPI tasks on each node, 2 threads for each task, 240 total threads on coprocessor, USER-OMP package for some styles
mpirun -np 32 -ppn 4 lmp_machine -sf intel -pk intel 1 omp 4 -in in.script # ditto on 8 16-core nodes
mpirun -np 8 lmp_machine -sf intel -pk intel 4 omp 2 -in in.script # 8 MPI tasks, 2 OpenMP threads/task, 4 coprocessors, 120 coprocessor threads/task
</pre></div> </pre></div>
</div> </div>
<p>Note that if the &#8220;-sf intel&#8221; switch is used, it also invokes two <p>Note that if the &#8220;-sf intel&#8221; switch is used, it also invokes a
default commands: <a class="reference internal" href="package.html"><em>package intel 1</em></a>, followed by <a class="reference internal" href="package.html"><em>package omp 0</em></a>. These both set the number of OpenMP threads per default command: <a class="reference internal" href="package.html"><em>package intel 1</em></a>. If the &#8220;-sf hybrid intel omp&#8221;
MPI task via the OMP_NUM_THREADS environment variable. The first switch is used, the default USER-OMP command <a class="reference internal" href="package.html"><em>package omp 0</em></a> is
command sets the number of Xeon Phi(TM) coprocessors/node to 1 (and also invoked. Both set the number of OpenMP threads per MPI task via the
the precision mode to &#8220;mixed&#8221;, as one of its option defaults). The OMP_NUM_THREADS environment variable. The first command sets the number of
latter command is not invoked if LAMMPS was not built with the Xeon Phi(TM) coprocessors/node to 1 (and the precision mode to &#8220;mixed&#8221;, as one
USER-OMP package. The Nphi = 1 value for the first command is ignored of its option defaults). The latter command is not invoked if LAMMPS was not
if LAMMPS was not built with coprocessor support.</p> built with the USER-OMP package. The Nphi = 1 value for the first command is
ignored if LAMMPS was not built with coprocessor support.</p>
<p>Using the &#8220;-pk intel&#8221; or &#8220;-pk omp&#8221; switches explicitly allows for <p>Using the &#8220;-pk intel&#8221; or &#8220;-pk omp&#8221; switches explicitly allows for
direct setting of the number of OpenMP threads per MPI task, and direct setting of the number of OpenMP threads per MPI task, and
additional options for either of the USER-INTEL or USER-OMP packages. additional options for either of the USER-INTEL or USER-OMP packages.
In particular, the &#8220;-pk intel&#8221; switch sets the number of In particular, the &#8220;-pk intel&#8221; switch sets the number of
coprocessors/node and can limit the number of coprocessor threads per coprocessors/node and can limit the number of coprocessor threads per
MPI task. The syntax for these two switches is the same as the MPI task. The syntax for these two switches is the same as the
<a class="reference internal" href="package.html"><em>package omp</em></a> and <a class="reference internal" href="package.html"><em>package intel</em></a> commands. <a class="reference internal" href="package.html"><em>package omp</em></a> and <a class="reference internal" href="package.html"><em>package intel</em></a> commands.
See the <a class="reference internal" href="package.html"><em>package</em></a> command doc page for details, including See the <a class="reference internal" href="package.html"><em>package</em></a> command doc page for details, including
the default values used for all its options if these switches are not the default values used for all its options if these switches are not
@ -331,7 +328,7 @@ coprocessor options. Its doc page explains how to set the number of
OpenMP threads via an environment variable if desired.</p> OpenMP threads via an environment variable if desired.</p>
<p>If LAMMPS was also built with the USER-OMP package, you must also use <p>If LAMMPS was also built with the USER-OMP package, you must also use
the <a class="reference internal" href="package.html"><em>package omp</em></a> command to enable that package, unless the <a class="reference internal" href="package.html"><em>package omp</em></a> command to enable that package, unless
the &#8220;-sf intel&#8221; or &#8220;-pk omp&#8221; <a class="reference internal" href="Section_start.html#start-7"><span>command-line switches</span></a> were used. It specifies how many the &#8220;-sf hybrid intel omp&#8221; or &#8220;-pk omp&#8221; <a class="reference internal" href="Section_start.html#start-7"><span>command-line switches</span></a> were used. It specifies how many
OpenMP threads per MPI task to use, as well as other options. Its doc OpenMP threads per MPI task to use, as well as other options. Its doc
page explains how to set the number of OpenMP threads via an page explains how to set the number of OpenMP threads via an
environment variable if desired.</p> environment variable if desired.</p>

View File

@ -31,16 +31,16 @@ when running with coprocessors, this enables the extra CPU cores to be
used for useful computation. used for useful computation.
If LAMMPS is built with both the USER-INTEL and USER-OMP packages If LAMMPS is built with both the USER-INTEL and USER-OMP packages
intsalled, this mode of operation is made easier to use, because the installed, this mode of operation is made easier to use, with the
"-suffix intel" "command-line switch"_Section_start.html#start_7 or "-suffix hybrid intel omp" "command-line switch"_Section_start.html#start_7
the "suffix intel"_suffix.html command will both set a second-choice or the "suffix hybrid intel omp"_suffix.html command will both set a
suffix to "omp" so that styles from the USER-OMP package will be used second-choice suffix to "omp" so that styles from the USER-OMP package will be
if available, after first testing if a style from the USER-INTEL used if available, after first testing if a style from the USER-INTEL
package is available. package is available.
When using the USER-INTEL package, you must choose at build time When using the USER-INTEL package, you must choose at build time whether the
whether you are building for CPU-only acceleration or for using the binary will support offload to Xeon Phi coprocessors. Binaries supporting
Xeon Phi in offload mode. offload can still be run in CPU-only (host-only) mode.
Here is a quick overview of how to use the USER-INTEL package Here is a quick overview of how to use the USER-INTEL package
for CPU-only acceleration: for CPU-only acceleration:
@ -167,16 +167,15 @@ suffer.
If LAMMPS was built with coprocessor support for the USER-INTEL If LAMMPS was built with coprocessor support for the USER-INTEL
package, you also need to specify the number of coprocessor/node and package, you also need to specify the number of coprocessor/node and
the number of coprocessor threads per MPI task to use. Note that optionally the number of coprocessor threads per MPI task to use. Note that
coprocessor threads (which run on the coprocessor) are totally coprocessor threads (which run on the coprocessor) are totally
independent from OpenMP threads (which run on the CPU). The default independent from OpenMP threads (which run on the CPU). The default
values for the settings that affect coprocessor threads are typically values for the settings that affect coprocessor threads are typically
fine, as discussed below. fine, as discussed below.
Use the "-sf intel" "command-line switch"_Section_start.html#start_7, Use the "-sf intel" "command-line switch"_Section_start.html#start_7,
which will automatically append "intel" to styles that support it. If which will automatically append "intel" to styles that support it.
a style does not support it, an "omp" suffix is tried next. OpenMP OpenMP threads per MPI task can be set via the "-pk intel Nphi omp Nt" or
threads per MPI task can be set via the "-pk intel Nphi omp Nt" or
"-pk omp Nt" "command-line switches"_Section_start.html#start_7, which "-pk omp Nt" "command-line switches"_Section_start.html#start_7, which
set Nt = # of OpenMP threads per MPI task to use. The "-pk omp" form set Nt = # of OpenMP threads per MPI task to use. The "-pk omp" form
is only allowed if LAMMPS was also built with the USER-OMP package. is only allowed if LAMMPS was also built with the USER-OMP package.
@ -191,37 +190,34 @@ threads per MPI task. See the "package intel"_package.html command
for details. for details.
CPU-only without USER-OMP (but using Intel vectorization on CPU): CPU-only without USER-OMP (but using Intel vectorization on CPU):
lmp_machine -sf intel -in in.script # 1 MPI task mpirun -np 32 lmp_machine -sf intel -in in.script # 32 MPI tasks on as many nodes as needed (e.g. 2 16-core nodes)
mpirun -np 32 lmp_machine -sf intel -in in.script # 32 MPI tasks on as many nodes as needed (e.g. 2 16-core nodes) :pre lmp_machine -sf intel -pk intel 0 omp 16 -in in.script # 1 MPI task and 16 threads :pre
CPU-only with USER-OMP (and Intel vectorization on CPU): CPU-only with USER-OMP (and Intel vectorization on CPU):
lmp_machine -sf intel -pk intel 16 0 -in in.script # 1 MPI task on a 16-core node lmp_machine -sf hybrid intel omp -pk intel 0 omp 16 -in in.script # 1 MPI task on a 16-core node with 16 threads
mpirun -np 4 lmp_machine -sf intel -pk omp 4 -in in.script # 4 MPI tasks each with 4 threads on a single 16-core node mpirun -np 4 lmp_machine -sf hybrid intel omp -pk omp 4 -in in.script # 4 MPI tasks each with 4 threads on a single 16-core node :pre
mpirun -np 32 lmp_machine -sf intel -pk omp 4 -in in.script # ditto on 8 16-core nodes :pre
CPUs + Xeon Phi(TM) coprocessors with or without USER-OMP: CPUs + Xeon Phi(TM) coprocessors with or without USER-OMP:
lmp_machine -sf intel -pk intel 1 omp 16 -in in.script # 1 MPI task, 16 OpenMP threads on CPU, 1 coprocessor, all 240 coprocessor threads mpirun -np 32 -ppn 16 lmp_machine -sf intel -pk intel 1 -in in.script # 2 nodes with 16 MPI tasks on each, 240 total threads on coprocessor
lmp_machine -sf intel -pk intel 1 omp 16 tptask 32 -in in.script # 1 MPI task, 16 OpenMP threads on CPU, 1 coprocessor, only 32 coprocessor threads mpirun -np 16 -ppn 8 lmp_machine -sf intel -pk intel 1 omp 2 -in in.script # 2 nodes, 8 MPI tasks on each node, 2 threads for each task, 240 total threads on coprocessor
mpirun -np 4 lmp_machine -sf intel -pk intel 1 omp 4 -in in.script # 4 MPI tasks, 4 OpenMP threads/task, 1 coprocessor, 60 coprocessor threads/task mpirun -np 16 -ppn 8 lmp_machine -sf hybrid intel omp -pk intel 1 omp 2 -in in.script # 2 nodes, 8 MPI tasks on each node, 2 threads for each task, 240 total threads on coprocessor, USER-OMP package for some styles :pre
mpirun -np 32 -ppn 4 lmp_machine -sf intel -pk intel 1 omp 4 -in in.script # ditto on 8 16-core nodes
mpirun -np 8 lmp_machine -sf intel -pk intel 4 omp 2 -in in.script # 8 MPI tasks, 2 OpenMP threads/task, 4 coprocessors, 120 coprocessor threads/task :pre
Note that if the "-sf intel" switch is used, it also invokes two Note that if the "-sf intel" switch is used, it also invokes a
default commands: "package intel 1"_package.html, followed by "package default command: "package intel 1"_package.html. If the "-sf hybrid intel omp"
omp 0"_package.html. These both set the number of OpenMP threads per switch is used, the default USER-OMP command "package omp 0"_package.html is
MPI task via the OMP_NUM_THREADS environment variable. The first also invoked. Both set the number of OpenMP threads per MPI task via the
command sets the number of Xeon Phi(TM) coprocessors/node to 1 (and OMP_NUM_THREADS environment variable. The first command sets the number of
the precision mode to "mixed", as one of its option defaults). The Xeon Phi(TM) coprocessors/node to 1 (and the precision mode to "mixed", as one
latter command is not invoked if LAMMPS was not built with the of its option defaults). The latter command is not invoked if LAMMPS was not
USER-OMP package. The Nphi = 1 value for the first command is ignored built with the USER-OMP package. The Nphi = 1 value for the first command is
if LAMMPS was not built with coprocessor support. ignored if LAMMPS was not built with coprocessor support.
Using the "-pk intel" or "-pk omp" switches explicitly allows for Using the "-pk intel" or "-pk omp" switches explicitly allows for
direct setting of the number of OpenMP threads per MPI task, and direct setting of the number of OpenMP threads per MPI task, and
additional options for either of the USER-INTEL or USER-OMP packages. additional options for either of the USER-INTEL or USER-OMP packages.
In particular, the "-pk intel" switch sets the number of In particular, the "-pk intel" switch sets the number of
coprocessors/node and can limit the number of coprocessor threads per coprocessors/node and can limit the number of coprocessor threads per
MPI task. The syntax for these two switches is the same as the MPI task. The syntax for these two switches is the same as the
"package omp"_package.html and "package intel"_package.html commands. "package omp"_package.html and "package intel"_package.html commands.
See the "package"_package.html command doc page for details, including See the "package"_package.html command doc page for details, including
the default values used for all its options if these switches are not the default values used for all its options if these switches are not
@ -248,7 +244,7 @@ OpenMP threads via an environment variable if desired.
If LAMMPS was also built with the USER-OMP package, you must also use If LAMMPS was also built with the USER-OMP package, you must also use
the "package omp"_package.html command to enable that package, unless the "package omp"_package.html command to enable that package, unless
the "-sf intel" or "-pk omp" "command-line the "-sf hybrid intel omp" or "-pk omp" "command-line
switches"_Section_start.html#start_7 were used. It specifies how many switches"_Section_start.html#start_7 were used. It specifies how many
OpenMP threads per MPI task to use, as well as other options. Its doc OpenMP threads per MPI task to use, as well as other options. Its doc
page explains how to set the number of OpenMP threads via an page explains how to set the number of OpenMP threads via an

View File

@ -467,7 +467,7 @@ USER-OMP packages, be aware that both packages allow setting of the
single global <em>Nthreads</em> value used by OpenMP. Thus if both package single global <em>Nthreads</em> value used by OpenMP. Thus if both package
commands are invoked, you should insure the two values are consistent. commands are invoked, you should insure the two values are consistent.
If they are not, the last one invoked will take precedence, for both If they are not, the last one invoked will take precedence, for both
packages. Also note that if the &#8220;-sf intel&#8221; <a class="reference internal" href="Section_start.html#start-7"><span>command-line switch</span></a> is used, it invokes a &#8220;package packages. Also note that if the &#8220;-sf hybrid intel omp&#8221; <a class="reference internal" href="Section_start.html#start-7"><span>command-line switch</span></a> is used, it invokes a &#8220;package
intel&#8221; command, followed by a &#8220;package omp&#8221; command, both with a intel&#8221; command, followed by a &#8220;package omp&#8221; command, both with a
setting of <em>Nthreads</em> = 0.</p> setting of <em>Nthreads</em> = 0.</p>
</div> </div>

View File

@ -376,7 +376,7 @@ USER-OMP packages, be aware that both packages allow setting of the
single global {Nthreads} value used by OpenMP. Thus if both package single global {Nthreads} value used by OpenMP. Thus if both package
commands are invoked, you should insure the two values are consistent. commands are invoked, you should insure the two values are consistent.
If they are not, the last one invoked will take precedence, for both If they are not, the last one invoked will take precedence, for both
packages. Also note that if the "-sf intel" "command-line packages. Also note that if the "-sf hybrid intel omp" "command-line
switch"_"_Section_start.html#start_7 is used, it invokes a "package switch"_"_Section_start.html#start_7 is used, it invokes a "package
intel" command, followed by a "package omp" command, both with a intel" command, followed by a "package omp" command, both with a
setting of {Nthreads} = 0. setting of {Nthreads} = 0.

File diff suppressed because one or more lines are too long

View File

@ -128,11 +128,12 @@
<span id="index-0"></span><h1>suffix command<a class="headerlink" href="#suffix-command" title="Permalink to this headline"></a></h1> <span id="index-0"></span><h1>suffix command<a class="headerlink" href="#suffix-command" title="Permalink to this headline"></a></h1>
<div class="section" id="syntax"> <div class="section" id="syntax">
<h2>Syntax<a class="headerlink" href="#syntax" title="Permalink to this headline"></a></h2> <h2>Syntax<a class="headerlink" href="#syntax" title="Permalink to this headline"></a></h2>
<div class="highlight-python"><div class="highlight"><pre>suffix style <div class="highlight-python"><div class="highlight"><pre>suffix style args
</pre></div> </pre></div>
</div> </div>
<ul class="simple"> <ul class="simple">
<li>style = <em>off</em> or <em>on</em> or <em>cuda</em> or <em>gpu</em> or <em>intel</em> or <em>kk</em> or <em>omp</em> or <em>opt</em></li> <li>style = <em>off</em> or <em>on</em> or <em>cuda</em> or <em>gpu</em> or <em>intel</em> or <em>kk</em> or <em>omp</em> or <em>opt</em> or <em>hybrid</em></li>
<li>args = for hybrid style, default suffix to be used and alternative suffix</li>
</ul> </ul>
</div> </div>
<div class="section" id="examples"> <div class="section" id="examples">
@ -141,6 +142,7 @@
suffix on suffix on
suffix gpu suffix gpu
suffix intel suffix intel
suffix hybrid intel omp
suffix kk suffix kk
</pre></div> </pre></div>
</div> </div>
@ -150,13 +152,13 @@ suffix kk
<p>This command allows you to use variants of various styles if they <p>This command allows you to use variants of various styles if they
exist. In that respect it operates the same as the <a class="reference internal" href="Section_start.html#start-7"><span>-suffix command-line switch</span></a>. It also has options exist. In that respect it operates the same as the <a class="reference internal" href="Section_start.html#start-7"><span>-suffix command-line switch</span></a>. It also has options
to turn off or back on any suffix setting made via the command line.</p> to turn off or back on any suffix setting made via the command line.</p>
<p>The specified style can be <em>cuda</em>, <em>gpu</em>, <em>intel</em>, <em>kk</em>, <em>omp</em>, or <p>The specified style can be <em>cuda</em>, <em>gpu</em>, <em>intel</em>, <em>kk</em>, <em>omp</em>, <em>opt</em>
<em>opt</em>. These refer to optional packages that LAMMPS can be built or <em>hybrid</em>. These refer to optional packages that LAMMPS can be built
with, as described in <a class="reference internal" href="Section_start.html#start-3"><span>this section of the manual</span></a>. The &#8220;cuda&#8221; style corresponds to with, as described in <a class="reference internal" href="Section_start.html#start-3"><span>this section of the manual</span></a>. The &#8220;cuda&#8221; style corresponds to
the USER-CUDA package, the &#8220;gpu&#8221; style to the GPU package, the &#8220;intel&#8221; the USER-CUDA package, the &#8220;gpu&#8221; style to the GPU package, the &#8220;intel&#8221;
style to the USER-INTEL package, the &#8220;kk&#8221; style to the KOKKOS package, style to the USER-INTEL package, the &#8220;kk&#8221; style to the KOKKOS package,
the &#8220;omp&#8221; style to the USER-OMP package, and the &#8220;opt&#8221; style to the the &#8220;omp&#8221; style to the USER-OMP package, and the &#8220;opt&#8221; style to the
OPT package,</p> OPT package.</p>
<p>These are the variants these packages provide:</p> <p>These are the variants these packages provide:</p>
<ul class="simple"> <ul class="simple">
<li>USER-CUDA = a collection of atom, pair, fix, compute, and intergrate <li>USER-CUDA = a collection of atom, pair, fix, compute, and intergrate
@ -174,6 +176,7 @@ kspace, compute, and fix styles with support for OpenMP
multi-threading</li> multi-threading</li>
<li>OPT = a handful of pair styles, cache-optimized for faster CPU <li>OPT = a handful of pair styles, cache-optimized for faster CPU
performance</li> performance</li>
<li>HYBRID = a combination of two packages can be specified (see below)</li>
</ul> </ul>
<p>As an example, all of the packages provide a <a class="reference internal" href="pair_lj.html"><em>pair_style lj/cut</em></a> variant, with style names lj/cut/opt, lj/cut/omp, <p>As an example, all of the packages provide a <a class="reference internal" href="pair_lj.html"><em>pair_style lj/cut</em></a> variant, with style names lj/cut/opt, lj/cut/omp,
lj/cut/gpu, lj/cut/intel, lj/cut/cuda, or lj/cut/kk. A variant styles lj/cut/gpu, lj/cut/intel, lj/cut/cuda, or lj/cut/kk. A variant styles
@ -188,10 +191,12 @@ input script command creates a new <a class="reference internal" href="atom_styl
<a class="reference internal" href="fix.html"><em>fix</em></a>, <a class="reference internal" href="compute.html"><em>compute</em></a>, or <a class="reference internal" href="run_style.html"><em>run</em></a> style. <a class="reference internal" href="fix.html"><em>fix</em></a>, <a class="reference internal" href="compute.html"><em>compute</em></a>, or <a class="reference internal" href="run_style.html"><em>run</em></a> style.
If the variant version does not exist, the standard version is If the variant version does not exist, the standard version is
created.</p> created.</p>
<p>When using the intel suffix, LAMMPS will first attempt to use a style <p>For &#8220;hybrid&#8221;, two packages are specified. The first is used whenever
with the intel suffix. If the USER-OMP package is installed, the the available. If a style with the first suffix is not available, the style
omp suffix will be tried as a second choice, if a requested style is with the suffix for the second package will be used if available. For
not available in the USER-INTEL package.</p> example, &#8220;hybrid intel omp&#8221; will use styles from the USER-INTEL package
as a first choice and styles from the USER-OMP package as a second choice
if no USER-INTEL variant is available.</p>
<p>If the specified style is <em>off</em>, then any previously specified suffix <p>If the specified style is <em>off</em>, then any previously specified suffix
is temporarily disabled, whether it was specified by a command-line is temporarily disabled, whether it was specified by a command-line
switch or a previous suffix command. If the specified style is <em>on</em>, switch or a previous suffix command. If the specified style is <em>on</em>,

View File

@ -10,9 +10,10 @@ suffix command :h3
[Syntax:] [Syntax:]
suffix style :pre suffix style args :pre
style = {off} or {on} or {cuda} or {gpu} or {intel} or {kk} or {omp} or {opt} :ul style = {off} or {on} or {cuda} or {gpu} or {intel} or {kk} or {omp} or {opt} or {hybrid}
args = for hybrid style, default suffix to be used and alternative suffix :ul
[Examples:] [Examples:]
@ -20,6 +21,7 @@ suffix off
suffix on suffix on
suffix gpu suffix gpu
suffix intel suffix intel
suffix hybrid intel omp
suffix kk :pre suffix kk :pre
[Description:] [Description:]
@ -29,14 +31,14 @@ exist. In that respect it operates the same as the "-suffix
command-line switch"_Section_start.html#start_7. It also has options command-line switch"_Section_start.html#start_7. It also has options
to turn off or back on any suffix setting made via the command line. to turn off or back on any suffix setting made via the command line.
The specified style can be {cuda}, {gpu}, {intel}, {kk}, {omp}, or The specified style can be {cuda}, {gpu}, {intel}, {kk}, {omp}, {opt}
{opt}. These refer to optional packages that LAMMPS can be built or {hybrid}. These refer to optional packages that LAMMPS can be built
with, as described in "this section of the with, as described in "this section of the
manual"_Section_start.html#start_3. The "cuda" style corresponds to manual"_Section_start.html#start_3. The "cuda" style corresponds to
the USER-CUDA package, the "gpu" style to the GPU package, the "intel" the USER-CUDA package, the "gpu" style to the GPU package, the "intel"
style to the USER-INTEL package, the "kk" style to the KOKKOS package, style to 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 the "omp" style to the USER-OMP package, and the "opt" style to the
OPT package, OPT package.
These are the variants these packages provide: These are the variants these packages provide:
@ -59,7 +61,9 @@ kspace, compute, and fix styles with support for OpenMP
multi-threading :l multi-threading :l
OPT = a handful of pair styles, cache-optimized for faster CPU OPT = a handful of pair styles, cache-optimized for faster CPU
performance :ule,l performance :l
HYBRID = a combination of two packages can be specified (see below) :ule,l
As an example, all of the packages provide a "pair_style As an example, all of the packages provide a "pair_style
lj/cut"_pair_lj.html variant, with style names lj/cut/opt, lj/cut/omp, lj/cut"_pair_lj.html variant, with style names lj/cut/opt, lj/cut/omp,
@ -76,10 +80,12 @@ input script command creates a new "atom"_atom_style.html,
If the variant version does not exist, the standard version is If the variant version does not exist, the standard version is
created. created.
When using the intel suffix, LAMMPS will first attempt to use a style For "hybrid", two packages are specified. The first is used whenever
with the intel suffix. If the USER-OMP package is installed, the the available. If a style with the first suffix is not available, the style
omp suffix will be tried as a second choice, if a requested style is with the suffix for the second package will be used if available. For
not available in 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
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
is temporarily disabled, whether it was specified by a command-line is temporarily disabled, whether it was specified by a command-line