DocumentCode :
2958739
Title :
PGAS for Distributed Numerical Python Targeting Multi-core Clusters
Author :
Kristensen, Mads Ruben Burgdorff ; Zheng, Yili ; Vinter, Brian
Author_Institution :
Niels Bohr Inst., Univ. of Copenhagen, Copenhagen, Denmark
fYear :
2012
fDate :
21-25 May 2012
Firstpage :
680
Lastpage :
690
Abstract :
In this paper we propose a parallel programming model that combines two well-known execution models: Single Instruction, Multiple Data (SIMD) and Single Program, Multiple Data (SPMD). The combined model supports SIMD-style data parallelism in global address space and supports SPMD-style task parallelism in local address space. One of the most important features in the combined model is that data communication is expressed by global data assignments instead of message passing. We implement this combined programming model into Python, making parallel programming with Python both highly productive and performing on distributed memory multi-core systems. We base the SIMD data parallelism on DistNumPy, an auto-parallel zing version of the Numerical Python (NumPy) package that allows sequential NumPy programs to run on distributed memory architectures. We implement the SPMD task parallelism as an extension to DistNumPy that enables each process to have direct access to the local part of a shared array. To harvest the multi-core benefits in modern processors we exploit multi-threading in both SIMD and SPMD execution models. The multi-threading is completely transparent to the user -- it is implemented in the runtime with Open MP and by using multi-threaded libraries when available. We evaluate the implementation of the combined programming model with several scientific computing benchmarks using two representative multi-core distributed memory systems -- an Intel Nehalem cluster with Infini band interconnects and a Cray XE-6 supercomputer -- up to 1536 cores. The benchmarking results demonstrate scalable good performance.
Keywords :
data communication; distributed memory systems; message passing; multi-threading; Cray XE-6 supercomputer; DistNumPy; Infini band interconnects; Intel Nehalem cluster; Numerical Python package; PGAS; SIMD data parallelism; SIMD execution model; SIMD-style data parallelism; SPMD execution model; SPMD-style task parallelism; auto-parallel zing version; data communication; distributed memory architectures; distributed memory multicore system; distributed numerical Python targeting multicore clusters; global address space; global data assignment; local address space; message passing; multicore benefit; multithreading; parallel programming model; sequential NumPy program; shared array; single instruction multiple data; single program multiple data; Arrays; Computational modeling; Data models; Libraries; Parallel processing; Parallel programming; Parallel Computing; Parallel Programming; Python; Scientific Computing;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Parallel & Distributed Processing Symposium (IPDPS), 2012 IEEE 26th International
Conference_Location :
Shanghai
ISSN :
1530-2075
Print_ISBN :
978-1-4673-0975-2
Type :
conf
DOI :
10.1109/IPDPS.2012.67
Filename :
6267869
Link To Document :
بازگشت