Microsoft MPI v7 Beta is now available

We are happy to announce today the Beta release of the newest version of Microsoft MPI (MS-MPI).

MS-MPI v7 Beta is the pre-release version for the successor to MS-MPI v6 (v6.0.12436, released on 5/12/2015).

You can download a copy of MS-MPI v7 Beta here

This Beta version of MS-MPI v7 includes the following features, improvements, and fixes:

    • Support for the following nonblocking collective operations: MPI_Iallreduce, MPI_Iscatter, MPI_Iallgather, MPI_Iscatterv, MPI_Igatherv (in addition to the already supported MPI_Ibcast, MPI_Ireduce, MPI_Igather, and MPI_Ibarrier). For more details on these APIs please refer to the MPI 3.1 Standard document here
    • Support for configuring port range used for Network Direct connections using the MSMPI_ND_PORT_RANGE environment variable
    • Revamped process management (mpiexec/smpd) that will offer better reliability and performance
    • Performance improvements for collective operations

This Beta version of MS-MPI v7 will also introduce the MS-MPI Launch Service, which allows the launching of MPI processes for local and remote machines with user provided credentials. The MS-MPI redistributable installer will install the MS-MPI launch service under “Manual” mode. To start the service, run the following command:

sc start MSMPILaunchSvc [options].

There are two new options to mpiexec ( -pwd and -savecreds) that will allow you to provide the necessary credentials for launching processes using the launch service. The -pwd option allows specifying the password for the submitting users in non-interactive scenarios (e.g. using a script or scheduled task). Note that in this case the password is provided in clear text. The -savecreds option causes the provided credentials (if specified with -pwd) to be securely stored on all the hosts specified in the mpiexec command line.

For example, the following command will prompt for the user's password and ask the user if he or she wants to store it on the specified machines "host1" and "host2", then launch three processes, one on the machine named “host1” and two on the machine named “host2”:

mpiexec –hosts 2 host1 1 host2 2 –wdir C:\MpiTests mpiapp.exe [parameters]

As another example, the following command will authenticate the user using the provided password, store it on the specified machines "host1" and "host2", then launch three processes, one on the machine named “host1” and two on the machine named “host2”:

mpiexec –hosts 2 host1 1 host2 2 –wdir C:\MpiTests -pwd <password> -savecreds mpiapp.exe [parameters]

Once you run mpiexec with the -savecreds option on a set of nodes, you will not have to provide the password on subsequent runs for those nodes unless the password is changed. If the user is running in interactive mode, mpiexec will prompt for the password if the launch service is running and the password has not been provided or previously saved with the -savecreds option.

These are the options you can pass to the launch service at service start:

-p | -port <port> Change the port that launch service is listening on.

-g | -group <group name> Only allow members of the specified group to run MPI applications.  If not specified, the default is authenticated users.

Important: This software is a pre-release version for evaluation purposes only, and it should not be used in a production environment. Features and behavior may change before the final release.

Note: The SDK components for MS-MPI (headers and libraries) ship separately from the redistributable package binary files. The SDK components are also available in this Beta release.

To learn more about MS-MPI and ways to contact us, see Microsoft MPI on MSDN