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(); (endtime – starttime) fornisce il tempo di esecuzione in SECONDI. Se il codice da misurare è in un ciclo si può fare nel modo seguente Double s1, s2, e1, e2, acc = 0 s1 = MPI_Wtime(); For(....) { s2 = MPI_Wtime(); /* Codice1 */ e2 = MPI_Wtime(); acc +=(e2-s2); /* Codice2 */ } e1 = MPI_Wtime(); Tcodice1 è acc, Tcodice2 è e1-s1-acc
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 Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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(....) {
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