KAUST Supercomputing Laboratory Newsletter 27th January 2016

RCAC Meeting

The project submission deadline for the next RCAC meeting is 31st January 2016. Please note that the RCAC meetings are held once per month.

Annual Power Maintenance

Due to the annual power maintenance in the data centre, all of the systems will be unavailable from 08:00 on Thursday 11th February until approximately 10:00 on Monday 15th February.

KSL Workshop Series:  Optimizing I/O on Shaheen II

Thursday, February 4, 2016

The KAUST Supercomputing Core Laboratory (KSL) invites you to the second workshop on our seminar series about Shaheen II. This workshop will focus on maximizing efficient use of the parallel file system. It will provide an overview of Parallel I/O, explore using various profiling tools for validating I/O performance, and cover best practices for efficient I/O operations. The scientific focus will be on codes for climate, seismic, and biology applications.
This seminar is of particular interest to Shaheen II users dealing with large files, or a large number of files.
Seats are limited. Please register your interest at: https://www.surveymonkey.com/r/H6FNM7C
 
Venue/Time: Computer Lab Room, 3rd floor at the Library, from 9:30am-11:00am
 
Agenda:
        09:30am - Optimizing I/O on Shaheen II
        10:00am - Interactive Exercises on Shaheen II
        10:30am - Q&A with KSL team (bring all your HPC questions)

Shaheen I/ Neser Data

We will continue to have the Shaheen I/Neser ‘home' and ‘project' filesystems available until at least 31st July 2016. However, please note that the ‘scratch' filesystem will be taken off-line and deleted on the 1st February 2016.
For data that is needed for projects on Shaheen II, rather than copying it yourself, please contact us and we can assist in moving the data as we have dedicated systems for this that have direct access to both storage subsystems.

Tip of the Week: Compiler Options

Shaheen II supports three different programming environments with Cray, Intel and GNU compilers. Below, you will find useful information on compilers.

  • For C code
 

 Compiler Options for MPI/Serial code  

 Compiler Options for OpenMP code  

 Compiler manual page  

PrgEnv-cray  

cc -o exe code.c

 cc -o exe -h omp code_mp.c

  man craycc

PrgEnv-intel

cc -o exe code.c

 cc -o exe -openmp code_mp.c

  man icc

PrgEnv-gnu

cc -o exe code.c

 cc -o exe -fopenmp code_mp.c

  man gcc

 

  • For C++
 

Compiler Options for MPI/Serial code

Compiler Options for OpenMP code

Compiler manual page

PrgEnv-cray

CC -o exe code.cpp

 CC -o exe -h omp code_mp.cpp

man crayCC

PrgEnv-intel

CC -o exe code.cpp

 CC -o exe -openmp code_mp.cpp

  man icpc

PrgEnv-gnu

CC -o exe code.cpp

 CC -o exe -fopenmp code_mp.cpp

  man g++

 

  • For C and C++

Once  you have validated the accuracy of your code, it may be worth trying a more aggressive set of options to improve performance. Compiler warnings can help you to identify errors at compile time, and full optimisation can introduce problems in some code. Therefore, verification should be done for each tested optimisation flag. Here are some suggestions:

 

  Options to generate warnings  

  To generate run time checks  

  For optimisation

PrgEnv-cray   

-h msglevel_3

-h bounds

  -O3 -hfp3

PrgEnv-intel

-w2

-check=stack

  -O2 -ipo

PrgEnv-gnu

-Wall

-fbounds-check

  -O3 -ffast-math -funroll-loops

 

  • For Fortran
 

Compiler Options for MPI/Serial code

Compiler Options for OpenMP code

Compiler manual page

PrgEnv-cray

ftn -o exe code.f90

 ftn -o exe -h omp code_mp.f90

  man crayftn

PrgEnv-intel

ftn -o exe code.f90

 ftn -o exe -openmp code_mp.f90

  man ifortran

PrgEnv-gnu

ftn -o exe code.f90

 ftn -o exe -fopenmp code_mp.f90

  man gfortan

 

 

Options to generate warnings

To generate run time checks

For optimisation

PrgEnv-cray

-m 3

-Rbcps

-O3 -hfp3

PrgEnv-intel

-warn all

-check all

  -O2 -ipo

PrgEnv-gnu

-Wall

-fcheck=bounds

  -O3 -ffast-math -funroll-loops

 

 

Previous Announcements

Previous Tips