Stefan ist bash Nutzer, ich auch . . . und wir sind beide unabhängig voneinander in die selbe Falle getappt. Wir wollten die Ausgabe von “time” in eine Datei schreiben, dabei hat der naive Anstaz mit Streams umleiten nicht auf Anhieb funktioniert. Eigentlich ganz einfach, die manpage sagt “-o” . . . logisch. Nur tut es dann nicht – WTF? Stefan hats fluchend mit googlen und Foren lesen pobiert, ich hab durch Zufall in der manpage den passenden Hinweis gefunden:
Users of the bash shell need to use an explicit path in order to run the external time command and not the shell builtin variant.
Die bash bringt also ihr eigenes “time” mit das die Funktionalität “-o” nicht bietet . . .
Das Ende der Geschichte:
/usr/bin/time -o /tmp/time.log -p sleep 1
Stefan ist bash Nutzer, ich auch . . . und wir sind beide unabhängig voneinander in die selbe Falle getappt. Wir wollten die Ausgabe von "time" in eine Datei schreiben, dabei hat der naive Anstaz mit Streams umleiten nicht auf Anhieb funktioniert. Eigentlich ganz einfach, die manpage sagt "-o" . . . logisch. Nur ...
Zwei Uhren gehen nie genau gleich. Schlimmer noch, sie gehen noch nicht einmal gleich schnell. Auf Clustern ist das unter Umständen besonders störend. Analysiert man zum Beispiel Programme kann es vorkommen das Nachrichten angezeigt werden die angeblich in der Zukunft losgeschickt worden sind. Die Vorlesung “Leistungsanalyse von Rechnersystemen” an der TU Dresden beleuchtet unter anderem dieses Thema.
Dieses Verhalten kann man natürlich auch messen. Auf diesem Bild wurde ein Knoten in einem Cluster als Referenzzeitgeber benutzt, zwei weitere Knoten erhalten jeden Messpunkt eine MPI_Barrier() Anweisung und führen dann eine Zeitmessung aus. Die zwei Kurven zeigen wie weit sich jeweils ein Knoten vom Referenzsystem entfernt hat, also wie viel schneller oder langsamer die Uhr auf den Knoten bzw. auf dem Referenzsystem gelaufen ist.

Zwei Uhren gehen nie genau gleich. Schlimmer noch, sie gehen noch nicht einmal gleich schnell. Auf Clustern ist das unter Umständen besonders störend. Analysiert man zum Beispiel Programme kann es vorkommen das Nachrichten angezeigt werden die angeblich in der Zukunft losgeschickt worden sind. Die Vorlesung "Leistungsanalyse von Rechnersystemen" an der TU Dresden beleuchtet unter ...
The tiny tool time everybody should know, measures execution time of a given command. For example:
prints time information to the console. But what if you want to collect these statistics in a file? Linux man page say “-o FILE” is the way to do so. This will look like
time -o file.log echo "test"
This FAILS not only on my machine with the error message “bash -o: unknown command” or equal. The key is to give the full path:
/usr/bin/time -o file.log echo "test"
The problem is, that “time” is used for different things. This leads to another cute tool called type. type gives information about the kind of a command.
type -a time
time is a shell keyword
time is /usr/bin/time
As you can see “time” not only means the command. If somebody knows more about the “Why the hell is this so?”, feel free to post
The tiny tool time everybody should know, measures execution time of a given command. For example:
time echo "test"
prints time information to the console. But what if you want to collect these statistics in a file? Linux man page say "-o FILE" is the way to do so. This will look like
time -o file.log echo ...
Recent Comments