Note sulla versione di Microsoft MPI

Questo documento contiene le note sulla versione per le versioni correnti di Microsoft MPI (MS-MPI) per Windows.

MS-MPI v10.1.3 (giugno 2023)

MS-MPI v10.1.3 include i miglioramenti e le correzioni seguenti. Scaricare MS-MPI v10.1.3 dall'Area download Microsoft.

  • Correzione per l'assegnazione di affinità ai processi di lavoro mpi in Windows 11 e Windows Server 2022. In queste affinità dei sistemi operativi vengono assegnate tramite set di CPU e non tramite le maschere di affinità.

MS-MPI v10.1.3 SDK è disponibile anche in nuget.

MS-MPI v10.1.2 (novembre 2019)

MS-MPI v10.1.2 include i miglioramenti e le correzioni seguenti. Scaricare MS-MPI v10.1.2 dall'Area download Microsoft.

  • Eseguibili di benchmark firmati
  • File binari compilati per soddisfare i requisiti di APIScan

MS-MPI v10.1.2 SDK è disponibile anche in nuget.

MS-MPI v10.1.1 (settembre 2019)

MS-MPI v10.1.1 include i miglioramenti e le correzioni seguenti. Scaricare MS-MPI v10.1.1 dall'Area download Microsoft.

  • Argomenti di supporto passati a MsmpiLaunchSvc
  • Correggere il bug nell'analisi delle virgolette doppie mpiexec
  • Correzione per le annotazioni SAL
  • Aggiungere l'opzione per il programma di installazione msmpi da disinstallare da una riga di comando
  • Correzione per la rappresentazione integer non conforme nel file di intestazione mpif che comporta errori con gfortran

MS-MPI v10.1.1 SDK è disponibile anche in nuget.

MS-MPI v10.0 (ottobre 2018)

MS-MPI v10.0 include i miglioramenti e le correzioni seguenti. Scaricare MS-MPI v10.0 dall'Area download Microsoft.

  • Supportare tutte le operazioni RMA

  • Supporto per l'uso di più gruppi di processori

  • Includere benchmark IMB-MPI1 e IMB-NBC

  • Aggiungere l'opzione in mpiexec/smpd per reindirizzare i log

  • Rimuovere intrinseci/tipi non standard per supportare l'utilizzo con MinGW/gFortran

  • Correzione di un bug nella creazione del dump principale

  • Correggere un bug in modalità MPI_THREAD_MULTIPLE

  • Correzione di un bug in MSMPILaunchSvc che impedisce il salvataggio delle credenziali

MS-MPI v10.0 SDK è disponibile anche in nuget.

MS-MPI v9.0.1 (marzo 2018)

MS-MPI v9.0.1 include i miglioramenti e le correzioni seguenti. Scaricare MS-MPI v9.0.1 dall'Area download Microsoft.

  • Correzione di un bug nel codice mpiexec che causa un deadlock durante l'avvio nei sistemi Windows 7.

  • Correzione di un bug che impedisce a smpd di generare processi in tutti i gruppi di processori.

  • Correzione per i valori restituiti per MPI_Win_Get_Attr per la finestra dinamica.

  • Correzione di un bug durante la creazione di named pipe in smpd.

MS-MPI v9.0 (febbraio 2018)

MS-MPI v9.0 include le nuove funzionalità, i miglioramenti e le correzioni seguenti.

  • Supporto per MPI_Win_allocate.

  • Supporto per MPI_Win_create_dynamic, MPI_Win_attach e MPI_Win_detach.

  • Supporto per MPI_Win_flush.

  • Supporto per MPI_NO_OP.

  • Supporto parziale per MPI_Rput, MPI_Rget e MPI_Raccumulate.

  • Bug nella segnalazione errori RMA.

  • Bug in MS-MPI v7 e v8 che causa il deadlock in MPI_Finalize in determinate condizioni.

  • MS-MPI v9.0 SDK è disponibile anche in nuget.

MS-MPI v8.1 (giugno 2017)

MS-MPI v8.1 include le nuove funzionalità, i miglioramenti e le correzioni seguenti.

  • Supporto per MPI_Comm_spawn e MPI_Comm_spawn_multiple.

  • Supportare gli argomenti della riga di comando Unicode mpiexec e la riga di comando delle applicazioni.

  • Supporto del fallback a NTLM per i requisiti di sicurezza del runtime MS-MPI.

  • Supportare più gruppi di processori quando si esegue il daemon smpd o il servizio di avvio MS-MPI.

  • Bug in MS-MPI v8 che potrebbe causare arresti anomali a causa dell'overflow quando si usano i collettivi.

  • Bug in MS-MPI v8 che potrebbe causare un deadlock in MPI_Alltoallv.

  • Bug in MS-MPI v8 che causa un comportamento indefinito quando si gestiscono file di grandi dimensioni.

  • MS-MPI v8.1 SDK è disponibile anche in nuget.

MS-MPI v8 (gennaio 2017)

MS-MPI v8 include le nuove funzionalità, i miglioramenti e le correzioni seguenti.

  • Supporto completo per tutti i gruppi non bloccanti.

  • Supporto per MPI_Reduce_scatter_block.

  • Miglioramento delle prestazioni per MPI_Alltoallv e MPI_Alltoallw.

  • Bug in MS-MPI v7 che causa informazioni mancanti nell'origine evento per il servizio di avvio MSMPI

  • Bug in MS-MPI v7.1 che causa un blocco nel servizio di avvio MSMPI.

  • Un bug in MS-MPI v7 che può comportare una stringa di porta non valida restituita da MPI_Open_port.

  • MS-MPI v8 SDK è disponibile anche in nuget.

MS-MPI v7.1 (giugno 2016)

MS-MPI v7.1 include i miglioramenti e le correzioni più importanti seguenti a MS-MPI v7.

  • Il programma di installazione è ora più resiliente e non avrà esito negativo quando le disinstallazioni precedenti non hanno eseguito correttamente la pulizia del Registro di sistema.

  • È stato risolto un bug in MS-MPI v7 che causa l'esito negativo dei processi quando un numero elevato di processi MPI viene eseguito simultaneamente nello stesso set di nodi.

  • L'autenticazione esegue automaticamente il fallback a NTLM se l'autenticazione Kerberos non riesce in un ambiente con supporto Kerberos parziale o non configurato correttamente.

  • mpiexec supporta i caratteri Unicode nella riga di comando e non ha più un limite hardcoded per la lunghezza della riga di comando. È supportata anche la notazione percorso lungo (\\?\).

  • MS-MPI v7.1 SDK è disponibile anche in nuget.

MS-MPI v7 (novembre 2015)

MS-MPI v7 è il successore di MS-MPI v6. Scaricare MS-MPI v7 dall'Area download Microsoft.

Nuove funzionalità

MS-MPI v7 include le nuove funzionalità, i miglioramenti e le correzioni seguenti.

  • Supporto per operazioni collettive aggiuntive non bloccate: MPI_Iallreduce, MPI_Iscatter, MPI_Iallgather, MPI_Iscatterv e MPI_Igatherv. Oltre ai MPI_Ibcast, MPI_Ireduce, MPI_Igather e MPI_Ibarrier già supportati.

  • Supporto per la configurazione dell'intervallo di porte per le connessioni di rete diretta tramite la variabile di ambiente MSMPI_ND_PORT_RANGE

  • Gestione dei processi rinnovata (mpiexec/smpd) per migliorare l'affidabilità e le prestazioni

  • Miglioramenti delle prestazioni per le operazioni collettive

  • Servizio di avvio MPI : MS-MPI v7 introduce il servizio di avvio MS-MPI, che consente l'avvio di processi MPI per computer locali e remoti con credenziali fornite dall'utente. Il pacchetto ridistribuibile MS-MPI installa il servizio di avvio MS-MPI in modalità manuale. Per avviare il servizio, eseguire il comando seguente:

    sc start MSMPILaunchSvc [options]

    Queste sono le opzioni che è possibile passare al servizio di avvio all'avvio del servizio:

    • -p | -port <-> Modificare la porta su cui è in ascolto il servizio di avvio.

    • -g | -group group <name> : consente solo ai membri del gruppo specificato di eseguire applicazioni MPI. Se non specificato, l'impostazione predefinita è gli utenti autenticati.

  • Nuove opzioni mpiexec per il servizio di avvio : sono disponibili due nuove opzioni per mpiexec (-pwd e -savecreds) che consentono di fornire le credenziali necessarie per l'avvio dei processi tramite il servizio di avvio. L'opzione -pwd consente di specificare la password per l'invio di utenti in scenari non interattivi, ad esempio usando uno script o un'attività pianificata. In questo caso la password viene specificata in testo non crittografato. L'opzione -savecreds determina l'archiviazione sicura delle credenziali specificate con -pwd in tutti gli host specificati nella riga di comando mpiexec.

    Ad esempio, il comando seguente richiederà la password dell'utente e chiederà all'utente se vuole archiviarlo nei computer specificati host1 e host2, quindi avviare tre processi, uno in host1 e due in host2:

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

    Come altro esempio, il comando seguente autentica l'utente usando la password fornita, lo archivia nei computer specificati host1 e host2, quindi avvia tre processi, uno in host1 e due in host2:

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

    Dopo aver eseguito mpiexec con l'opzione -savecreds in un set di nodi, non è necessario specificare la password nelle esecuzioni successive per tali nodi, a meno che la password non venga modificata. Se l'utente è in esecuzione in modalità interattiva, mpiexec richiede la password se il servizio di avvio è in esecuzione e la password non è stata specificata o salvata in precedenza con l'opzione -savecreds .

Compatibilità di HPC Pack

MS-MPI v7 è compatibile con HPC Pack 2012 R2 e versioni successive. Se si esegue una versione compatibile di HPC Pack con una versione precedente di MS-MPI, è possibile aggiornare MS-MPI a v7.

MS-MPI v6 (maggio 2015)

MS-MPI v6 è il successore del pacchetto ridistribuibile MS-MPI v5 (rilasciato a novembre 2014).

Nuove funzionalità

MS-MPI v6 include le nuove funzionalità, i miglioramenti e le correzioni seguenti.

  • Operazioni collettive non bloccate , tra cui MPI_Ibcast, MPI_Ireduce, MPI_Igather e MPI_Ibarrier.

  • Supporto dell'affinità multi-processo in modo che più processi MPI affini possano coesistere in un singolo computer senza sovrapporre i core in cui vengono eseguiti. Il runtime MPI rileva ora che sono presenti processi aggiunti ai core e avvierà i processi successivi nei core che non sono attualmente in uso.

    La funzionalità viene esposta come nuova opzione a mpiexec (-affinity_auto o –aa) ed è progettata per funzionare sia in utilità di pianificazione dei processi, ad esempio Microsoft HPC Pack che in modalità SDK autonoma.

    Ad esempio, per eseguire due processi core a 8 core in un singolo computer a 16 core, è possibile usare la riga di comando seguente:

    mpiexec –cores 8 –affinity_auto –affinity_layout sequential myapp.exe o

    mpiexec –c 8 –aa –al seq myapp.exe

  • Supporto per le applicazioni multithread abilitando l'uso di MPI_THREAD_MULTIPLE quando si chiama MPI_Init_thread. Questa funzionalità è progettata per consentire alle applicazioni ibride di usare OMP o altri modelli di threading per sfruttare più facilmente il runtime MPI.

    Il server minimo supportato per questa funzionalità è Windows Server 2012. Il client minimo supportato per questa funzionalità è Windows 8.

  • Nuove funzionalità dellostandard MPI 3.0 , tra cui:

Compatibilità di HPC Pack

MS-MPI v6 è compatibile con HPC Pack 2012 R2 e versioni successive. Se si esegue una versione compatibile di HPC Pack con una versione precedente di MS-MPI, è possibile aggiornare MS-MPI alla versione 6.

Modifiche alle impostazioni predefinite

MS-MPI v6 modifica le impostazioni predefinite mpiexec seguenti:

  • MSMPI_ND_ZCOPY_THRESHOLD è impostato su -1, disabilitando zcopy. Può essere riabilitabile impostando MSMPI_ND_ZCOPY_THRESHOLD=0 nella riga di comando mpiexec o tramite cluscfg setenvs (se si usa Microsoft HPC Pack).
  • MSMPI_HA_COLLECTIVE è impostato su tutti, abilitando i collettivi gerarchici per impostazione predefinita. Questa opzione può essere disabilitata impostando MSMPI_HA_COLLECTIVE=off, anche in questo caso tramite la riga di comando mpiexec o esternamente.

Funzionalità deprecate

La funzionalità di ottimizzazione automatica predefinita in questa versione viene deprecata con l'intenzione di spostare il tuner automatico in un'utilità separata in una versione futura.

Risorse della community

Microsoft MPI

Informazioni di riferimento su MPI