next up previous contents
Next: 3.3 Parallelization levels in Up: 3 Parallelism Previous: 3.1 Understanding Parallelism in Contents

3.2 Running on parallel machines

Parallel execution is strongly system- and installation-dependent. Typically one has to specify:

  1. a launcher program, such as poe, mpirun, mpiexec, with or without appropriate options
  2. the number of processors, typically as an option to the launcher program, but in some cases to be specified after 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 section ''Run examples''), 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, you can use PARA_PREFIX="env OMP_NUM_THREADS=n"


next up previous contents
Next: 3.3 Parallelization levels in Up: 3 Parallelism Previous: 3.1 Understanding Parallelism in Contents
Paolo Giannozzi 2009-10-01