• 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