-다음 링크를 참조해 환경변수를 설정한다.

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

Posted by 타다키치
,

-비주얼스튜디오를 설치하고 WIn 32 c++ 어플리케이션을 만든다.

-만들때 Precomfiled Header와 Empty Project 옵션을 끈다

-SOultion Explore를 보면 Header files, Resource Files, Source Files 이렇게 세 폴더가 있다.

-Source Files에 오른 클릭하고 아이템 추가를 선택한다.

-c++ File을 선택하는데, 확장자를 cpp가 아닌 c로 한다.

-책의 코드를 복붙한다.

#include 
#include 
int hello(void);
int main(void)
{
return hello();
}
int hello(void)
{
int rank, size;
// Standard MPI initialisation
MPI_Init(NULL, NULL);
MPI_Comm_size(MPI_COMM_WORLD, &size);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
// Prints out hello from each process
printf("Hello from rank %d out of %d\n", rank, size);
MPI_Finalize();
return 0;
}

-상단 탭의 빌드에서 프로그램을 빌드한다.

-만들어진 exe 파일의 폴더로 가서 다음 명령어를 명령창에서 실행한다.

mpiexec -n 4 ./mpihello.exe

Posted by 타다키치
,

실력은 없지만 감히 이 책을 간단히 평가해보자면,
설명이 잘 돼있는 것 같다. 예제도 풍부하고 간간히 연습
문제도 있어서 좋다.
일단 이 책은 돈 주고 사야할 듯 하다.
그런데, 어렵다.
뒤로 갈 수록 어렵다. 뒤로 더 많이 갈 수록 더 어렵다.
책 표지에 '전문가를 위한'이라 써져 있길래 
'별거 있겠어?'라 생각했지만 왜 그렇게 써 놨는지 알 것 같다.
내가 머리가 나빠서일 수도 있지만....
허세 부릴 생각 하지 말고 자바부터 잘 해둬야 할 것 같다.
한국은 SI등에서 자바를 막 쓰는 경향이 있다보니
점유율은 높은데도 다른 언어보다 좀 더 무시받는 경향이 있지 않나 생각한다.
c++은 언제하고 스칼라는 언제공부하나....
할게 너무 많다.


Posted by 타다키치
,