MHPM : Multi-Scale Hybrid Programming Model A flexible parallelization Medthodology
Résumé
The continuous proliferation of multicore architectures has placed a great pressure on developers to parallelize their applications accordingly with what such platforms can offer . Unfortunately, traditional low-level programming model exacerbate the difficulties of building large and complex parallel applications. Highlevel parallel programming models are in high-demand as they reduce the burdens of programmers significantly and provide enough abstraction to accommodate hardware heterogeneity. In this paper, we propose a flexible parallelization methodology, and we introduce a new task-based hybrid programming model (MHPM) designed to provide high productivity and expressiveness without sacrificing performance. We show that MHPM allows easy expression of both sequential execution and several types of parallelism including task, data and temporal parallelism at all levels of granularity inside a single structured homogeneous programming model. In order to demonstrate the potential of our approach, we present a pure C++ implementation of MHPM, and we show that, despite its high abstraction, it provides comparable performances to lower-level programming models.