Metalanguage for high-performance computing on hybrid architectures

André Leon Sampaio Gradvohl · IEEE Latin America Transactions · 2014

In high-performance computing, hybrid systems are defined as architectures where shared and distributed memory systems coexist. To explore most of the potential of such systems, programmer usually need more than one programming model simultaneously. For distributed memory systems, the master/worker model with message exchange is commonly used. In that case, the MPI is the most used programming library. On the other hand, for shared memory systems, the fork/join model, as used by PThreads and OpenMP application programming interfaces, are de facto standards. In this paper, I propose a metalanguage to combine both programming models. The metalanguage has annotated statements to specify which parts of code runs in shared memory systems and which others runs in distributed memory systems. A metacompiler will translate the metalanguage and will generate a C code with OpenMP pragmas, PThreads and MPI function calls. As a result, I show that the programs written using metalanguage code are more clean and understandable. Therefore, it is easier to program high-performance computing programs with it.

Read the paper · More papers on PaperTik