ARCHER Best Practice Guide
Version 4.1 (January 2019)
This guide includes sections detailing the hardware, optimising your code (in serial and parallel), profiling your code and debugging your code. This guide is also being continually updated with more content.
The Best Practice Guide is based on work by staff at EPCC and KTH (Sweden) as part of the PRACE (Partnership for Research and Advanced Computing in Europe) initiative.
Contents
1. Introduction
Description of the guide and useful links.
2. System Architecture and Configuration
Detailed description of the ARCHER hardware and system software. This includes a in-depth look at the Intel Xeon E5-2697 (Ivy Bridge) architecture and memory layout.
3. Programming Environment
Details on how to compile codes; use numerical libraries; MPI libraries and other parallel programming options.
- Modules environment
- Available compilers
- Available (vendor optimised) numerical libraries
- MPI
- OpenMP
- Shared Memory Access (SHMEM)
4. Job Submission System
Advanced use of the ARCHER batch system.
5. Performance analysis
How to use the performance analysis tools installed on the system.
- Performance Analysis Tools
- Cray Performance Analysis Tool (CrayPat)
- Cray Reveal
- MAP Profiler (Arm Forge)
- Tuning and Analysis Utilities (TAU)
- Valgrind
- General hints for interpreting profiling results
6. Tuning
Tips on how to optimise the performance of your code in both serial and parallel.
- Optimisation summary
- Serial (single-core) optimisation
- Parallel optimisation
- Advanced OpenMP usage
- Memory optimisation
- Intel Hyper Threading
7. Debugging
How to use the debugging tools installed on the system.
- Available Debuggers
- Cray ATP
- STAT
- DDT Debugger (Arm Forge)
- Download and install the remote client
- Compile the code for debugging
- Setup the remote client to access ARCHER
- Setup the debugger to submit jobs to ARCHER
- Run your debugging session on your program
- Finishing your debugging session
- Using DDT directly on the compute nodes
- Memory debugging of statically-linked programs
8. I/O on ARCHER
This section provides information on getting the best performance out
of the parallel
/work
file systems on ARCHER when writing data, particularly using parallel
I/O patterns.
- Common I/O Patterns
- Lustre parallel file systems
- Do I have a problem with my I/O?
- Summary of performance advice
- File Per Process (FPP)
- Single Shared File (SSF)
- I/O Profiling