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 |