Biowulf High Performance Computing at the NIH

Compiler Suites

All compute nodes on the Biowulf cluster include the GCC compiler suite, which includes C, C++, FORTRAN77 and FORTRAN90/95 compilers (gcc, g++, g77 and gfortran respectively) along with the GNU debugger (gdb). In addition to these default compilers, there are two other popular suites available to Biowulf users that may improve the performance of your project or better accommodate certain code bases - these are currently the Intel and Portland Group International (PGI) compiler suites.

GNU Compilers

The GNU compiler suite is available in the user's PATH by default. This is the system default version that comes with the operating system. Though not considered "high-performance" or "optimized," they are usually the best choice for pre-existing source codes since build-systems are often created with this compiler in mind (indeed, a lot of code will run faster using GCC unless pains have been taken to include optimal flags for the various proprietary compilers). Consequently, sensible compiler flags are generated and building will be comparatively trouble-free with these build-systems. However, if performance is an issue, you should consult the documentation distributed with the source distribution that you're trying to build to see if other compilers are supported. If you're developing a high-performance application "in-house," you may want to explore the other compilers available on Biowulf.

Some users need the latest features offered by the latest release of the GNU compiler suite, so we also maintain newer GCC releases. These newer GNU compilers require newer environment variables set before executing programs built with it. This is accomplished by loading the appropriate module. Alternatively, the user can specify "-static-libgcc", "-static-libgfortran" or "-static--libg++" (depending on the language) during the build phase to compile-in these runtimes and thus avoid needing to set different runtime paths.

To view the available versions of GCC, run:

module avail gcc

More documentation is available on the GNU website.

Intel Compilers

The Intel suite includes C, C+, FORTRAN77 and FORTRAN90/95 compilers along with OpenMP and the Intel debugger. Anecdotal evidence suggests that this compiler suite frequently provides the best performance for calculation-intensive applications. Included with these compilers are the Intel Math Kernel Library (MKL), LINPACK and Intel Performance Primitives (IPP) - all discussed in the scientific libraries section below.

To view the available versions of the Intel compilers, run:

module avail intel

More documentation is available on the Intel website.

Portland Group International (PGI) Compilers

The Portland Group suite includes the usual set of C, C++ FORTRAN77 and FORTRAN90/95 compilers. Also included is an OpenMP implementation, preliminary support for FORTRAN2000 and PGDBG, a graphical debugger.

To view the available versions of the PGI compilers, run:

module avail pgi

More documentation is available on the PGI website.