Compilers and libraries
Compilers
There are two compiler suites available; GNU and IBM XL. The XL compilers are generally prefered, since they usually generate faster programs. There are codes that use GNU specific things, though, mostly C++ codes. The easiest way to use the compilers are through a set of wrappers called mpi*, which link with the right MPI libraries.
GNU
You can find the GNU compilers in the /bgl/BlueLight/ppcfloor/blrts-gnu/bin directory. The available wrappers for these are called mpicc, mpicxx and mpif77. Note that the GNU compilers found in /usr/bin only compiles for the log in node, not for the Blue Gene.
XL
The XL compilers from IBM are located in /opt/ibmcmp. /opt/ibmcmp/va{c,cpp}/bg/8.0/bin for the C/C++ versions and /opt/ibmcmp/xlf/bg/10.1/bin for the Fortran versions. The wrappers for these are called mpixlc, mpixlcxx, mpixlf77 and mpixlf90.
Libraries
Message Passing Interface - MPI
The MPI library on the Blue Gene is MPICH2, with some exceptions that the architecture doesn't support. You can find more information about MPICH2 here.
Mathematical Acceleration Subsystem libraries - MASS
This library consists of optimized mathematical intrinsic functions with higher performance than the standard mathematical library routines. The XL compilers will link to the scalar library automatically, but for GNU you have to add -lmass. To use the vectorized functions, add -lmassv to your link stage, for both compilers. More information can be found here.
Engineering and Scientific Subroutine Library libraries - ESSL
The ESSL contains highly tuned mathematical subroutines. Among other things routines for linear algebra, matrix operations and eigensystem analysis. You can find more information about how to use ESSL in the "ESSL for AIX V4.2 - ESSL for Linux on POWER V4.2.2 Guide and Reference" from this page.


