Assignment 1
Part 4
In this part of the assignment you will use serial axes to optimize the
performance of your program and you will use Prism to measure the results.
1) To measure the performance of a CMF program you must compile with the
-cmprofile compiler switch. You should not use the -g switch (which you
used for debugging) if you want accurate measurements. Change the Makefile
so that your code is compiled with the -cmprofile switch instead of the -g
switch and recompile your code.
2) Use Prism to time the program and save the timing data to a file.
3) Comment out the calls to init_graphics and plot_lines in the main program
(in file phaseplot.fcm). Recompile your code and use Prism to get
performance data. Save the data to another file. Compare the data with
the data you generated in Step 2.
You should be able to see that the calls to CMX11 routines generate a lot
of time on the partition manager. This is because the PNs send all X
commands to the partition manager. The partition manager then sends the
commands over ethernet to your X server. This creates a great deal of
overhead for the partition manager.
4) Leave the calls to init_graphics and plot_lines commented out and make the
first axes of x and y serial in the main program (file phaseplot.fcm)
and routine step (file solver.fcm). Recompile and time using Prism.
Save the timing data to a file and compare with the times you measured in Step
3. You should find that the use of serial axes has eliminated all
communication and resulted in a large increase in speed in the work done
on the nodes.
Go back to part 3.
Return to the class home page.