-
Registrierter Benutzer
[C/C++] & [MPI] -> Zeiten so genau wie moeglich messen !
Salut!
Schreibe gerade an einem C++ Programm und einer parallelisierten Version davon und habe die Aufgabe bekommen, die Zeiten so genau wie moeglich zu messen.
Mir wurden dabei folgende Begriffe an den Kopf geschmissen : Systemzeit, Benutzerzeit und Realzeit,
Sequentiel :
Momentan nutze ich die Funktion clock() aus der timer.h, speichere das Ergebnis in einer Variable elapsed und gebe das Ergebnis in Format elapsed/CLOCKS_PER_SEC aus.
c++.com liefert mir folgende Angabe zu clock():
Returns the number of clock ticks elapsed since the program was launched.
Parallel :
Hier nehme ich die Zeit per MPI_Wtime() und messe ab Anfang bis der letzte Prozessor nicht mehr arbeitet.
Ein MPI-Manual liefert mir:
Returns an elapsed time on the calling processor
Diese Zeitmessung ist fuer meinen Prof jedoch nicht genau genug!
Das Programm war mal ein LiDIA Programm und dort gab es die Funktionen real_time(), user_time() und sys_time().
Meine Frage nun hierzu:
Was ist der genaue Unterschied der Zeiten und wie kann ich sie unter C++ bzw. MPI genau messen ?!
Mir wuerde zunaechst auch erst mal reichen, die Zeiten unter C++ praezise zu messen um zu erahnen, wie viele Prozzessoren ich fuer meine parallele Version benoetige!
Meine momentan Zwischenloesung ist, dass ich beim sequentiellen Programm vor und nach dem Aufruf date aufrufe und die Differenz nehme.
Ziemlich unschoen !!!
In diesem Sinne .... bin ich auf jegliche Reaktion gespannt !!!
'50
-
Registrierter Benutzer
anstatt vor-/nachher date aufzurufen, kannst du auch einfach das Programm mit starten. Dann erhältst du nach dem Ausführen real, user und sys Laufzeiten.
my very own 128 bit integer
C4 D3 B8 A8 9E A0 C6 EC 7D EC A8 15 28 D1 92 58
more information
-
Registrierter Benutzer
Benutzer- und Systemzeit kannst du innerhalb des Programmes über getrusage() rausfinden.
-
Moin,
sys meint die Zeit, die das Programm im Kernel-Mode war, user die Zeit, die das Programm im User-Mode war. Nähere Infos gibt es hier:
Code:
man time
man 2 times
Jan
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen