The
Pipelining Communications Middleware (PCM) approach provides a flexible, simple, high-performance mechanism to connect parallel programs running on high performance
computers or clusters. This approach enables parallel programs to communicate and coordinate with each other to address larger
problems than a single program can solve. The motivation behind the PCM approach grew out of using files as an intermediate
transfer stage between processing by different programs. Our approach supersedes this practice by using streaming data set
transfers as an “online” communication channel between simultaneously active parallel programs. Thus, the PCM approach addresses
the issue of sending data from a parallel program to another parallel program without exposing details such as number of nodes
allocated to the program, specific node identifiers, etc. This paper outlines and analyzes our proposed computation and communication
model to provide efficient and convenient communications between parallel programs running on high performance computing systems
or clusters. We also discuss the PCM challenges as well as current PCM implementations. Our approach achieves scalability,
transparency, coordination, synchronization and flow control, and efficient programming. We experimented with data parallel
applications to evaluate the performance of the PCM approach. Our experiment results show that the PCM approach achieves nearly
ideal throughput that scales linearly with the underlying network medium speed. PCM performs well with small and large data
transfers. Furthermore, our experiments show that network infrastructure plays the most significant role in the PCM performance.
Keywords Cluster communications - Pipelining - MPI - Middleware