.. index:: MPICH .. _MPICH: MPICH ===== Description ----------- MPICH is a high-performance and widely portable implementation of the Message Passing Interface (MPI) standard (MPI-1, MPI-2 and MPI-3). User instructions ----------------- MPICH has been compiled for both the GNU and Intel 64-bit compiler families. To use it, load the appropriate module: .. code-block:: bash $ module load mpich/3.2 Compiling MPI programs is best done using the MPI programs which act as wrappers around the desired compiler: mpif90 Fortran wrapper. mpicc C wrapper mpic++, mpiCC, mpicxx C++ wrapper MPI-compiled programs should be run using the mpirun command, e.g. to run an MPI program on 2 processors: .. code-block:: bash $ mpirun -np 2 /path/to/program.x .. note:: The majority of cluster workstations are good, but not suitable for highly-parallel calculations. Please investigate the College's `HPC service `_ for running large-scale MPI calculations. Open MPI is provided on the cluster for development purposes. Source ------ http://www.mpich.org. License ------- New BSD license (free, both in terms of speech and beer). Admin notes ----------- I compiled the GNU version using: .. code-block:: bash ../mpich-3.2/configure --prefix=/common/debian/9.1/Compiler/gcc/6.3/mpich/mpich-3.2 make make install and the Intel version using: .. code-block:: bash mp purge; ml intel ../mpich-3.2/configure --prefix=/common/debian/9.1/Compiler/intel/2017.4/mpich/mpich-3.2 CC=icc CXX=icpc FC=ifort F77=ifort make -j4 make install