User Tools

Site Tools


howto:coarrayfortran

This is an old revision of the document!


Using Co-array Fortran

Co-array Fortran allows the programmer to develop multi-node parallel Fortran programs without having to use MPI explicitly. Parallelisation is entirely contained within the Fortran language, using a PGAS (partitioned global address space) approach. In practice, Co-array Fortran is conveniently implemented by using OpenCoarrays, which is an interface built on top of MPI.

OpenCoarrays-1.8.4 has been installed in /apps/chpc/compmech/OpenCoarrays-1.8.4 and is compiled using mpich-3.2 and gcc-6.2.0. A modules has been created so simply adding:

module add chpc/compmech/OpenCoarrays/1.8.4

to your scripts will set up the appropriate paths to OpenCoarrays.

Co-array programs are compiled using the caf wrapper, much like mpif90 is used to compile MPI programs. The compiled binary is then executed using the cafrun wrapper, similar to mpirun. cafrun in this case takes the same command line options as the mpirun wrapper supplied by mpich. Please bear in mind that mpich will not by default use the infiniband network. To use the infiniband network, use the following syntax:

caf -o hello helloWorld.f90
cafrun -np 48 -machinefile $PBS_NODEFILE -iface ib0 ./hello
/app/dokuwiki/data/attic/howto/coarrayfortran.1492033962.txt.gz · Last modified: 2021/12/09 16:42 (external edit)