Markus Schmidberger
2008-Mar-20 13:05 UTC
[R] Rmpi and C Code, where to get the communicator
Hello, I try to write parts of my code in C to accelerate the for-loops. But basic operations I want to do in R (e.g. start cluster). My R code looks something like this: library(Rmpi) mpi.spawn.Rslaves() mpi.remote.exec(....) dyn.load("test.so") erg <- .Call("test", ....) .... mpi.close.Rslaves() mpi.quit() And my C function looks something like this: #include <mpi.h> #include <R.h> #include <Rdefines.h> #include <Rinternals.h> SEXP test (SEXP a, ..){ int rank; comm ?????? MPI_Comm_rank (comm, &rank); ...... } For all MPI functions I need the right communicator (MPI_Comm *comm;) to communicate with the existing slaves. This variable will be generated by spawning the Rslaves (mpi.spawn.Rslaves). But how to get to this variable in my C function? Is the communicator variable somewhere stored in a R variable? ( I use R 2.6.2 and Rmpi 0.5-5) Thanks Markus -- Dipl.-Tech. Math. Markus Schmidberger Ludwig-Maximilians-Universit?t M?nchen IBE - Institut f?r medizinische Informationsverarbeitung, Biometrie und Epidemiologie Marchioninistr. 15, D-81377 Muenchen URL: http://ibe.web.med.uni-muenchen.de Mail: Markus.Schmidberger [at] ibe.med.uni-muenchen.de Tel: +49 (089) 7095 - 4599
Markus Schmidberger
2008-Mar-20 14:08 UTC
[R] Rmpi and C Code, where to get the communicator
Hello, I try to write parts of my code in C to accelerate the for-loops. But basic operations I want to do in R (e.g. start cluster). My R code looks something like this: library(Rmpi) mpi.spawn.Rslaves() mpi.remote.exec(....) dyn.load("test.so") erg <- .Call("test", ....) .... mpi.close.Rslaves() mpi.quit() And my C function looks something like this: #include <mpi.h> #include <R.h> #include <Rdefines.h> #include <Rinternals.h> SEXP test (SEXP a, ..){ int rank; comm ?????? MPI_Comm_rank (comm, &rank); ...... } For all MPI functions I need the right communicator (MPI_Comm *comm;) to communicate with the existing slaves. This variable will be generated by spawning the Rslaves (mpi.spawn.Rslaves). But how to get to this variable in my C function? Is the communicator variable somewhere stored in a R variable? ( I use R 2.6.2 and Rmpi 0.5-5) Thanks Markus -- Dipl.-Tech. Math. Markus Schmidberger Ludwig-Maximilians-Universit?t M?nchen IBE - Institut f?r medizinische Informationsverarbeitung, Biometrie und Epidemiologie Marchioninistr. 15, D-81377 Muenchen URL: http://ibe.web.med.uni-muenchen.de Mail: Markus.Schmidberger [at] ibe.med.uni-muenchen.de Tel: +49 (089) 7095 - 4599