Quaver: OpenMP Compiler for Clusters based on Array Section Descriptor

N. Yonezawa, K. Wada, and T. Ogura (Japan)


Cluster computing, OpenMP compiler, Array section de scriptor, Communication code generation


In this paper, we propose an implementation of OpenMP compiler for distributed memory environment. While OpenMP provides a notion of shared address space, dis tributed memory environment does not have a physically shared memory. One of the approaches to implement OpenMP on distributed memory environment is commu nication code generation, in which a producer sends appro priate data to the consumer. Our compiler called Quaver finds accesses to shared data and represents them by us ing quad, which is our proposed array section descriptor. To identify data to be sent, intersection operation is per formed between quads representing written and read data. Since a quad can concisely represent stride accesses to an array section, Quaver can generate efficient code in the case which OpenMP directive divides a for-loop in block-cyclic manner. As a preliminary evaluation, we parallelized a matrix-multiply program and an LU program by inserting OpenMP directives and executed them on a PC cluster. As a result, we achieved speedups of 6.38 and 3.23 with 8 pro cessors respectively.

Important Links:

Go Back