Versionshinweise zu Microsoft MPI
Dieses Dokument enthält die Versionshinweise für die aktuellen Versionen von Microsoft MPI (MS-MPI) für Windows.
MS-MPI v10.1.3 (Juni 2023)
MS-MPI v10.1.3 enthält die folgenden Verbesserungen und Fehlerbehebungen. Laden Sie MS-MPI v10.1.3 aus dem Microsoft Download Center herunter.
- Korrektur zum Zuweisen von Affinitäten zu mpi-Workerprozessen unter Windows 11 und Windows Server 2022. In diesen OSes werden Affinitäten über CPU-Sätze und nicht über Affinitätsmasken zugewiesen.
Das MS-MPI v10.1.3 SDK ist auch auf nuGet verfügbar.
MS-MPI v10.1.2 (November 2019)
MS-MPI v10.1.2 enthält die folgenden Verbesserungen und Fehlerbehebungen. Laden Sie MS-MPI v10.1.2 aus dem Microsoft Download Center herunter.
- Signierte ausführbare Benchmarkdateien
- Binärdateien, die zur Erfüllung der APIScan-Anforderungen erstellt wurden
Das MS-MPI v10.1.2 SDK ist auch auf nuGet verfügbar.
MS-MPI v10.1.1 (September 2019)
MS-MPI v10.1.1 enthält die folgenden Verbesserungen und Fehlerbehebungen. Laden Sie MS-MPI v10.1.1 aus dem Microsoft Download Center herunter.
- An MsmpiLaunchSvc übergebene Unterstützungsargumente
- Beheben des Fehlers bei der Analyse doppelter Anführungszeichen von mpiexec
- Korrektur für SAL-Anmerkungen
- Option zum Deinstallieren des msmpi-Installationsprogramms über eine Befehlszeile hinzufügen
- Korrektur für die nicht konforme Ganzzahldarstellung in der mpif-Headerdatei, die zu Fehlern mit gfortran führte
Das MS-MPI v10.1.1 SDK ist auch auf nuGet verfügbar.
MS-MPI v10.0 (Oktober 2018)
MS-MPI v10.0 enthält die folgenden Verbesserungen und Fehlerbehebungen. Laden Sie MS-MPI v10.0 aus dem Microsoft Download Center herunter.
Unterstützung aller RMA-Vorgänge
Unterstützung für die Verwendung mehrerer Prozessorgruppen
Einschließen von IMB-MPI1- und IMB-NBC-Benchmarks
Option hinzufügen in mpiexec/smpd zum Umleiten von Protokollen
Entfernen nicht standardmäßiger systeminterner/typen zur Unterstützung der Nutzung mit MinGW/gFortran
Beheben eines Fehlers bei der Erstellung des Kernabbilds
Beheben eines Fehlers im MPI_THREAD_MULTIPLE Modus
Behebung eines Fehlers in MSMPILaunchSvc, der das Speichern von Anmeldeinformationen verhindert
Das MS-MPI v10.0 SDK ist auch auf nuGet verfügbar.
MS-MPI v9.0.1 (März 2018)
MS-MPI v9.0.1 enthält die folgenden Verbesserungen und Fehlerbehebungen. Laden Sie MS-MPI v9.0.1 aus dem Microsoft Download Center herunter.
Behebung eines Fehlers im mpiexec-Code , der während des Starts auf Windows 7-Systemen einen Deadlock verursacht.
Behebung eines Fehlers, der verhindert, dass smpd Prozesse über alle Prozessorgruppen hinweg erzeugt.
Korrektur für Rückgabewerte für MPI_Win_Get_Attr für dynamisches Fenster.
Behebung eines Fehlers während der Erstellung von Named Pipe in smpd.
MS-MPI v9.0 (Februar 2018)
MS-MPI v9.0 enthält die folgenden neuen Features, Verbesserungen und Fehlerbehebungen.
Unterstützung für MPI_Win_allocate.
Unterstützung für MPI_Win_create_dynamic, MPI_Win_attach und MPI_Win_detach.
Unterstützung für MPI_Win_flush.
Unterstützung für MPI_NO_OP.
Teilweise Unterstützung für MPI_Rput, MPI_Rget und MPI_Raccumulate.
Ein Fehler bei der RMA-Fehlerberichterstattung.
Ein Fehler in MS-MPI v7 und v8, der unter bestimmten Bedingungen einen Deadlock für MPI_Finalize verursacht.
Das MS-MPI v9.0 SDK ist auch auf nuGet verfügbar.
MS-MPI v8.1 (Juni 2017)
MS-MPI v8.1 enthält die folgenden neuen Features, Verbesserungen und Fehlerbehebungen.
Unterstützung für MPI_Comm_spawn und MPI_Comm_spawn_multiple.
Unterstützt Unicode mpiexec-Befehlszeilenargumente und Anwendungsbefehlszeilen.
Unterstützung des Fallbacks auf NTLM für MS-MPI-Laufzeitsicherheitsanforderungen.
Unterstützung mehrerer Prozessorgruppen beim Ausführen des smpd-Daemons oder des MS-MPI-Startdiensts.
Ein Fehler in MS-MPI v8, der bei Verwendung von Kollektiven zu Abstürzen aufgrund eines Überlaufs führen kann.
Ein Fehler in MS-MPI v8, der zu einem Deadlock in MPI_Alltoallv führen kann.
Ein Fehler in MS-MPI v8, der ein undefiniertes Verhalten beim Umgang mit großen Dateien verursacht.
Das MS-MPI v8.1 SDK ist auch auf nuGet verfügbar.
MS-MPI v8 (Januar 2017)
MS-MPI v8 enthält die folgenden neuen Features, Verbesserungen und Fehlerbehebungen.
Vollständige Unterstützung für alle nicht blockierenden Kollektive.
Unterstützung für MPI_Reduce_scatter_block.
Leistungsverbesserung für MPI_Alltoallv und MPI_Alltoallw.
Fehler in MS-MPI v7, der zu fehlenden Informationen in der Ereignisquelle für den MSMPI-Startdienst führt
Ein Fehler in MS-MPI v7.1, der zu einem Hängenbleiben des MSMPI-Startdiensts führt.
Ein Fehler in MS-MPI v7, der zu einer fehlerhaften Portzeichenfolge führen kann, die von MPI_Open_port zurückgegeben wird.
Das MS-MPI v8 SDK ist auch auf nuGet verfügbar.
MS-MPI v7.1 (Juni 2016)
MS-MPI v7.1 enthält die folgenden wichtigen Verbesserungen und Fehlerbehebungen für MS-MPI v7.
Setup ist jetzt resilienter und schlägt nicht fehl, wenn vorherige Deinstallationen die Registrierung nicht erfolgreich sauber.
Ein Fehler in MS-MPI v7 wurde behoben, der dazu führt, dass Aufträge fehlschlagen, wenn eine große Anzahl von MPI-Aufträgen gleichzeitig auf demselben Knotensatz ausgeführt wird.
Die Authentifizierung greift automatisch auf NTLM zurück, wenn die Kerberos-Authentifizierung in einer Umgebung mit teilweiser oder falsch konfigurierter Kerberos-Unterstützung fehlschlägt.
mpiexec unterstützt Unicode-Zeichen in der Befehlszeile und verfügt nicht mehr über einen hartcodierten Grenzwert für die Befehlszeilenlänge. Die Schreibweise für lange Pfade (\\?\) wird ebenfalls unterstützt.
Das MS-MPI v7.1 SDK ist auch auf nuGet verfügbar.
MS-MPI v7 (November 2015)
MS-MPI v7 ist der Nachfolger des MS-MPI v6. Laden Sie MS-MPI v7 aus dem Microsoft Download Center herunter.
Neue Funktionen
MS-MPI v7 enthält die folgenden neuen Features, Verbesserungen und Fehlerbehebungen.
Unterstützung für zusätzliche nicht blockierende Sammelvorgänge: MPI_Iallreduce, MPI_Iscatter, MPI_Iallgather, MPI_Iscatterv und MPI_Igatherv. Diese werden zusätzlich zu den bereits unterstützten MPI_Ibcast, MPI_Ireduce, MPI_Igather und MPI_Ibarrier unterstützt.
Unterstützung für das Konfigurieren des Portbereichs für Direkte Netzwerkverbindungen mithilfe der umgebungsvariablen MSMPI_ND_PORT_RANGE
Überarbeitete Prozessverwaltung (mpiexec/smpd) für bessere Zuverlässigkeit und Leistung
Leistungsverbesserungen für kollektive Vorgänge
MPI-Startdienst : MS-MPI v7 führt den MS-MPI-Startdienst ein, der das Starten von MPI-Prozessen für lokale und Remotecomputer mit vom Benutzer bereitgestellten Anmeldeinformationen ermöglicht. Das verteilbare MS-MPI-Paket installiert den MS-MPI-Startdienst im manuellen Modus. Führen Sie den folgenden Befehl aus, um den Dienst zu starten:
sc start MSMPILaunchSvc [options]
Dies sind die Optionen, die Sie beim Start des Diensts an den Startdienst übergeben können:
-p | -port <:> Ändern Sie den Port, an dem der Startdienst lauscht.
-g | -group <group name> : Lassen Sie nur Mitgliedern der angegebenen Gruppe das Ausführen von MPI-Anwendungen zu. Wenn nicht angegeben, werden authentifizierte Benutzer standardmäßig verwendet.
Neue mpiexec-Optionen für den Startdienst : Es gibt zwei neue Optionen für mpiexec (-pwd und -savecreds), mit denen Sie die erforderlichen Anmeldeinformationen zum Starten von Prozessen mithilfe des Startdiensts bereitstellen können. Die Option -pwd ermöglicht die Angabe des Kennworts für die übermittelnden Benutzer in nicht interaktiven Szenarien (z. B. mithilfe eines Skripts oder einer geplanten Aufgabe). In diesem Fall wird das Kennwort in Klartext angegeben. Die Option -savecreds bewirkt, dass die bereitgestellten Anmeldeinformationen (sofern mit -pwd angegeben) sicher auf allen Hosts gespeichert werden, die in der mpiexec-Befehlszeile angegeben sind.
Der folgende Befehl fragt beispielsweise nach dem Kennwort des Benutzers und fragt den Benutzer, ob er es auf den angegebenen Computern host1 und host2 speichern möchte, und startet dann drei Prozesse, einen auf host1 und zwei auf host2:
mpiexec –hosts 2 host1 1 host2 2 –wdir C:\MpiTests mpiapp.exe [parameters]
Als weiteres Beispiel authentifiziert der folgende Befehl den Benutzer mit dem angegebenen Kennwort, speichert ihn auf den angegebenen Computern host1 und host2 und startet dann drei Prozesse, einen auf host1 und zwei auf host2:
mpiexec –hosts 2 host1 1 host2 2 –wdir C:\MpiTests -pwd <password> -savecreds mpiapp.exe [parameters]
Nachdem Sie mpiexec mit der Option -savecreds auf einer Gruppe von Knoten ausgeführt haben, müssen Sie das Kennwort nicht bei nachfolgenden Ausführungen für diese Knoten angeben, es sei denn, das Kennwort wird geändert. Wenn der Benutzer im interaktiven Modus ausgeführt wird, fordert mpiexec das Kennwort ein, wenn der Startdienst ausgeführt wird und das Kennwort nicht angegeben oder zuvor mit der Option -savecreds gespeichert wurde.
HPC Pack-Kompatibilität
MS-MPI v7 ist mit HPC Pack 2012 R2 und höher kompatibel. Wenn Sie eine kompatible Version von HPC Pack mit einer früheren Version von MS-MPI ausführen, können Sie ms-MPI auf v7 aktualisieren.
MS-MPI v6 (Mai 2015)
MS-MPI v6 ist der Nachfolger des verteilbaren MS-MPI v5-Pakets (veröffentlicht im November 2014).
Neue Funktionen
MS-MPI v6 enthält die folgenden neuen Features, Verbesserungen und Korrekturen.
Nicht blockierende Sammelvorgänge , einschließlich MPI_Ibcast, MPI_Ireduce, MPI_Igather und MPI_Ibarrier.
Unterstützung der Affinität mit mehreren Aufträgen , sodass mehrere affinitierte MPI-Aufträge auf einem einzelnen Computer nebeneinander existieren können, ohne die Kerne, auf denen sie ausgeführt werden, zu überlappen. Die MPI-Runtime erkennt nun, dass vorhandene Aufträge an Kerne angeheftet sind, und startet nachfolgende Aufträge auf Kernen, die derzeit nicht verwendet werden.
Das Feature wird als neue Option für mpiexec (-affinity_auto oder –aa) verfügbar gemacht und ist sowohl für Auftragsplaner wie Microsoft HPC Pack als auch für den eigenständigen SDK-Modus konzipiert.
Beispielsweise können Sie die folgende Befehlszeile verwenden, um zwei 8 Kernaufträge auf einem einzelnen Computer mit 16 Kernen auszuführen:
mpiexec –cores 8 –affinity_auto –affinity_layout sequential myapp.exe
odermpiexec –c 8 –aa –al seq myapp.exe
Unterstützung für Multithreadanwendungen durch Aktivieren der Verwendung von MPI_THREAD_MULTIPLE beim Aufrufen von MPI_Init_thread. Dies ist so konzipiert, dass Hybridanwendungen, die OMP oder andere Threadingmodelle verwenden, die MPI-Runtime einfacher nutzen können.
Der mindestens unterstützte Server für dieses Feature ist Windows Server 2012. Der mindestens unterstützte Client für dieses Feature ist Windows 8.
Neue Features aus demMPI 3.0-Standard :
- Unterstützung für MPI_Mprobe, MPI_Mrecv, MPI_Improbe und MPI_Imrecv
- Unterstützung für MPI_COUNT, damit große Datentypen ordnungsgemäß in MPI_STATUS Strukturen dargestellt werden können
- Unterstützung für MPI_Type_create_hindexed_block
- Unterstützung für MPI_Dist_graph_create, MPI_Dist_graph_create_adjacent, MPI_Dist_graph_neighbors und MPI_Dist_graph_neighbors_count
HPC Pack-Kompatibilität
MS-MPI v6 ist mit HPC Pack 2012 R2 und höher kompatibel. Wenn Sie eine kompatible Version von HPC Pack mit einer früheren Version von MS-MPI ausführen, können Sie MS-MPI auf v6 aktualisieren.
Änderungen an den Standardeinstellungen
MS-MPI v6 ändert die folgenden Mpiexec-Standardeinstellungen :
- MSMPI_ND_ZCOPY_THRESHOLD auf -1 festgelegt ist, deaktivieren Sie zcopy. Dies kann durch Festlegen von MSMPI_ND_ZCOPY_THRESHOLD=0 in der mpiexec-Befehlszeile oder über cluscfg setenvs (wenn Sie Microsoft HPC Pack verwenden) erneut aktiviert werden.
- MSMPI_HA_COLLECTIVE ist auf alle festgelegt, sodass hierarchische Kollektive standardmäßig aktiviert werden. Dies kann deaktiviert werden, indem Sie MSMPI_HA_COLLECTIVE=off festlegen, erneut über die mpiexec-Befehlszeile oder extern.
Veraltete Features
Die integrierte Autooptimierungsfunktion in dieser Version wird mit der Absicht eingestellt, den Autotuner in einem kommenden Release in ein separates Hilfsprogramm zu verschieben.