Compilation

Since bassi is a cluster of IBM Power processors, you should use the XL compiler. xlc is for sequential programs and xlc_r is for parallel programs. To compiler a program with OpenMP pragmas, use the following.

xlc_r -o prog prog.c -O3 -qsmp=omp

After compilation, you may notice that you can run the compiled program on the command line and it will actually run without making a load leveler job. However, this will run the program on one of the two host nodes they have for interactive jobs, and if all of you run your programs there, it will probably affect the performance measurements, and other people using NERSC may get unhappy. So, please run only very small jobs on the host nodes, mainly for debugging, and data collection should be performed using load leveler as usual.

Load Leveler Scripts

Documentation for bassi isn't really clear about how to run OpenMP jobs through load leveler, but here is a way that we got to work. You basically use the same script as you used for MPI programs, but run OpenMP jobs. Here is an example.