Compilers on Research Computing Linux Systems

Details  

Most Research Computing Linux computers have three different kinds of compilers: GNU compilers, Portland Group compilers, and Intel compilers.

Below is a table that shows the different compilers and their commands.

LANGUAGE FILE SUFFIX COMMAND TYPE OF COMPILER
Fortran 77 .f pgf77 Portland Group
.f ifort Intel
.f .F .for gfortran GNU
Fortran 90 .f .f90 pgf90 Portland Group
.f .f90 ifort Intel
C .c pgcc Portland Group
.c icc Intel
.c gcc GNU
C++ .c .C pgCC Portland Group
.c icc Intel
.c g++ GNU
  • In general, gcc/g++ is the most flexible since it runs on a variety of different computer platforms. Many people use gcc/g++ so it will be easy to port their code to other platforms. gfortran is the Fortran GNU compilers.
  • The Portland Group compilers will compile f77, f90, C, and C++ codes. Many Fortran codes use extensions to the language, and the Portland Group compilers support those extensions. Portland Group recommends you use the pgf90 for both Fortran 90 and Fortran 77 codes to gain additional code speed up.
  • The Intel compilers do a good job of compiling code to make use of the architectural features of the Intel processors.

Here is a table of frequently used compiler flags, common to the above compilers.

COMPILER WHAT THE OPTION DOES
-c Produce an object file only.
-o filename Create an executable called filename (default is a.out).
-O {0, 1, 2, 3} Specify the optimization level ( 0 is none and 3 is most aggressive).
-g Include a symbol table, needed for debugging.
-pg Generate profiling code.
-l Look for include files in this directory (default include directory is /usr/include).
-L Look for libraries in this directory (default library directory: /lib, /usr/lib/usr/lib64).
-larchive Link in a library called librahive.so (or .a).
-static Link only with static libraries (compilers use shared libraries by default).

For more options and detailed information, consult man pages (e.g., man gcc). Send questions, corrections, or additional information about these compilers to Research.Computing@dartmouth.edu.