Skip to content

Compiling

Important Considerations

On Blue Gene, the front-end nodes have different processors and run a different operating system than the compute nodes, therefore, your codes must be cross-compiled. Discovery of system characteristics during compilation (e.g., via configure) may also require code changes. Moreover, some system calls are not supported by the compute node kernel, which runs on the compute nodes.

Compiler Versions and Paths

Currently XL Fortran V10.1 and XL C/C++ V9.0 are installed on Blue Gene. The paths to the compilers should be set by default in your login shell.

Message Passing (MPI) Programs

On Blue Gene, MPI is based on MPICH2 from ANL. You can use MPI wrappers (mpxlf, mpxlf90, mpcc, mpCC) for compilation and linking. The path to the wrappers should be set by default in your login shell.

Compiler Options

Option Definition
–qarch=440 uses only single FPU per processor (minimum option).
–qarch=440d allows both FPUs per processor (alternate option).
–qtune=440 use after –qarch, to avoid warnings.
–O3 gives minimal optimization with no SIMDization.
–O3 –qhot=simd adds SIMDization.
–O4 adds compile-time interprocedural analysis.
–O5 adds link-time interprocedural analysis.
–qdebug gives SIMDization info.

The –qarch option is essential. Currently, –O3 –qarch=440 is recommended, though –O3 –qarch=440d is a reasonable alternative. For example, to compile a simple Fortran 90 program parallel.f with MPI routines included, you could use:

mpxlf90 –O3 –qarch=440d –o parallel parallel.f

Back to Top


Did You Get
What You
Wanted?
Yes No
Comments