::MITgcm cluster facility

Information on compilers and compilation options  
Home
Overview
Get an account
Login
PBS Queues
Compilers
Standard Libraries
Parallel Execution
MITgcm Examples
FAQ
Output Analysis
Storage
More Help
Hardware Layout
Technical Specs
Table Of Contents

Back Next

 

Fortran, C and C++ compilers are available on each cluster. Compilation for parallel codes with MPICH-GM (the MPI library built for optimized performance over the Myrinet network) requires invoking compilers through different path names to the pathnames used for compilation for sequential execution. The pathnames for the compilers are given below.

compiling for sequential execution

GNU Compilers (g77,gcc,g++) g77 path: /usr/bin/g77
help: info g77 or g77 --help
gcc path: /usr/bin/gcc
help: info gcc or gcc --help
g++ path: /usr/bin/g++
help: info g++ or g++ --help
Portland Group Compilers (pgf77, pgf90, pghpf ). Note: these compilers require the environment variable PGI set to /usr/local/pgi. pgf77 path: /usr/local/pgi/linux86/bin/pgf77
help: man pgf77 (requires MANPATH environment variable to include /usr/local/pgi/man).
pgf90 path: /usr/local/pgi/linux86/bin/pgf90
help:  man pgf90 (requires MANPATH environment variable to include /usr/local/pgi/man).
pghpf path: /usr/local/pgi/linux86/bin/pghpf
help:  man pghpf (requires MANPATH environment variable to include /usr/local/pgi/man).
Intel Compilers (ifc, icc) ifc path: /opt/intel/compiler60/ia32/bin/ifc (myrinet-3 cluster only).
help: ifc -help or man ifc (requires MANPATH environment variable to include /opt/intel/compiler60/man).
icc path: /opt/intel/compiler60/ia32/bin/icc (myrinet-3 cluster only).
help: icc -help or man icc (requires MANPATH environment variable to include /opt/intel/compiler60/man).
Lahey Compiler (lf95) lf95 path: /usr/local/pkg/lahey/lf9562/bin/lf95.
help: lf95 --help
NAG Compiler (f95) f95 path: /usr/local/pkg/NAGWare/NAGWare-4.2/bin/f95.
help: f95 --help or man f95 (requires MANPATH environment variable to include /usr/local/pkg/NAGWare/NAGWare-4.2/share/man).

compiling for parallel execution

MPICH-GM compilation driver scripts on myrinet-3 and myrinet-4 nodes

Command

Description

/usr/local/pkg/mpi/mpi-1.2.4..8a-gm-1.5/pgi/bin/mpif77 Compiles Fortran 77 code to produce for MPI executable using Myrinet interconnect on myrinet-3, myrinet-4 nodes. Uses the Portland group pgf77 compiler.  
/usr/local/pkg/mpi/mpi-1.2.4..8a-gm-1.5/pgi/bin/mpif90 Compiles Fortran 90 code to produce for MPI executable using Myrinet interconnect on myrinet-3, myrinet-4 nodes. Uses the Portland group pgf90 compiler.  
/usr/local/pkg/mpi/mpi-1.2.4..8a-gm-1.5/g77/bin/mpif77 Compiles Fortran 77 code to produce for MPI executable using Myrinet interconnect on myrinet-3, myrinet-4 nodes. Uses the GNU compiler.  
/usr/local/pkg/mpi/mpi-1.2.4..8a-gm-1.5/g77/bin/mpicc Compiles C code to produce for MPI executable using Myrinet interconnect on myrinet-3, myrinet-4 nodes. Uses the GNU compiler. 
/usr/local/pkg/mpi/mpi-1.2.4..8a-gm-1.5/intel/bin/mpif77 Compiles Fortran 77 code to produce for MPI executable using Myrinet interconnect on myrinet-3, myrinet-4 nodes. Uses the Intel ifc compiler.  
/usr/local/pkg/mpi/mpi-1.2.4..8a-gm-1.5/intel/bin/mpif90 Compiles Fortran 90/95 code to produce for MPI executable using Myrinet interconnect on myrinet-3, myrinet-4 nodes. Uses the Intel ifc compiler.  
/usr/local/pkg/mpi/mpi-1.2.4..8a-gm-1.5/intel/bin/mpicc Compiles C code to produce for MPI executable using Myrinet interconnect on myrinet-3, myrinet-4 nodes. Uses the Intel icc compiler.  
/usr/local/pkg/mpi/mpich-1.2.5..10/lahey/bin/mpif90 Compiles Fortran 90 and Fortran 77 code to produce for MPI executable using Myrinet interconnect on myrinet-3, myrinet-4 nodes. Uses the Lahey lf95 compiler.  

Note: When using makedepend (for example in the MITgcm genmake utility generated Makefile) with #include "mpi.h" or #include "mpif.h" an include path of -I/usr/local/pkg/mpi/mpi-1.2.4..8a-gm-1.5/intel/include or -I/usr/local/pkg/mpi/mpi-1.2.4..8a-gm-1.5/pgi/include or -I/usr/local/pkg/mpi/mpi-1.2.4..8a-gm-1.5/g77/include or - I/usr/local/pkg/mpi/mpich-1.2.5..10/lahey/include will be needed as appropriate.

The lahey compiler includes dynamic libraries that must be included in the runtime loader search path. This can be done by setting the environment variable LD_LIBRARY_PATH to include the directory /usr/local/pkg/lahey/lf9562/lib. To do this for a c-shell terminal add the statement

setenv LD_LIBRARY_PATH $LD_LIBRARY_PATH:/usr/local/pkg/lahey/lf9562/lib

to your c-shell startup script, ".cshrc".