ARCHER Best Practice Guide
Version 4.0 (August 2013)
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.
Description of the guide and useful links.
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.
- Processor architecture
- Memory architecture
- Available file systems
- Operating system (CLE)
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
- Shared Memory Access (SHMEM)
Advanced use of the ARCHER batch system.
- Multiple aprun commands in a single job
- Job arrays
- Writing job submission scripts in Perl and Python
- Job chaining
How to use the performance analysis tools installed on the system.
- Performance Analysis Tools
- Cray Performance Analysis Tool (CrayPat)
- Cray Reveal
- Allinea MAP
- Tuning and Analysis Utilities (TAU)
- General hints for interpreting profiling results
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
How to use the debugging tools installed on the system.
- Available Debuggers
- Cray ATP
- GDB (GNU Debugger)
- DDT Debugger
- 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
This section provides information on getting the best performance out
of the parallel
file systems on ARCHER when writing data, particularly using parallel
- 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