Implementing MPI on Windows: Comparison With Common Approaches on Unix
Commercial HPC applications are often run on clusters that use the Microsoft Windows operating system and need an MPI implementation that runs efficiently in the Windows environment. The MPI developer community, however, is more familiar with the issues involved in implementing MPI in a Unix environment. In this paper, the authors discuss some of the differences in implementing MPI on Windows and Unix, particularly with respect to issues such as asynchronous progress, process management, shared-memory access, and threads. They describe how they implement MPICH2 on Windows and exploit these Windows-specific features while still maintaining large parts of the code common with the Unix version.