Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
CPU-timer in threads...

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - Allgemein
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
mcr76



Anmeldungsdatum: 14.02.2005
Beiträge: 1

BeitragVerfasst am: 14. Feb 2005 12:36   Titel: CPU-timer in threads...

Hallo zusammen,

hoffentlich kann mir jemand von euch helfen...
Ich habe da ein Problem mit der Zeitmessung auf verschiedenen Linux und Unix-Systemen...

Ersteinmal, was ich gerne haette:
Ich arbeite an einem Programm was ich mittels pthreads parallelisieren moechte. Dafuer moechte ich so ein paar Zeiten messen.
Einmal die Zeit, die das Programm insgesamt laeuft: kein Problem benutze ich die real-Zeit.
Dann haette ich gerne die CPU aller threads gemessen: das habe ich noch nicht so ganz geschafft, da es da wohl von System zu System Unterschiede gibt... Aber das soll hier nicht das Problem sein...

Mein Problem ist nun: Ich haette gerne die CPU-Zeit eines Threads gemessen. Das ging bis zum Kernel 2.4 mit: times()
Ab Kernel 2.6 liefert times() die komplette CPU-Zeit des Prozesses. (ok... das hat es auch schon vorher getan, jedoch war da ein threadein eigener Prozess)...
Ich habe schon einiges versucht. Darunter war auch folgender Versuch:
- mit clock_gettime(CLOCK_THREAD_CPUTIME_ID, ..) die Zeit messen...
- die Zeit aus /proc/self/task/*ID*/stat auslesen
- mit clock_gettime(CLOCK_PROCESS_CPUTIME_ID, ..) die Zeit zu messen...

Das Testprogramm hat 10 Threads auf einem 8 Prozessor-Server gestartet und die Threads ein wenig beschaefftigt. Dabei waren die Zeiten gemessen mit CLOCK_THREAD_CPUTIME_ID und CLOCK_PROCESS_CPUTIME_ID fast identisch und die Zeit aus /proc/... war teilweise um mehrere Sekunden geringer...

Hier mal eine Zeile meines Testprogramms:
thread: 6.470 ausgelesen aus /proc/...
cpu: 10.220 gestartet mit CLOCK_PROCESS_...
times: 72.420 gestartet mit times()
thread2: 10.219 gestartet mit CLOCK_THREAD_...

Kernel: 2.6.10

Mein Hilfeersuchen nun an euch:
1. Weiss jemand, wie ich unter Linux den Verbrauch an CPU-Zeit eines einzelnen Threads ermitteln kann...??? Das Auslesen der /proc/...steht da nicht zur Debatte.
2. Weiss jemand wie das selbe Problem unter AIX 5.1 behandelt werden kann..???

Danke fuer eure Hilfe

Gruss
Christian
 
Benutzer-Profile anzeigen Private Nachricht senden

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - Allgemein Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy