PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C++ & MPI -> Zeit messen -> Idee ?



Mat
24-07-2007, 21:04
Hallo,

ich habe ein Programm was sequentiell läuft und das gleiche was parallel läuft. ALso 2 Implementierungen.

Jetzt würde ich gerne messen wie schnell die Programme sind bzw. ob das parallele wirklich schneller ist.

Das Problem: Ich kann nicht einfach in das parallele die gettimeofday funktion einbauen oder ähnliches, da hier mehrere rechner gleichzeitig arbeiten und auch gleichzeitig dasselbe programm abarbeiten. Jeder Knoten würde also seine Zeit berechnen. Gut - man könnte die Zeiten aufsummieren ABer:

Gibt es nicht eine Möglichkeit die Zeit über ein Skript oder über einen Unix-Befehl zu messen? Oder hat jemand eine passende Idee?

tsluga
25-07-2007, 01:42
Ich habe es damals bei MPI so gemacht, dass ich gettimeofday genommen habe, direkt nach main bis vor return oder exit und die habe ich mir ausgeben lassen.

Ich habe dann ja gesehen, dass auf irgendeinem Rechner die maximal Zeit z.b. 3 Sekunden betrug und somit habe ich auch die dauert für die parallere Verarbeitung, 3 sekunden, das maximum.

beim sequentiellen habe ich einfach ein time vorgesetzt.

Mat
25-07-2007, 11:15
danke Tsulga für Deine Antwort - leider verstehe ich da wohl noch was nicht ganz:

Wenn ich in meiner main gettimeofday verwende und das Programm z.B auf 3 Knoten starte bekomme ich ja 3-mal die Zeit ausgegeben weil jeder der 3 Knoten in die main läuft.Nur welche der 3 Zeiten ist dann die korrekte?
Oder meinst du dass du von allen gemessenen Zeiten das Maximum nimmst weil alle anderen eh in dieser zeit fertig werden?

Bei bei angabe mehrer Knoten z.B 10 verändert sich die Zeit fast gar nicht. Wird wohl an meiner Implementierung liegen.

Danke

tsluga
25-07-2007, 15:54
Oder meinst du dass du von allen gemessenen Zeiten das Maximum nimmst weil alle anderen eh in dieser zeit fertig werden?


Genau das meine ich.Ich habe im Studium auch MPI verwendet, es hat mich auch immer geärget, dass es dort keine Möglichkeit gibt eine vernünftige Zeitmessung zu machen ( zumindest ist mir keine bekannt ).

Mat
25-07-2007, 19:37
Ok - alles klar. Danke an dieser stelle.

...gar nicht so einfach das MP-Interface...

tsluga
26-07-2007, 00:04
Es ist gar nicht so schwer, solange man nicht versucht den Quellcode zu verstehen, da ist gelegentlich schon ein seltsamer kommentar bei :rolleyes: