Compiler-level optimization
From HP-SEE Wiki
Contents |
Using GNU compilers
Using IBM XL compilers
Section contributed by IICT-BAS
The IBM XL suite of compilers is deployed at the Blue Gene/P. The most important advantage of these compilers with respect to the GNU compiler collection is that they support the special features of the processors of Blue Gene/P that allow to double the floating point performance in double precision. Thus one should always try to compile with these compilers first. One should also remember that the compilation is in effect a cross-compilation, since it is done on the front-end node, which has slightly different architecture. The configure script or whatever build system is used, must be instructed to use the cross-compiler instead of the standard gcc or other, to perform compilation. Usually, it can be done by setting the environment variable like CC, F90, CXX, MPICC, MPIF90, MPICXX to point to the respective IBM XL compilers. The usual flags to achieve optimal result on the Blue Gene/P in Sofia are:
-O2 -qarch=450d -qtune=450 which specify the CPU architecture.