We propose an interprocedural automatic data distribution method for a parallelizing compiler on distributed shared memory multiprocessors. In this paper we present the algorithm and its implementation and evaluation. This method combines "first touch control (FTC)" with data distribution directives. The characteristics of the FTC method are that our compiler controls first touch data distribution of the operating system and accurately determines a complex distribution of data. This method appropriately distributes data for those program patterns which conventional data distribution methods are unable to properly treat. In addition, we implemented an interprocedural analysis which improves data locality for the program as a whole. We evaluated the parallel performance, on SGI Origin2000, of applying this method to NPB2.3serial/FT, SP, and CG, and SPECfp95/tomcatv. On 16 processors, these benchmarks ran 2.1 times faster (on average) than they did without our method.
展开▼