Abstract
- A source-to-source parallelizing compiler which generates parallel code for distributed-memory systems is modified to support statements for expressing shared-memory parallelism. The multi-core push is changing commodity clusters and high-end computing systems to include denser nodes containing more processors with shared-memory. This has drawn increased interest in hybrid parallel programming of these systems. The result of this compiler modification allows valid hybrid parallel programs to be produced from high-level statements guiding two forms of parallelism from the sequential source. Further implications and a detailed description of the implementation of this optimization are discussed. The modified compiler was validated by compiling two sequential sources containing high-level distributed-memory and shared-memory statements which perform matrix multiplication and Sobel edge detection. Performance timings are collected on the generated hybrid parallel source and distributed-memory only parallel source.