Wenn ich ein neues Programm erstelle, experimentiere ich oft mit verschiedenen Parametern und messe, welche Art von Parametern und wie lange die Berechnung dauert.
Um dies zu messen, ist es notwendig, Zeit aus der Ausgabe jedes Ergebnisses zu extrahieren und zu sammeln. Sie können dies manuell tun, wenn Sie einige haben, aber wenn Sie viele Parameterkombinationen haben, können Sie dies nicht von Hand tun, verwenden Sie also ein Skript. Dazu müssen Sie Skripte für die Parametergenerierung, Ergebnisanalyse und Ergebnissammlung schreiben. Ich habe das Gefühl, dass eine solche Verarbeitung häufig gemeinsam verwendet wird. Deshalb habe ich an der Stelle, an der ich mich gefragt habe, ob ich eine Bibliothek erstellen könnte, einen Maf gefunden und versucht, sie zu verwenden.
Ich hatte keine Probe zum Messen der Berechnungszeit mit der aktuellen Maf-Probe, also habe ich eine gemacht.
Für Details lesen Sie am besten hier (http://research.preferred.jp/2013/12/maf/), aber in einfachen Worten wird es durch Erweitern des in Python geschriebenen Build-Systems namens waf erstellt. Es ist ein Werkzeug zur experimentellen Unterstützung.
Auf diese Weise können Sie die Parameterkombinationen einfach aufzählen und die experimentellen Ergebnisse einfach zusammenfassen. Wunderbar!
Wie waf muss maf Makefile in den Befehl make namens wscript schreiben. wscript etc. befinden sich an folgenden Stellen. https://github.com/shu65/maf_measure_computing_time
In diesem wscript werden "sleep 0", "sleep 1", "sleep 2" jeweils dreimal ausgeführt, die Zeit wird mit dem Zeitbefehl gemessen und die durchschnittliche Berechnungszeit wird für jeden Parameter berechnet, was eine sehr einfache Stichprobe ist. Es ist geworden.
Die Ausführungsmethode nach dem Git-Klon ist wie folgt.
python
cd maf_measure_computing_time
./waf configure
./waf experiment -j 1
Beachten Sie, dass Sie ohne das endgültige "-j 1" die Berechnungszeit nicht genau messen können, indem Sie Experimente mit mehreren Parameterkombinationen gleichzeitig ausführen.
Derzeit möchte ich nicht nur zur Zeitmessung parallel ausführen, sondern kann es nicht mit wscript angeben. Daher möchte ich diesen Bereich verbessern und in Zukunft eine Pull-Anfrage senden ...
Recommended Posts