Lorsque je crée un nouveau programme, j'expérimente souvent divers paramètres pour mesurer le type de paramètres et le temps de calcul.
Afin de mesurer cela, il est nécessaire d'extraire et de collecter le temps de la sortie de chaque résultat. Vous pouvez le faire manuellement si vous en avez quelques-uns, mais si vous avez beaucoup de combinaisons de paramètres, vous ne pouvez pas le faire à la main, alors utilisez un script. Pour ce faire, vous devez écrire des scripts pour la génération de paramètres, l'analyse des résultats et la collecte des résultats. J'ai le sentiment qu'un tel traitement est souvent utilisé en commun, alors j'ai trouvé un maf à l'endroit où je me demandais si je pouvais créer une bibliothèque et j'ai essayé de l'utiliser.
Je n'avais pas d'échantillon pour mesurer le temps de calcul avec l'échantillon maf actuel, alors j'en ai fait un.
Pour plus de détails, il est préférable de lire ici (http://research.preferred.jp/2013/12/maf/), mais en termes simples, cela se fait en étendant le système de construction écrit en python appelé waf. C'est un outil de support expérimental.
Avec cela, vous pouvez facilement énumérer les combinaisons de paramètres et résumer facilement les résultats expérimentaux. Merveilleux!
Comme waf, maf doit écrire Makefile dans la commande make appelée wscript. wscript etc. se trouvent aux endroits suivants. https://github.com/shu65/maf_measure_computing_time
Dans ce wscript, «sleep 0», «sleep 1», «sleep 2» sont exécutés 3 fois chacun, le temps est mesuré à l'aide de la commande time, et le temps de calcul moyen est calculé pour chaque paramètre, qui est un échantillon très simple. Il est devenu.
La méthode d'exécution après git clone est la suivante.
python
cd maf_measure_computing_time
./waf configure
./waf experiment -j 1
Notez que sans le "-j 1" final, vous ne pourrez pas mesurer avec précision le temps de calcul en exécutant plusieurs combinaisons d'expériences de paramètres en même temps.
Actuellement, je ne veux pas exécuter en parallèle uniquement pour mesurer le temps, mais je ne peux pas le spécifier avec wscript, donc j'aimerais améliorer cette zone et envoyer une Pull Request à l'avenir ...
Recommended Posts