MHPM: Multi-Scale Hybrid Programming Model: A Flexible Parallelization Methodology
- 1 June 2012
Abstract
The continuous proliferation of multicore architectures has placed developers under great pressure to parallelize their applications accordingly with what such platforms can offer. Unfortunately, traditional low-level programming models exacerbate the difficulties of building large and complex parallel applications. High-level parallel programming models are in high-demand as they reduce the burdens on 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.Keywords
This publication has 16 references indexed in Scilit:
- A survey of algorithmic skeleton frameworks: high‐level structured parallel programming enablersSoftware: Practice and Experience, 2010
- Skandium: Multi-core Programming with Algorithmic SkeletonsPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2010
- The parallelization of video processingIEEE Signal Processing Magazine, 2009
- Multicore software technologiesIEEE Signal Processing Magazine, 2009
- The PARSEC benchmark suitePublished by Association for Computing Machinery (ACM) ,2008
- PVTOL: Providing Productivity, Performance and Portability to DoD Signal Processing Applications on Multicore ProcessorsPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2008
- Task and Conduit Framework for Multi-core SystemsPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2008
- Parallel VSIPL++: An Open Standard Software Library for High-Performance Parallel Signal ProcessingProceedings of the IEEE, 2005
- Bringing skeletons out of the closet: a pragmatic manifesto for skeletal parallel programmingParallel Computing, 2004
- Parallel Huffman decodingPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2002