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