Compiling Array Expressions for Efficient Execution on Distributed-Memory Machines |
| |
Authors: | S.K.S. Gupta S.D. Kaushik C.-H. Huang P. Sadayappan |
| |
Affiliation: | aDepartment of Computer Science, Duke University, Durham, North Carolina, 27708-0129;bMicrocomputer Software Lab, Intel Corporation, JF3-206, 2111 N.E. 25th Avenue, Hillsboro, OR, 97124;cDepartment of Computer and Information Science, The Ohio State University, Columbus, OH, 43210 |
| |
Abstract: | Array statements are often used to express data-parallelism in scientific languages such as Fortran 90 and High Performance Fortran. In compiling array statements for a distributed-memory machine, efficient generation of communication sets and local index sets is important. We show that for arrays distributed block-cyclically on multiple processors, the local memory access sequence and communication sets can be efficiently enumerated as closed forms using regular sections. First, closed form solutions are presented for arrays that are distributed using block or cyclic distributions. These closed forms are then used with avirtual processor approachto give an efficient solution for arrays with block-cyclic distributions. This approach is based on viewing a block-cyclic distribution as a block (or cyclic) distribution on a set of virtual processors, which are cyclically (or block-wise) mapped to physical processors. These views are referred to asvirtual-blockorvirtual-cyclicviews, depending on whether a block or cyclic distribution of the array on the virtual processors is used. The virtual processor approach permits different schemes based on the combination of the virtual processor views chosen for the different arrays involved in an array statement. These virtualization schemes have different indexing overhead. We present a strategy for identifying the virtualization scheme which will have the best performance. Performance results on a Cray T3D system are presented for hand-compiled code for array assignments. These results show that using the virtual processor approach, efficient code can be generated for execution of array statements involving block-cyclically distributed arrays. |
| |
Keywords: | |
本文献已被 ScienceDirect 等数据库收录! |
|