next up previous contents
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:

  1. a launcher program (not always needed), such as poe, mpirun, mpiexec, with the appropriate options (if any);
  2. 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;
  3. 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;
  4. other QUANTUM ESPRESSO-specific parallelization options, to be read and interpreted by the running code:
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 up previous contents
Next: 3.3 Parallelization levels Up: 3 Parallelism Previous: 3.1 Understanding Parallelism   Contents
Build Daemon user 2012-05-24