misurare il tempo di esecuzione

Post on 25-Feb-2016

29 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

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 Presentation

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(....) {

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

top related