Rmpi (v. 0.6-2) パッケージを使用して、R (v. 2.15) コードを並列化しています。私は次のコードの平和を持っています:
library(Rmpi)
source("slaveFunction04.r")
mpi.spawn.Rslaves(nslaves=2)
mpi.bcast.Robj2slave(slaveFunction04)
mpi.remote.exec(slaveFunction04())
mpi.close.Rslaves()
mpi.quit()
スレーブが slaveFunction04 を実行している間、マスター プロセスはアイドル状態になり、リソースをほとんど消費しないことが予想されます。これは、C または Fortran で MPI を使用する場合に発生します。しかし代わりに、マスターはスレーブと同じように CPU を 100% 消費します (各プロセスは独自のコアで実行されます)。
なぜこれが起こるのか、どうすれば解決できますか?
MPI については、OpenSuse 12.3 で OpenMPI v. 1.6-3.1.2 を使用しています。
前もって感謝します。