Next: 3.3 Parallelization levels
Up: 3 Parallelism
Previous: 3.1 Understanding Parallelism
Contents
3.2 Running on parallel machines
Parallel execution is strongly system- and installation-dependent.
Typically one has to specify:
- a launcher program (not always needed),
such as poe, mpirun, mpiexec,
with the appropriate options (if any);
- the number of processors, typically as an option to the launcher
program, but in some cases to be specified after the name of the
program to be
executed;
- the program to be executed, with the proper path if needed: for
instance, pw.x, or ./pw.x, or $HOME/bin/pw.x, or
whatever applies;
- other QUANTUM ESPRESSO-specific parallelization options, to be
read and interpreted by the running code:
- the number of ``images'' used by NEB or phonon calculations;
- the number of ``pools'' into which processors are to be grouped
(pw.x only);
- the number of ``task groups'' into which processors are to be
grouped;
- the number of processors performing iterative diagonalization
(for pw.x) or orthonormalization (for cp.x).
Items 1) and 2) are machine- and installation-dependent, and may be
different for interactive and batch execution. Note that large
parallel machines are often configured so as to disallow interactive
execution: if in doubt, ask your system administrator.
Item 3) also depend on your specific configuration (shell, execution
path, etc).
Item 4) is optional but may be important: see the following section
for the meaning of the various options.
For illustration, here is how to run pw.x on 16 processors partitioned into
8 pools (2 processors each), for several typical cases.
IBM SP machines, batch:
pw.x -npool 8 < input
This should also work interactively, with environment variables NPROC
set to 16, MP_HOSTFILE set to the file containing a list of processors.
IBM SP machines, interactive, using poe:
poe pw.x -procs 16 -npool 8 < input
PC clusters using mpiexec:
mpiexec -n 16 pw.x -npool 8 < input
SGI Altix and PC clusters using mpirun:
mpirun -np 16 pw.x -npool 8 < input
IBM BlueGene using mpirun:
mpirun -np 16 -exe /path/to/executable/pw.x -args "-npool 8" \
-in /path/to/input -cwd /path/to/work/directory
If you want to run in parallel the examples distributed with QUANTUM ESPRESSO (see Sec.2.6), set PARA_PREFIX to everything
before the executable (pw.x in the above examples),
PARA_POSTFIX to what follows it until the first redirection sign
(
< , > ,|,..), if any. For execution using OpenMP on N threads,
set PARA_PREFIX to env OMP_NUM_THREADS=N.
Next: 3.3 Parallelization levels
Up: 3 Parallelism
Previous: 3.1 Understanding Parallelism
Contents
Build Daemon user
2011-10-18