Abstract   When writing parallel software for high performance computing, a common practice is to start from a sequential variant of a program that is consecutively enriched with parallelization directives. This process –  progressive parallelization  – has the advantage that, at every point in time, a correct version of the program exists. However, progressive parallelization leads to an entanglement of concerns, especially, if different variants of the same functional code have to be maintained and evolved concurrently. We propose  orchestration style sheets (OSS)  as a novel approach to separate parallelization concerns from problem-specific code by placing them in reusable  style sheets , so that concerns for different platforms are always separated, and never lead to entanglement. A weaving process automatically generates platform-specific code for required target platforms, taking semantic properties of the source code into account. Based on a scientific-computing case study for fluid mechanics, we show that OSS are an adequate way to improve maintainability and reuse of Fortran code parallelized for several different platforms.
['Johannes Mey', 'Sven Karol', 'Uwe Aßmann', 'Immo Huismann', 'Jörg Stiller', 'Jochen Fröhlich']
Using Semantics-aware Composition and Weaving for Multi-variant Progressive Parallelization☆