MCS 572 HP-Convex Exemplar SPP1200 Starter Problem Fall 1997
Professor F. B. Hanson
DUE Monday 27 Oct 1997 in class (this is individual, not group, homework)
Optimize the one of the codes
- borgstart.f
- borgstartcc.c
(Provided the Computer Center renews the Convex C License.)
on the UIC HP-Convex Exemplar SPP1200/XA-16 (called the borg)
by doing whatever is necessary to get the best performance, provided
that all variables have the same final storage values in the
optimized code as the original code, WITHIN REASON, WITHOUT MULTITASKING,
and no work is
taken out of the original timing loop, such as using new data or
parameter statement statements. A copy of these starter problem codes,
either in Fortran or C, can be found:
- by clicking
- or by using anonymous FTP to `www.math.uic.edu', change directory
to `pub/Hanson/MCS572' and get either file:
`borgstart.f'
`borgstartcc.c'.
In particular, use
- Convex timer 'etime' optimizing Convex Fortran compile-link command:
- Unix timer 'gettimeofday' optimizing Convex C compile-link command:
and execute either one as
run start >& start.output &
in order to report
- Summary Page with
- Total user time for `fc' or Final Total Time for `cc'
for original code, using an average of a sample of 4 user timings.
- Total user time for `fc' or Final Total Time for `cc'
for tuned code, using an average of a sample of 4 user timings.
- Ratio of the original to tuned times for which ever compiler you
chose.
- Output results for original and tuned codes.
- Document with comments what tuning was performed by each tuned loop.
- Recompile and rerun the code with the default (scalar) optimization
option of `-O2' instead place of the parallel optimization option of `O3',
and then compare respective tuned and untuned versions with ratios of
"O2" to "O3" optimization times.
- Compiler optimization reports, before and after optimization tuning.
Be sure to label all above items for identification.
Try to remove as many of the Convex
compiler non-optimized informational messages as possible,
use of Fortran 90 array extensions if you are using `fc', and use
compiler directives or pragmas only where needed. Also,
you may correct the logic errors if they are present.
However, the FINAL storage into scalar variables and arrays must
be the same as the original code. The best way to start is to
temporarily put timers around all the loops, in order to find
the most time consuming loop and work down to the smaller loops.
Your final times should be the difference between the end of the code
and the beginning of the code, less timer overhead, as in the original
code.
Try to make the code fit the Convex SPP1200 parallel optimization model.
Your performance will be inversely related to your total time in the
new tuned optimized part of your program, if correct. If your answers
are not correct with respect to the original code, then significant points
will be deducted.
Notes:
Please report to Professor Hanson any problems:
Web Source:http://www.math.uic.edu/~hanson/borgstart.html