1 / 24

Misurare il tempo di esecuzione

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();

dooley
Download Presentation

Misurare il tempo di esecuzione

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. Strumenti automatici per l’analisi delle prestazioni e del comportamento di programmi MPI • MPE: MPI Parallel Environment • Main 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 routines • Log files format: SLOG-2 Scalable Log

  3. Profiling Libraries: • MPIProfiling interface Accumulation of time spent in MPI routines; • Automatic Logging  generates file of timestamped states • Customized logging • 1 + 2  triggered on occurrence of MPI calls; • 3  triggered on occurrence of user defined states/events

  4. 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

  5. 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.

  6. 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

  7. f( ) f( ) f( ) Edge detection • Esempio su 4 processi:

  8. Jumpshot-4

  9. Comunicazioni • Preview arrow: rappresenta le comunicazioni tra due preview state. • Messaggio: indica le informazioni della singola comunicazione

  10. Histogram for edge detection

  11. Come ottenere questi dati • Prima di tutto bisogna compilare il codice così mpicc -c nomefile.c mpicc -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

More Related