Japan Taxiでは、Azure Machine Learningを機械学習の環境として用いていますが、様々な検証を様々なスケールで試していく中で、どういう計算機環境が使われているのか気になりました。
Azure Machine LearningにはRやPythonのスクリプトを実行する環境があるので、システム環境を調べることができます。
Azure Machine Learning が実行されているOSは?
Sys.Info()
sysname release version nodename machine
"Windows" "7 x64" "build 9200" "CLIENT" "x86-64"
login user effective_user
"Administrator" "Administrator" "Administrator"
Windowsのクライアント64bit OS Windows 8のようです。(ビルド9200より)この辺は充てられたノードによって違うのかもしれませんが、OSはクライアントOSがクラスタ内にあり割り当てられているということでしょうか?
Azure Machine Learning で使われているCPUは?
いろいろやりましたが、はっきりとしたことはわかりませんでした。
Sys.getenv(...)
これは使えないようでした。
library(benchnmarkme)
get_cpu()
こちらはライブラリが用意されていないようです。
library(parallel)
detectCores()
2コアのノードが割り当てられるということがわかりました。クラスタサイズなどはおそらく知る由もないので、おそらく検出できるのはこの辺までかと思われます。。。
まとめ
Azure Machine Learningで処理をしていると、スケールを2倍にしてもスピードが変化しないなどオートスケーリングしているとしか思えない動きをします。その仕組みを知らなくても十分使えるのですが、行っている処理がどれほど重いものなのかをつい忘れてしまうので、処理量を測る方法がほしいなと思うのは私だけでしょうか?