A Scalable Portability Model for Parallel Computing


Ami Marowka
Michel Bercovier


High Performance Computing creates new demands on software applications with respect to performance, scalability and portability. The increased complexity of parallel machine architectures, on the one hand, and different parallel programming paradigms on the other, poses serious challenges to software developers.

Constructing a high-performance program requires detailed knowledge of the computer`s architectural features. This knowledge constitutes a detailed, albeit informal, model of computation against which the performance program is written. Similar characteristics must be considered in building a portable high-performance program where the appropriate details are elusive and often unavailable when the program is written. In order to support this type of programming, we call for a Scalable Portability Model (SPM), that uses several novel techniques to meet these challenges.

A portable high-performance program must be capable of adapting to the particular environment in which it is running. We call the technique for achieving this adaptation Two-Phase Adaptation. Firstly, an automatic analysis and exploration of the underlying architecture environment is carried out. Secondly, an efficient matching between the application complexity and the environment complexity is completed.

We present some of the techniques used, and provide evidence that SPM has reached the goals of performance, scalability and portability for an important set of applications.


Research paper