Journal of Parallel and Distributed Computing - Special issue on scalability of parallel algorithms and architectures
Software—Practice & Experience
Global communication analysis and optimization
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
Global arrays: a nonuniform memory access programming model for high-performance computers
The Journal of Supercomputing
Journal of Parallel and Distributed Computing
Removing the overhead from software-based shared memory
Proceedings of the 2001 ACM/IEEE conference on Supercomputing
IPDPS '02 Proceedings of the 16th International Parallel and Distributed Processing Symposium
ParADE: An OpenMP Programming Environment for SMP Cluster Systems
Proceedings of the 2003 ACM/IEEE conference on Supercomputing
Extending OpenMP for NUMA machines
Scientific Programming
Towards OpenMP Execution on Software Distributed Shared Memory Systems
ISHPC '02 Proceedings of the 4th International Symposium on High Performance Computing
Improving the performance of OpenMP by array privatization
WOMPAT'03 Proceedings of the OpenMP applications and tools 2003 international conference on OpenMP shared memory parallel programming
Dragon: a static and dynamic tool for OpenMP
WOMPAT'04 Proceedings of the 5th international conference on OpenMP Applications and Tools: shared Memory Parallel Programming with OpenMP
Parallel Data Flow Analysis for OpenMP Programs
IWOMP '07 Proceedings of the 3rd international workshop on OpenMP: A Practical Programming Model for the Multi-Core Era
Distributed Implementation of OpenMP Based on Checkpointing Aided Parallel Execution
IWOMP '07 Proceedings of the 3rd international workshop on OpenMP: A Practical Programming Model for the Multi-Core Era
Micro-benchmarks for cluster OpenMP implementations: memory consistency costs
IWOMP'08 Proceedings of the 4th international conference on OpenMP in a new era of parallelism
Streams: emerging from a shared memory model
IWOMP'08 Proceedings of the 4th international conference on OpenMP in a new era of parallelism
Parallel divide-and-evolve: experiments with OpenMP on a multicore machine
Proceedings of the 13th annual conference on Genetic and evolutionary computation
Using shared arrays in message-driven parallel programs
Parallel Computing
Toward a distributed implementation of openMP using CAPE
PaCT'07 Proceedings of the 9th international conference on Parallel Computing Technologies
Strategies and implementation for translating OpenMP code for clusters
HPCC'07 Proceedings of the Third international conference on High Performance Computing and Communications
Checkpointing aided parallel execution model and analysis
HPCC'07 Proceedings of the Third international conference on High Performance Computing and Communications
Experiences Developing the OpenUH Compiler and Runtime Infrastructure
International Journal of Parallel Programming
Hi-index | 0.00 |
This paper discusses a novel approach to implementing OpenMP on clusters. Traditional approaches to do so rely on Software Distributed Shared Memory systems to handle shared data. We discuss these and then introduce an alternative approach that translates OpenMP to Global Arrays (GA), explaining the basic strategy. GA requires a data distribution. We do not expect the user to supply this; rather, we show how we perform data distribution and work distribution according to the user-supplied OpenMP static loop schedules. An inspector-executor strategy is employed for irregular applications in order to gather information on accesses to potentially non-local data, group non-local data transfers and overlap communications with local computations. Furthermore, a new directive INVARIANT is proposed to provide information about the dynamic scope of data access patterns. This directive can help us generate efficient codes for irregular applications using the inspector-executor approach. We also illustrate how to deal with some hard cases containing reshaping and strided accesses during the translation. Our experiments show promising results for the corresponding regular and irregular GA codes.