Windows環境でのRの並列化


Download

(すべて,ベータ版ですので,ご了承願います.)


mpi.dll

mpi.c (mpi.dllのソース)

mpi.R (RでのMPI関数の定義)

mpi.txt (mpi.Rで定義された関数の説明)

mpiapp.R (便利な関数等)


動作に必要なもの

  1. R (テストには1.2.0を使いました.)
  2. MPICH for WindowsNT

TIPS:

  1. サーバーのあるDirectoryをすべてのノードで共有できるようにすると便利です.
  2. Rの起動時にmpi.dllのロードと,mpi.initを実行するように設定する必要があります.

    %R_HOME%\library\base\R\Rprofile に以下の2行を追加して下さい.


    dyn.load("c:/R/library/MPI/mpi.dll") #実際にはmpi.dllがあるパスを指定します。

    mpi.init()

  3. mpirun 用の入力ファイル (input.file) の例は以下の通りです.

    exe F:\jikkou.bat
    hosts
    pc1.ism.ac.jp 1
    pc2.ism.ac.jp 1
    133.58.139.171 1


    さらに上のjikkou.batの内容は

    C:\R\bin\Rterm --save --slave < run.R

    というもので,run.Rの中に計算内容をプログラムすれば動きます.

    実際の実行コマンドラインで F:\> mpirun input.file として動かせます.

    (もちろん,事前に,MPIを動かせる環境にしておかなくてはなりません.

    私のところではMPICHのSimple Launcherを使っています.)

  4. 問題となりそうな点は起動のさせ方と,終わり方にあります.終わり方ですが,現在はq()を書き換えて,ノード0ではsaveして,その他のノードではsaveしないようにしてあります.

不明な点がありましたら,メールください.