misurare il tempo di esecuzione
DESCRIPTION
Misurare il tempo di esecuzione. MPI prevede delle primitive che permettono di identificare una parte di codice e misurarne il tempo di esecuzione /* Dichiarazione delle variabili*/ double starttime, endtime; ... starttime = MPI_Wtime(); /* Codice */ endtime = MPI_Wtime(); - PowerPoint PPT PresentationTRANSCRIPT
Misurare il tempo di esecuzioneMPI prevede delle primitive che permettono di identificare una parte di codice e misurarne il tempo di esecuzione/* Dichiarazione delle variabili*/double starttime, endtime;...starttime = MPI_Wtime();
/* Codice */endtime = MPI_Wtime();
(endtime – starttime) fornisce il tempo di esecuzione in SECONDI.
Se il codice da misurare è in un ciclo si può fare nel modo seguenteDouble s1, s2, e1, e2, acc = 0s1 = MPI_Wtime();For(....) {
s2 = MPI_Wtime(); /* Codice1 */ e2 = MPI_Wtime();acc +=(e2-s2);/* Codice2 */
} e1 = MPI_Wtime();
Tcodice1 è acc, Tcodice2 è e1-s1-acc
Strumenti automatici per l’analisi delle prestazioni e del comportamento di programmi MPI
MPE: MPI Parallel EnvironmentMain components:• A set of routines for creating log files for examination
by graphical visualization tool jumpshot4• A shared display parallel X graphics library• Routines for sequentializing a section of code being
executed in parallel• Debugger setup routinesLog files format: SLOG-2 Scalable Log
Profiling Libraries:
1. MPIProfiling interface Accumulation of time spent in MPI routines;
2. Automatic Logging generates file of timestamped states
3. Customized logging
1 + 2 triggered on occurrence of MPI calls;
3 triggered on occurrence of user defined states/events
JUMPSHOT-4 viewer of SLOG-2 files• Big log files (Gigabytes);• Support level of details scroll up and down; zooming• High level abstraction preview drawable summarize
real entities;• Timeline canvas
– Timeline vs time coordination system– Each point in the canvas is identified by two numbers: a
timestamp and a timeline ID
Two kinds of drawable objects:• Primitive the simplest drawable, the basic elements of SLOG-
2 files• Categorized wrt their topology• “state”, “arrow” and “event” • state and arrow are identified by two points in the timeline
canvas (hence two pairs):• State start timeline ID= final timeline ID• Arrow may have final timeline different from initial• Event identified by only one point• Composite is a collection of primitive or other composite
drawable provides level o detail• Preview drawable provides high level description of what is
going on.
Edge detection
Ogni processo è responsabile dell’elaborazione di una porzione dei dati di input:
• Durante la fase di input i dati sono acquisiti in parallelo per blocchi di righe
• Nella fase di computazione processi “vicini” scambiano i bordi dei dati contigui – Tale scambio viene iterato ad ogni passo di un ciclo for presente nel codice
• Durante la fase di output i dati vengono raccolti in parallelo in un unico file
Edge detection
Esempio su 4 processi:
f( )
f( )
f( )
Jumpshot-4
Comunicazioni Preview arrow: rappresenta le comunicazioni
tra due preview state.
Messaggio: indica le informazioni della singola comunicazione
Histogram for edge detection
Come ottenere questi dati
Prima di tutto bisogna compilare il codice cosìmpicc -c nomefile.cmpicc -o nomefile -mpilog nomefile.o [altri .o] Dopo l'esecuzione troverete un file
nomefile.clog Si lancia il tool jumpshot edge.clog Se viene chiesta la conversione fatela