Tempest and typhoon: user-level shared memory
ISCA '94 Proceedings of the 21st annual international symposium on Computer architecture
Compiler optimizations for eliminating barrier synchronization
PPOPP '95 Proceedings of the fifth ACM SIGPLAN symposium on Principles and practice of parallel programming
An integrated compile-time/run-time software distributed shared memory system
Proceedings of the seventh international conference on Architectural support for programming languages and operating systems
Optimizing communication in HPF programs on fine-grain distributed shared memory
PPOPP '97 Proceedings of the sixth ACM SIGPLAN symposium on Principles and practice of parallel programming
Compiling for distributed memory multiprocessors based on access region analysis
Compiling for distributed memory multiprocessors based on access region analysis
Simplification of array access patterns for compiler optimizations
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
IPPS '97 Proceedings of the 11th International Symposium on Parallel Processing
The relative importance of concurrent writers and weak consistency models
ICDCS '96 Proceedings of the 16th International Conference on Distributed Computing Systems (ICDCS '96)
Interprocedural parallelization using memory classification analysis
Interprocedural parallelization using memory classification analysis
IPDPS '02 Proceedings of the 16th International Parallel and Distributed Processing Symposium
Towards OpenMP Execution on Software Distributed Shared Memory Systems
ISHPC '02 Proceedings of the 4th International Symposium on High Performance Computing
Optimizing OpenMP programs on software distributed shared memory systems
International Journal of Parallel Programming - Special issue: OpenMP: Experiences and implementations
Towards automatic translation of OpenMP to MPI
Proceedings of the 19th annual international conference on Supercomputing
Hi-index | 0.00 |
There are two typical ways for a compiler to generate parallel code for distributed memory multiprocessors. One is to generate explicit message passing code and the other is to generate code for a distributed shared memory software layer. In this paper, we propose a new compiler design that combines message passing and distributed shared memory for a single program, depending on how data is accessed. The Linear Memory Access Descriptor (LMAD) is used to represent data distribution and data accesses in our compiler. The LMAD can represent complex distribution and access patterns accurately. We show how LMADs may be used to generate message passing operations. Experimental results indicate that our technique is useful for programs with both regular and irregular access patterns.