Implementation of MPI in Python and comparison with other parallel programming techniques - Zulkifli, Asmaliza (2015)
High performance computing becomes more important in many areas by provide fast, reliable and cost effective solutions in many applications. Availability of multi-core system in various platforms ranging from desktop computer to supercomputer enable parallelism to be exploiting by users. Parallel programming provides access to users to optimize resources by applying multi-threading or multi-processing techniques in application development. One of the popular approaches in parallel programming is message passing which is widely used in both distributed and shared memory architecture. Python is a powerful open source programming language that popular among scientific computing committee. It provides flexibility and space for skilled users to create their own environment, and appeal beginners with its object-oriented programming. Python also support parallel programming by adapting message passing paradigm into its language. Few of its MPI implementations are pyMPI, Pypar, MPI for Python (mpi4py) and pypvm. MPI for Python is complies with MPI-2 specification and can be used with other Python modules such as NumPy and Cython to exploit multiple processors. This project will provide detail analysis of current implementation of message passing paradigm in Python and compare it with other popular parallel programming technique. Therefore, it aims to produce a good reference to users especially beginners in developing parallel applications.