NPAC Technical Report SCCS-481

Optimization of a Dynamic Random Surface Code for RISC Processor

Mark Bowick, Paul Coddington, Leping Han, Geoffrey Fox, Geoffrey Harris, Enzo Marinari

Submitted April 01 1993


Abstract

To get near optimal performance from RISC processors the programmer must be very careful to structure the code in such a way as to make best use of the data cache, by keeping data as local as possible. This is a non-trivial problem for applications with dynamic data structures such as the simulation of dynamically triangulated random surfaces, which we use an an example. This is very similar to problems of data locality on parallel processors, where there is an even greater penalty in accessing data which is non-local. Based on the idea of memory having a hierarchy structure, and the particular characteristics of certain RISC chips, we outline a fairly systematic method for optimizing the program. These methods are quite general, and can be applied to any numerically intensive program run on a fast RISC processor. We have benchmarked the results of these optimization techniques on the Intel i860, IBM RS/6000, HP 7000, DECstation 5000, and Sun SPARC 1+. The results showed significant improvement in speed.


PostScript version of the paper