Noncollective Communicator Creation in MPI

MPI communicators abstract communication operations across application modules, facilitating seamless composition of different libraries. In addition, communicators provide the ability to form groups of processes and establish multiple levels of parallelism. Traditionally, communicators have been collectively created in the context of the parent communicator. The recent thrust toward systems at petascale and beyond has brought forth new application use cases, including fault tolerance and load balancing, that highlight the ability to construct an MPI communicator in the context of its new process group as a key capability. However, it has long been believed that MPI is not capable of allowing the user to form a new communicator in this way. We present a new algorithm that allows the user to create such flexible process groups using only the functionality given in the current MPI standard. We explore performance implications of this technique and demonstrate its utility for load balancing in the context of a Markov chain Monte Carlo computation. In comparison with a traditional collective approach, noncollective communicator creation enables a 30% improvement in execution time through asynchronous load balancing.

[1]  Richard L. Graham,et al.  Dynamic Communicators in MPI , 2009, PVM/MPI.

[2]  Sriram Krishnamoorthy,et al.  Integrated Data and Task Management for Scientific Applications , 2008, ICCS.

[3]  William Gropp,et al.  Fault Tolerance in Message Passing Interface Programs , 2004, Int. J. High Perform. Comput. Appl..

[4]  Alex Dickson,et al.  Flow-Dependent Unfolding and Refolding of an RNA by Nonequilibrium Umbrella Sampling. , 2011, Journal of chemical theory and computation.

[5]  Message Passing Interface Forum MPI: A message - passing interface standard , 1994 .

[6]  Theresa L. Windus,et al.  High performance computations using dynamical nucleation theory , 2008 .

[7]  Marat Valiev,et al.  Fast electron correlation methods for molecular clusters without basis set superposition errors. , 2008, The Journal of chemical physics.

[8]  Marco Aldinucci,et al.  Computational Science - ICCS 2008, 8th International Conference, Kraków, Poland, June 23-25, 2008, Proceedings, Part I , 2008, ICCS.

[9]  Jarek Nieplocha,et al.  Advances, Applications and Performance of the Global Arrays Shared Memory Programming Toolkit , 2006, Int. J. High Perform. Comput. Appl..

[10]  Gregory K. Schenter,et al.  Dynamical Nucleation Theory: A New Molecular Approach to Vapor-Liquid Nucleation , 1999 .

[11]  Ian Glendinning,et al.  Parallel and Distributed Processing , 2001, Digital Image Analysis.

[12]  Jack Dongarra,et al.  Recent Advances in Parallel Virtual Machine and Message Passing Interface, 15th European PVM/MPI Users' Group Meeting, Dublin, Ireland, September 7-10, 2008. Proceedings , 2008, PVM/MPI.

[13]  Bryan Carpenter,et al.  ARMCI: A Portable Remote Memory Copy Libray for Ditributed Array Libraries and Compiler Run-Time Systems , 1999, IPPS/SPDP Workshops.

[14]  Ewing Lusk,et al.  Fault Tolerance in MPI Programs , 2009 .