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.


Last modified: Thursday, 22 February 2024, 9:32 AM