MPICH2 FORTRAN-90 Example
Compiling FORTRAN-90 Example Using the MPICH2 modules
All the sample code can be found on the cluster at /share/apps/samples/mpich2-f90 you can copy them to your home folder using:
$ cp -r /share/apps/samples/mpich2-f90 ./
First you need to create your source code. See example mpi_hello.f below:
! Filename: mpi_hello.f90
! Description: A parallel hello world program
PROGRAM HelloWorld
include 'mpif.h'
call mpi_init(ierr)
call mpi_comm_size(MPI_COMM_WORLD,npes, ierr)
call mpi_comm_rank(MPI_COMM_WORLD,irank,ierr)
print*,'Hello World! I am ',irank,' of ',npes
call mpi_finalize(ierr)
END PROGRAM
Then you must load the correct openmpi module
$ module load mpich2-intel
(Loads the openmpi/intel-12 module)
or
$ module load mpich2/intel-11
or
$ module load mpich2/intel-12
or
$ module load mpich2-gnu
or
$ module load mpich2/gcc45
or
$ module load mpich2/gcc46
or
$ module load mpich2/gcc47
Then compile the code
$ mpif90 -o mpich2-hello mpi_hello.f
You should not see any error output, and should have an executable file called lam-hello in current your directory.
CAUTION: If you do not load the module your code will not compile correctly!
Write the jobfile (jobfile.job)
#PBS -N mpich2-hello
#PBS -q @nic-cluster.mst.edu
#PBS -l nodes=2
#PBS -l walltime=01:00:00
#PBS -m abe
#PBS -M joeminer@mst.edu
#PBS -V
cd $PBS_O_WORKDIR
mpiexec -np 2 ./mpich2-hello
Submit the Job
If you have logged out since you last loaded the module you will need to load the module again.
$ qsub jobfile.job
Output
mpich2-hello.o####
Hello world, I am 0 of 2
Hello world, I am 1 of 2
Errors
If the output is not what you expected check the mpich2-hello.e#### file.