4 snow Rのクラスタハンドリングパッケージ
- koiti_yano氏の記事をなぞる
- Rのパッケージ snow_0.2-1.tar.gzの入手
- インストール
# R CMD INSTALL snow_0.2-1.tar.gz * Installing *source* package 'snow' ... ** R ** inst ** help >>> Building/Updating help pages for package 'snow' Formats: text html latex example snow-cluster text html latex example snow-internal text html latex snow-parallel text html latex example snow-rand text html latex example snow-startstop text html latex example ** building package indices ... * DONE (snow)
snowの読み込みとその利用
> library(Rmpi) Rmpi version: 0.4-9 Rmpi is an interface (wrapper) to MPI APIs with interactive R slave functionalities. See `library (help=Rmpi)' for details. > library(snow) >
snowを使って、クラスタに仕事を振り分けてみる
###今、MPIが単独LINUXマシンで動いているので、クラスタノード数は1個 ###なので、snowのmakeCluster関数で3個のノードを作らせるコマンドを発行すると ###警告(『最大CPU(ノード)数であるところの1より大のR上のslaves(子ノード)が指定されたよ』)が出ています。 ###ただし、マシンが3台あれば、Rの3つのslavesをそれらに割り振るところを ###マシンが1台しかないので、Rの3つのslavesが1台のマシンに振られるだけで ###以降のコマンドが効かないわけではない(模様) ###makeCluster(1mtype="MPI")としてやれば、警告は出ない > cl<-makeCluster(3,type="MPI") 3 slaves are spawned successfully. 0 failed. Warning message: Number of R slaves is over 1 : maximum CPUs. in: mpi.comm.spawn(slave = "/usr/bi n/env", slavearg = args, nslaves = count, ###今、3つのR slavesが生まれて、それが、clというオブジェクトに格納されている ###clの中を見ると、slaveごとに$rank,$RECTAG,$SENDTAG,$comm,atrr(,"class")が ###作成されている ###ひとまず、何もしないで並列処理を終了するとしたら、 ###発生させたslavesを落とさないといけないので > stopCluster(cl) [1] 1 ###おそらくは、clがきちんと終了したことを示す返り値であろうところの[1] 1が返る