pPython seeks to provide a parallel capability that provides good speed-up without sacrificing the ease of programming in Python by implementing partitioned global array semantics (PGAS) on top of a simple file-based messaging library (PythonMPI) in pure Python. pPython follows a SPMD (single program multiple data) model of computation. pPython runs on a single-node (e.g., a laptop) running Windows, Linux, or MacOS operating systems or on any combination of heterogeneous systems that support Python, including on a cluster through a Slurm scheduler interface so that pPython can be executed in a massively parallel computing environment. It is interesting to see what performance pPython can achieve compared to the traditional socket-based MPI communication because of its unique file-based messaging implementation. In this paper, we present the point-to-point and collective communication performances of pPython and compare them with those obtained by using mpi4py with OpenMPI. For large messages, pPython demonstrates comparable performance as compared to mpi4py.
翻译:pPython旨在通过纯Python在基于文件的简单消息传递库(PythonMPI)之上实现分区全局数组语义(PGAS),从而提供在不牺牲Python编程简便性的前提下具有良好加速效果的并行能力。pPython遵循SPMD(单程序多数据)计算模型。该模型可在运行Windows、Linux或macOS操作系统的单节点(如笔记本电脑)上运行,也可在支持Python的任意异构系统组合上运行,包括通过Slurm调度器接口在集群中运行,从而使pPython能够在大规模并行计算环境中执行。由于其独特的基于文件的消息传递实现方式,考察pPython相较于传统基于套接字的MPI通信能达到何种性能颇具意义。本文展示了pPython的点对点与集合通信性能,并将其与使用OpenMPI的mpi4py所得结果进行了比较。对于大尺寸消息,pPython展现出与mpi4py相当的性能。