2017-03-05 4 views
1

다음과 같은 문제가 있습니다. 저는 물리학 자입니다. 나의 현재 작업을 위해 나는 어떤 문제를 수치 적으로 조사해야한다.분산 컴퓨팅을 위해 코드를 변경하는 방법

몬테카를로 방법을 사용하여 일부 7D 적분을 계산합니다. 병렬 컴퓨팅을 위해 OpenMP를 사용하지만 프로그램이 한 컴퓨터에서 느리게 작동합니다. 직장에서, IT 부서의 사람은 가상 머신을 만들 수 있다고 말하며 분산 컴퓨팅을 사용하여 계산할 수 있습니다.

저는 C++과 OpenMP (병렬 컴퓨팅 용)를 사용합니다. 제 질문은 다음과 같습니다 :

내 프로그램이 분산 컴퓨팅 가상 컴퓨터에서 작동합니까? 분산 컴퓨팅을 위해 코드를 수정해야하는 경우 (필요한 경우)?

병렬 컴퓨팅 내 코드

omp_set_dynamic(0); 
omp_set_num_threads(Npot); 
#pragma omp parallel for shared(result, errors) private(i)` 
for (i = 0; i < Npot; i++){ 
..... 
} 
+0

고급 그래픽 카드가있는 CUDA를 사용할 수 있습니까? –

+0

나는 프로그래밍에 익숙하지 않다. 그래픽 카드에 의한 계산이 올바르다는 것이 이해된다면, 조작이 간단하다면 좋을 것이다. 하지만 필자의 경우 integrand는 제곱 된 2D 적분을 포함하고 있습니다 (복잡한 파라미터를 가진 초고속 함수와 같은) 특수 함수가 포함되어 있습니다. – Peter

+0

* "나는 문제가있다. 나는 물리학 자다."* - 그것을 좋아한다. :-) –

답변

1

OpenMP를 하나 개의 프로세서 코어를 통해 코드를 배포하기 매우 간단하다. PC와 VM과 같은 다중 프로세서를 사용하려면 MPI를 조사해야합니다. 둘을 연결하는 방법, 잘 모르겠습니다. 하지만 지금은 출발점이 있습니다.

또한 CUDA를 사용하여 그래픽 카드에서 코드를 실행할 수도 있습니다.