2012-05-15 13 views
20

Sto utilizzando MPI e voglio misurare i costi di comunicazione, in modo da poterli confrontare con i costi di 'elaborazione', ad esempio, quanto tempo ho bisogno di spargere una lista attraverso n processi e quindi confrontarlo con quanto tempo ho bisogno di ordinarlo.Strumenti per misurare i costi di comunicazione MPI

Qualcuno conosce qualche strumento per misurare questi costi di comunicazione? (la dispersione per esempio)

C'è qualche cosa per fare misurazioni sui costi di comunicazione MPI come c'è, ad esempio, PAPI per analizzare le prestazioni del codice?

Grazie in anticipo!

risposta

24

Sì, ci sono molti di questi strumenti. MPI definisce un'interfaccia strumenti che consente altre librerie per interject stessi a portata di chiamate di funzione MPI, e fare i conteggi, tempi, ecc

Un piccolo strumento di profiling MPI è mpiP - dà un brevissimo riepilogo delle attività MPI nella vostra codice.

La libreria IPM è abbastanza facile da compilare e offre molti conteggi e tempi MPI e, di conseguenza, fornisce un bel file HTML. Lei parla di PAPI; IPM integrerà anche i contatori PAPI, se disponibili. Lo usiamo regolarmente nel nostro centro, e penso che ciò farebbe ciò che ti piace. Se hai creato il tuo programma con le librerie dinamiche per MPI, non hai nemmeno bisogno di ricompilarlo per usarlo (mpiP ha la stessa proprietà).

Jumpshot, che viene fornito con MPICH2 ma può essere costruito con qualsiasi MPI, in realtà mostra su una cronologia per quanto tempo ogni operazione MPI ha preso.

OpenSpeedshop fornisce misurazioni delle prestazioni molto dettagliate del codice, evidenziando in particolare linee "costose"; ha anche una modalità di tracciamento MPI che identificherà i tempi MPI per linea di codice. Può essere difficile da installare.

Nella parte commerciale dello spettro ci sono Vampir di TU Dresden e Intel Trace Analyzer and Collector (ITAC). Vampir raccoglie tracce di livello sorgente, MPI e OpenMP utilizzando la libreria VampirTrace open source che si integra anche con PAPI per fornire eventi e contro-traccia dettagliati. Le tracce di VampirTrace sono in Open Trace Format che può essere letta da vari altri strumenti oltre a Vampir.

ITAC fa parte di Intel Cluster Studio XE. È progettato principalmente per funzionare con Intel MPI e condividere lo stesso codice ancestrale con Vampir, fornisce più o meno le stesse funzionalità. Una delle sue belle caratteristiche è il correttore di correzioni MPI automatico in esecuzione.

Allinea MAP è un profiler MPI di Allinea che fornisce analisi delle prestazioni con un browser sorgente integrato che visualizza il costo di comunicazione/calcolo accanto alle singole righe del codice sorgente. Mostra anche grafici ad alto livello di informazioni sulle prestazioni, tra cui memoria, istruzioni della CPU e comunicazione.

Ma ci sono altri strumenti di livello superiore che non forniscono solo report, ma offrono effettivamente consigli. Il perfexpert di TACC è uno strumento basato sulla riga di comando che prende una serie di misurazioni e offre alcuni consigli sull'ottimizzazione delle prestazioni. Scalasca di Jülich, ricompila il codice con un sacco di strumentazione a livello sorgente e può indicare squilibri di carico, collettivi MPI particolarmente costosi, ecc. Può anche integrarsi con Vampir per analisi di traccia dettagliate.

+1

Vorrei aggiungere [Vampir] (http://www.vampir.eu/) da TU Dresden e Intel Trace Analyzer and Collector.Entrambi discendono dallo stesso antenato e sono strumenti eccellenti e sofisticati per l'analisi delle prestazioni delle tracce MPI e OpenMP, ma sfortunatamente sono commercializzati. Scalasca è open source ma non particolarmente adatto per analisi dettagliate di basso livello e per questo si integra con Vampir (l'integrazione richiede una licenza Vampir valida). [XMPI] (http://www.lam-mpi.org/software/xmpi/) era distribuito con LAM ma non è stato sviluppato attivamente da quando LAM si è fusa con Open MPI. –

+0

Sì, sono fantastici; Io principalmente non li ho aggiunti perché sono commerciali. Pensa che sarebbe utile cambiarlo in un wiki della comunità e lasciare che tutti aggiungano i loro suggerimenti? –

+0

Wow! Grazie mille a tutti e due! Ancora una domanda, dato che preferirei fare le misurazioni nel cluster che sto usando e non ho i permessi di amministratore, è possibile installare uno di questi programmi nella mia directory? Oltre a mpiP che è già installato. IPM sembra essere installabile senza privilegi di amministratore, ho ragione? Grazie! –

Problemi correlati