Exercise: Analyze the MPI ray tracer
A C version of the ray tracer program with MPI parallelization can be found in the folder RAY-itac. Compile it by loading the intel, intelmpi, and itac modules:
$ module load intel intelmpi itac
and then simply typing "make". It builds an instrumented binary that is ready for running and analysis with ITAC. Note: Building with ITAC only works on the frontend nodes.
Take an ITAC trace of the run as shown in the lecture (details see below) with tilesize=10, tilsize=100, and tilesize=2000 (the tile size is defined at the start of the main function).
Use 36 processes on a Fritz node. Look at the traces: Can you find obvious problems?
Profiling with Intel Trace Analyzer and Collector (ITAC)
Guidelines for a simple run with ITAC
1. Load the ITAC module and export environment variables
$ module load intel intelmpi itac
$ export VT_FLUSH_PREFIX=/tmp
$ export VT_LOGFILE_FORMAT=SINGLESTF
2. Build the code (C version only) on the frontend (this does not work on a compute node):
$ make
3. After running the program (within a batch job), it creates a trace file, named as RAY_C_MPI.exe.single.stf
4. View the resulting trace file with ITAC:
$ traceanalyzer RAY_C_MPI.exe.single.stf
Remember that you will have to connect to the cluster with X forwarding enabled (-X or -Y on the ssh command line) so that the GUI can be displayed on your end.