Oggi vi presentiamo un ospite post da Torsten Hoefler , la modellazione delle prestazioni e portare Simulazione del progetto Blue Waters a NCSA, e Adjunct Assistant Professor presso il dipartimento di Computer Science presso la University of Illinois a Urbana-Champaign (UIUC).
Sono sicuro che tutti sentito parlare di topologie di rete, come ad esempio in 2D o 3D tori, grasso-alberi, Kautz reti e reti di Clos. Si può sostenere che anche i multi-core nodi (se eseguito in "MPI ovunque" mode) sono un separato "rete gerarchica". E probabilmente anche chiesti come mappare la vostra comunicazione su rete, topologie in modo portatile.
MPI offre il supporto per tale mappatura ottimizzata dai tempi antichi di MPI-1. La funzionalità topologia processo se probabilmente uno degli aspetti più trascurati utile di MPI. Dobbiamo ammettere che aveva alcuni problemi ed è stato maldestro da usare, ma è stato infine fissato in MPI-2.2.
Ma quali sono le topologie di processo? Beh, come dice il nome, un utente può dire MPI sulla topologia logica di comunicazione (il flusso di messaggi tra processi) del suo lavoro MPI.L'utente può quindi richiedere le informazioni che metteva in MPI, che non sembra affatto utile.Tuttavia, la caratteristica più utile è che si può richiedere una mappatura ottimizzata dei processi in esecuzione a ranghi MPI nella topologia appena creato. La biblioteca restituisce semplicemente una nuova numerazione dei ranghi nella comunicatore creato che ottimizza la mappatura dei ranghi nella topologia logica per l'architettura del sistema sottostante.
E 'ormai chiaro che questa caratteristica è utile solo per relativamente statici topologie. Ma quante applicazioni fai a sapere che comunicano in strutture molto regolari con più vicini?Molte applicazioni semplicemente usare n-dimensionale griglie per la comunicazione. Le applicazioni più irregolare ancora utilizzare una topologia che si basa sulla struttura del sistema di input (ad esempio, la struttura scarsità di matrice di rigidezza). Anche raffinatezza mesh adattiva corre spesso più iterazioni con una maglia data di ammortizzare i costi di creazione.
Così sembra che le prestazioni delle applicazioni potrebbe essere migliorata con una migliore mappatura. Ma come funziona in pratica? MPI permette di creare i cosiddetti "comunicatori topologica". Quelli comunicatori hanno topologia processo dell'utente attaccato. MPI-1 offre due meccanismi per creare tali comunicatori: un meccanismo scalabile per creare n-dimensionale cartesiano topologia comunicatori e non scalabili meccanismo per la creazione arbitraria (grafico) comunicatori. Il MPI-1 meccanismo per creare grafico comunicatori richiede che ogni processo di specificare e memorizzare il pieno grafico. In MPI-2.2, la topologia grafico distribuita, un nuovo costruttore è stato introdotto scalabile che permette di storage distribuito del grafico. Discutiamo e documentare la nuova interfaccia grafica della topologia per gli utenti finali in " L'interfaccia scalabile Topologia processo di MPI 2,2 ".
Ora sembra che il lato utente è abbastanza chiaro e grafici possono essere specificati in modo semplice e portabile. Tuttavia, alla domanda "fa aiutare nella pratica e quanto bene è ha sostenuto" rimane. Beh, prima, devo deludervi: mappatura della topologia generale (anche rinumerazione) è NP-hard. Ciò è dimostrato in " Strategie generico mappatura della topologia per architetture parallele su vasta scala ". Tuttavia, ciò non vuol dire che le mappature semplice cartesiano non può essere migliorato! Molte implementazioni, ad esempio IBM BlueGene / P MPI supporta mappatura ottimizzata per la topologia cartesiana. Il numero di librerie MPI che supporta il mapping di grafico topologie è, purtroppo, trascurabile. Questo perché la mappatura è duro e vantaggi non sono chiari. In " Strategie generico mappatura della topologia per architetture parallele su vasta scala "proponiamo due algoritmi di mappatura e dimostrare di funzionare bene in pratica (ridurre la congestione fino al 80%). Ci auguriamo che tali strategie sono adottate dal implementatori biblioteca per rendere la vita dell'utente più facile!
E 'anche un "uovo-gallina-problema", cioè, nessuna libreria lo ottimizzare fino a quando un'applicazione utilizza e non applicazione lo uso fino a che non offre vantaggi. Tuttavia, l'applicazione lato è molto semplice e librerie che creano automaticamente grafico topologie dall'uscita di divisori grafico parallelo esiste. Così, i programmatori dovrebbero prendere in considerazione utilizzando l'interfaccia topologia di creare un incentivo sul implementatori MPI per supportare questa funzionalità. Tuttavia, si dovrebbe assicurarsi di utilizzare i costruttori grafico cartesiano o distribuiti in modo da garantire scalabilità a un gran numero di processi.
Ancora una cosa: MPI-3 è sulla buona strada e una nuova proposta esiste per estendere il processo di topologie con capacità di comunicazione. La proposta introduce nuovi "collettiva" delle operazioni che agiscono sul processo di topologie. Questo significa che ogni processo comunica con i suoi vicini locali. Tale modello è molto tipico per gli scambi alone in numerosi codici. La specifica collettiva e dichiarativi permette l'implementazione MPI per calcolare i programmi di messaggistica ottimizzato e inoltrare i messaggi attraverso altri processi, esattamente come avviene per le operazioni collettive dal MPI-1. Primi risultati sperimentali e una descrizione dettagliata delle funzionalità immaginato può essere trovato in " Operazioni Sparse collettiva per MPI ".
Questo è tutto per ora! Ricorda: è un processo di topologie astrazioni bella portatile per ottenere la mappatura ottimizzata della topologia in MPI-2.2 e comunicazione ottimizzato per modelli di comunicazione arbitraria MPI-3.
è un partecipante regolare del Forum MPI . Dirige le operazioni collettive e processo di topologie gruppo di lavoro ed è capitolo (co-) autore di capitoli 5 e 7 in MPI e MPI-2.2-3.
Corso Cisco - Corsi Cisco - Corso CCNA
Nessun commento:
Posta un commento
Nota. Solo i membri di questo blog possono postare un commento.