Several programming models are supported on PowerOmics. Programs that are of sequential and parallel can be submitted on this system. Sequential programs require one processor thread to run. Parallel programs utilize multiple processor threads concurrently. Message passing and threaded applications generally fit under the scope of parallel computing.
The supported compilers on PowerOmics are the IBM compilers (XLC and XLF) and the GNU compiler (GCC) enabled with Advance Toolchain capabilities..OpenMPI implementations built with the IBM and GCC compilers are available and can be loaded upon demand using the module command.
Compiling Serial Code
To compile serial code you will have to load the appropriate compiler environment. The IBM C/C++ and Fortran environments, respectively, are loaded as follows:
Once the environment is set, you can view the appropriate online documentation for the compiler:
Compiling Parallel Code
To compile a parallel version of your code that has OpenMPI library calls, use the appropriate OpemMPI library. Again, use the module command to load the appropriate compiler environment as follows (IBM versions highly recommended):
module load openmpi/1.4.3-gcc
For gcc compiled version.
module load openmpi/1.4.3-ibm
For IBM compiled version.
To compile your code you will have use the OpenMPI scripts that are currently in your default path. The OpenMPI scripts are responsible for invoking the compiler, linking your program with the OpenMPI library and setting the OpenMPI include files.
Once the environment is set, you can compile your program with one of the following (assuming the IBM compiler as above):
When invoked as described above, the compiler will perform the preprocessing, compilation, assembly and linking stages in a single step. The output file (or executable) is specified by executablename and the source code file is specificed by mpi_sourcecode.f77, for example. Omitting the -o executablename option will result in the executable being named a.out by default. For additional instructions and advanced options please view the online manual pages for each compiler (i.e. execute the command man mpif77 ).
GNU Compiler and Advance Toolchain
The GNU compiler is installed as part of the Ubuntu Linux distribution. Use man gcc to view the online manual for the C and C++ compiler, and man gfortran to view the online manual for the Fortran compiler.
In addition to the Ubuntu basic version of GCC, there is an Advance Toolchain stack installed on PO that includes special optimization for POWER8 hardware. Advance Toolchain versions of GCC can be accessed by using the module load at command.