-다음 링크를 참조해 환경변수를 설정한다.
https://blogs.technet.microsoft.com/windowshpc/2015/02/02/how-to-compile-and-run-a-simple-ms-mpi-program/
-텍스트 파일에 다음과 같이 복붙하고 확장자는 c로 만든다.
#include#include #include #include SEXP hello(void); SEXP hello(void) { int rank, size; MPI_Init(NULL, NULL); MPI_Comm_size(MPI_COMM_WORLD, &size); MPI_Comm_rank(MPI_COMM_WORLD, &rank); Rprintf("Hello from rank %d out of %d\n", rank, size); MPI_Finalize(); // Create an R integer data type with value zero SEXP result = PROTECT(result = NEW_INTEGER(1)); INTEGER(result)[0] = 0; UNPROTECT(1); return result; }
-해당 파일이 있는 폴더에 아래와 같은 내용으로 Makevars.win이란 파일을 만든다. 만들 때 따옴표에 주의한다.
PKG_LIBS=-L'$(MSMPI_LIB64)' -lmsmpi
PKG_CPPFLAGS=-I'$(MSMPI_INC)'
-c 파일이 있는 폴더에서 아래 명령으로 파일을 빌드한다. 만들어질 파일 이름의 확장자가 dll임을 확인하라.
R CMD SHLIB -o mpihello_fromR.dll 파일이름.c --preclean
-빌드 중에 __int64를 알수 없다는 에러 메시지가 뜨면 아래 링크와 같이 mpi.h 파일을 열어 수정한다.
http://stackoverflow.com/questions/27891478/error-when-compiling-in-cygwin
-빌드가 끝났으면 아래 내용으로 mpihello.R 이란 파일을 하나 만들자.
dyn.load("mpihello_fromR.dll").Call("hello")
-c 파일이 있는 폴더에서 명령창으로 다음을 실행한다.
mpiexec -n 4 R -f mpihello.R
'코딩 > R' 카테고리의 다른 글
Ubuntu 16.04.1에서 mpich와 R 설치하기 (0) | 2016.09.24 |
---|---|
R 병렬 프로그래밍 - Visual Studio에서 C 프로젝트 만들고 mpiexec로 실행하기 (0) | 2016.09.19 |
Microsoft MPI 하에서 pbdMPI 설치, 실행 (0) | 2016.08.28 |
Microsoft MPI 하에서 Rmpi 설치, 실행 (0) | 2016.08.28 |