General Information

Top of Page

NY Blue/P Compiler Invocation

Special Note:
When compiling for the NY Blue/P compute nodes, the compiler flags used on NY Blue/L:
-qarch=440 or 440d and -qtune=440
should not be used, instead use the following compiler flags:
-qarch=450 or 450d and -qtune=450

Addition Information:
Porting Your Code | Blue Gene/P Application Development Redbook

NY Blue offers the IBM and GNU compilers. The IBM compilers are recommended for optimal performance.

For information about running threaded programs on NY Blue/P see Running Threaded Programs On NY Blue/P. You can run either threaded or non-threaded programs there.

To run a code on the compute nodes, you must compile and link it using a "cross-compiler" on the front-end (login node). The cross-compiler produces an executable that will run on the compute nodes.

If you instead use a native compiler on the front-end, the resulting executable will run on the front-end but not necessarily on the remote nodes. You should run your applications on the compute nodes only. Also, you can use the native compiler to compile and link serial code only, i.e. there are currently no mpich libraries on the front-end, only on the compute nodes.

So why might you use the native compilers?

You may find it harder to build your executable for the compute nodes (i.e. using the cross compiler) than the login node. The login node runs the SUSE Linux Enterprise Server 10.0 (SLES10) operating system. The compute nodes are more limited than standard linux in regard to certain features such as system calls, header files, profiling, and shell utilities. You might decide to use the native compilers to port the serial portions of your parallel code to the front-end (i.e. login node) first, since it is a friendlier environment, then port the entire parallel code to the compute nodes (using the cross compilers).

Finally, for the cross compilers you can invoke each compiler (e.g. the C compiler) directly and be responsible yourself for things like linking in the required mpich libraries, or you can use the mpich wrapper scripts that are provided to do that for you. There are no mpich wrapper scripts for the native compilers because as mentioned there are no mpich libraries for the front-end.

In addition to the compiler invocation information on the sidebar at left, IBM offers a number of redbooks describing other aspects of IBM compiler usage:

  • IBM Fortran Blue Gene & Linux Manuals (IBM Redbooks)
    Much of the info you need will be in the Linux manual, but there is also some Blue Gene-specific info in the Blue Gene manual. Current Fortran compiler version number can be determined on fen by typing: ls /opt/ibmcmp/xlf/bg, will be highest number listed.
  • IBM C/C++ Blue Gene & Linux Manuals (IBM Redbooks)
    Much of the info you need will be in the Linux manual, but there is also some Blue Gene-specific info in the Blue Gene manual.
  • Linux Manual: Go to XL C/C++ for Linux, choose the Product Library link, then select current version number in tab at page top. (Current C/C++ compiler version number can be determined on fen by typing: ls /opt/ibmcmp/vacpp/bg, will be highest number listed.)
  • Blue Gene Manual: Go to IBM Fortran Blue Gene & Linux Manuals and select the XL Fortran Advanced Edition for Blue Gene hyperlink, the hyperlink for V11.1 points to a redbook pertinent to both Blue Gene/L and Blue Gene/P as well as to both Fortran and C/C++.
  • Blue Gene/P Application Development Redbook

Top of Page