2007-01-09
org.kosen.entty.User@aca703a
조영권(blue3443)
- 1
안녕하세요. 슈퍼컴에서 MPI 병렬화를 통한 수치 계산을 할 때 다음과 같은 경우 어떻게 처리해야 하는지 전문가 분의 의견을 묻고자 합니다.
첫번째 조건은 고려하는 시스템에 데이터 의존성이 존재하는 경우입니다.
제가 고려하는 문제는 복잡하게 연결된 미분 방정식을 한꺼번에 푸는 경우로서, 함수값 A[m,n](t)의 시간에 대한 미분이 A[m,n](t), A[m-1,n](t), A[m,n-1](t), ... 등 여러 항에 의존합니다. 즉, (m,n)의 2차원 좌표로 나타내면 중앙에 A[m,n]을 기준으로 '상하좌우' nearest neighbor 항들과 second nearest neighbor 항들과 연결되어 있습니다. 따라서, A[1,1]의 변화를 알기 위해 수없이 많은 다른 항들의 변화를 알아야 하고, 경계 조건으로서 'm이 N보다 클 때' 또는 'n이 -N보다 작거나 +N보다 클 때' 함수값은 0이 되고, 초기 조건으로서 A[m,n](0)이 따로 주어집니다.
물리적으로 의미 있는 양은 함수값들의 충분히 정확한 해로부터 얻어지고 방정식의 개수가 (N+1)(2N+1)에 비례하므로 매우 많은 식을 같이 풀어줘야 합니다.
시스템이 갖는 두번째 조건은 외부 라이브러리를 호출한다는 것입니다.
시간이 0부터 tend(~10)까지 변화할 때 각 함수값을 계산하기 위해 슈퍼컴에 들어있는 IMSL 라이브러리를 call 합니다. 이때 호출되는 서브루틴의 내용을 정확히 모른 상태에서 쓰는 것이 MPI 병렬화를 하는데 아무 문제를 일으키지 않는지 모르겠습니다.
정확한 계산에 너무 긴 시간이 소요되어 병렬화를 시도하고 있습니다. 요약하자면 Coupled differential equations를 외부 라이브러리를 호출하여 풀 때 MPI 병렬화를 하려는 것입니다.
다른 병렬화 방법인 OpenMP를 시도해 보니, 결과가 그다지 만족스럽지 않은 것 같고, MPI를 하려니 초보자로서 사용이 쉽지가 않네요.
전문가 분의 도움 부탁드립니다. 수고하세요.
- MPI
- Parallelization
- coupled differential equations
지식의 출발은 질문, 모든 지식의 완성은 답변!
각 분야 한인연구자와 현업 전문가분들의 답변을 기다립니다.
각 분야 한인연구자와 현업 전문가분들의 답변을 기다립니다.
답변 1
-
답변
황치옥님의 답변
2007-01-30- 0
>안녕하세요. 슈퍼컴에서 MPI 병렬화를 통한 수치 계산을 할 때 다음과 같은 경우 어떻게 처리해야 하는지 전문가 분의 의견을 묻고자 합니다. > >첫번째 조건은 고려하는 시스템에 데이터 의존성이 존재하는 경우입니다. >제가 고려하는 문제는 복잡하게 연결된 미분 방정식을 한꺼번에 푸는 경우로서, 함수값 A[m,n](t)의 시간에 대한 미분이 A[m,n](t), A[m-1,n](t), A[m,n-1](t), ... 등 여러 항에 의존합니다. 즉, (m,n)의 2차원 좌표로 나타내면 중앙에 A[m,n]을 기준으로 '상하좌우' nearest neighbor 항들과 second nearest neighbor 항들과 연결되어 있습니다. 따라서, A[1,1]의 변화를 알기 위해 수없이 많은 다른 항들의 변화를 알아야 하고, 경계 조건으로서 'm이 N보다 클 때' 또는 'n이 -N보다 작거나 +N보다 클 때' 함수값은 0이 되고, 초기 조건으로서 A[m,n](0)이 따로 주어집니다. > >물리적으로 의미 있는 양은 함수값들의 충분히 정확한 해로부터 얻어지고 방정식의 개수가 (N+1)(2N+1)에 비례하므로 매우 많은 식을 같이 풀어줘야 합니다. > >시스템이 갖는 두번째 조건은 외부 라이브러리를 호출한다는 것입니다. >시간이 0부터 tend(~10)까지 변화할 때 각 함수값을 계산하기 위해 슈퍼컴에 들어있는 IMSL 라이브러리를 call 합니다. 이때 호출되는 서브루틴의 내용을 정확히 모른 상태에서 쓰는 것이 MPI 병렬화를 하는데 아무 문제를 일으키지 않는지 모르겠습니다. > >정확한 계산에 너무 긴 시간이 소요되어 병렬화를 시도하고 있습니다. 요약하자면 Coupled differential equations를 외부 라이브러리를 호출하여 풀 때 MPI 병렬화를 하려는 것입니다. >다른 병렬화 방법인 OpenMP를 시도해 보니, 결과가 그다지 만족스럽지 않은 것 같고, MPI를 하려니 초보자로서 사용이 쉽지가 않네요. >전문가 분의 도움 부탁드립니다. 수고하세요. >>