MPI Scaling Up for Powerlist Based Parallel Programs

published in Proceedings of the 27th Euromicro International Conference on Parallel, Distributed and Network-Based Processing (PDP 2019), pp. 199-204, DOI: 10.1109/EMPDP.2019.8671597, February 13-15, 2019, Pavia, Italy.

Cite as

Full paper

MPI Scaling Up for Powerlist Based Parallel Programs

Authors

Virginia Niculescu, Darius Bufnea, Adrian Sterca
Department of Computer Science, Faculty of Mathematics and Computer Science, Babeș-Bolyai University of Cluj-Napoca, Romania

Copyright

© 2019 IEEE. Personal use of this material is permitted. Permission from IEEE must be obtained for all other uses, in any current or future media, including reprinting/republishing this material for advertising or promotional purposes, creating new collective works, for resale or redistribution to servers or lists, or reuse of any copyrighted component of this work in other works.

Abstract

Powerlists are recursive data structures that together with their associated algebraic theories could offer both a methodology to design parallel algorithms and parallel programming abstractions to ease the development of parallel applications This has been also proved by a concrete development of such a framework that allows easy, efficient, and reliable implementation of Java parallel programs on shared memory systems.

The paper presents a highly scalable version of this framework by extending it to distributed memory systems based on an MPI implementation. Through this extension we may use the framework to develop Java parallel programs also on distributed memory systems such as clusters. The design of the framework enables flexibility in defining the appropriate execution type depending on the execution system and its characteristics. Therefore, it is possible to choose MPI execution (that also could be combined with multithreading) if the available system includes an MPI platform, or simple multithreading execution.

Examples are given and performance experiments are conducted. The performance analysis of these applications emphasises the utility and the efficiency of this framework extension.

Key words

parallel programming; scaling; recursive structures; Java; MPI; performance; models.

BibTeX bib file

niculescu-2019.bib

References

  1. K. Achatz and W. Schulte, Architecture independent massive parallelization of divide-and-conquer algorithms, Fakultaet fuer Informatik, Universitaet Ulm, 1995.
  2. M. Aldinucci, M. Danelutto and P. Teti, An advanced environment supporting structured parallel programming in Java, Future Gen. Computer Systems, vol. 19, pp. 611-626, 2003.
  3. A. S. Anand and R. K. Shyamasundarn, Scaling computation on GPUs using powerlists, in Proceedings of the 22nd International Conference on High Performance Computing Workshops (HiPCW), Oakland: IEEE, 2015, pp. 34-43.
  4. M. Cole, Algorithmic Skeletons: Structured Management of Parallel Computation, MIT Press, 1989.
  5. D. Caromel and M. Leyton, Fine Tuning Algorithmic Skeletons, Euro-ParParallel Processing, 13th International Euro-Par Conference, Rennes, France, pp. 28-31, 2007.
  6. J. W. Cooley and J. W. Tukey, An algorithm for the machine calculation of complex Fourier series, Math. Comput., vol. 19, pp. 297-301, 1965.
  7. E. Gamma, R. Helm, R. Johnson and J. Vlissides, Design patterns: elements of reusable object-oriented software, Addison-Wesley, 1995.
  8. A. Javed, B. Qamar, M. Jameel, A. Shafi and B. Carpenter, Towards Scalable Java HPC with Hybrid and Native Communication Devices in MPJ Express, International Journal of Parallel Programming (IJPP), 2015 – Springer.
  9. M. Leyton and J. M. Piquer, Skandium: Multi-core Programming with Algorithmic Skeletons, in 18th Euromicro Conference on Parallel, Distributed and Network-based Processing, IEEE, 2010, pp. 289-296.
  10. J. Misra, Powerlist: A structure for parallel recursion, ACM Trans. Program. Lang. Syst., vol. 16, no. 6, pp. 1737-1767, 1994.
  11. V. Niculescu, F. Loulergue, D. Bufnea and A. Sterca, A Java Framework for High Level Parallel Programming using Powerlists, Parallel and Distributed Computing, Applications and Technologies (PDCAT), IEEE, Taipei, Taiwan, 2017, pp. 255-262.
  12. V. Niculescu and F. Loulergue, Transforming powerlist based divide&conquer programs for an improved execution model, in High Level Parallel Programming and Applications (HLPP), Orleans, France, 2018.
  13. O. Vega-Gisbert, J.E. Roman and J.M. Squyres, Design and implementation of Java bindings in Open MPI, Parallel Computing 59, pp. 1-20 (2016).
  14. Intel MPI Library Developer Reference for Linux OS: Java Bindings for MPI-2 Routines, [Online] https://software.intel.com/en-us/mpi-developer-reference-linux-java-bindings-for-mpi-2-routines, accessed: 2018-05-10.

Darius Bufnea