Microsoft MPI (MS-MPI) is a Microsoft implementation of the [Message Passing Interface standard](https://www.mpi-forum.org) for developing and running parallel applications on the Windows platform.
MS-MPI offers several benefits:
- Ease of porting existing code that uses [MPICH](https://www.mpich.org).
- Security based on Active Directory Domain Services.
- High performance on the Windows operating system.
- Binary compatibility across different types of interconnectivity options.
MS-MPI is MPI 2.2 compliant with the exception of Fortran bindings errata around attributes interop between C and Fortran. MS-MPI implements a subset of features from MPI 3.1 standard:
- Non-blocking collectives,
- RMA,
- MPI shared memory,
- New datatypes,
- Large counts,
- Matched probe.
For the full list of APIs please see [Microsoft MPI Reference](https://docs.microsoft.com/en-us/message-passing-interface/microsoft-mpi).
- [Contact the MS-MPI Team](mailto:askmpi@microsoft.com)
## Microsoft high performance computing resources
- Featured tutorial: [How to compile and run a simple MS-MPI program](https://blogs.technet.com/b/windowshpc/archive/2015/02/02/how-to-compile-and-run-a-simple-ms-mpi-program.aspx)
- Featured guide: [Set up a Windows RDMA cluster with HPC Pack and A8 and A9 instances to run MPI applications](https://azure.microsoft.com/documentation/articles/virtual-machines-windows-hpcpack-cluster-rdma/)
- [Microsoft High Performance Computing for Developers](https://msdn.microsoft.com/en-us/library/ff976568.aspx)
- Update _GFORTRAN_BIN_ in Derectory.Build.props to the install location of GFortran
- [Perl](https://www.perl.org/get.html#win32)
Based on the installed VS/SDK/WDK versions, update _VCToolsVersion_ and _WindowsTargetPlatformVersion_ in Directory.Build.props
Note that the build system uses [CommonBuildToolSet(CBT)](https://commonbuildtoolset.github.io/). You may need to unblock __CBT.core.dll__ (under .build/CBT) depending on your security configurations. Please refer to [CBT documentation](https://commonbuildtoolset.github.io/#/getting-started) for additional details.
## Build
To build, open a __Native Tools Command Prompt for Visual Studio__ and run ``msbuild`` from root folder.