2011-09-22 8 views
3

이것은 MPI의 특정 기술 코딩 측면에 관한 질문이 아닙니다. 나는 MPI에게 새로운 것이지, 틀린 방법으로 도서관을 사용하는 자신을 바보로 삼기를 원하지 않는다. 그래서 여기에 질문을 게시한다.MPI를 사용하지 않을 때

내가 이해하는 한, MPI는 분산 메모리 모델에서 병렬 응용 프로그램을 빌드하기위한 환경입니다.

저는 시간이 많이 걸리는 작업을하는 유일한 목적으로 Infiniband와 상호 연결된 시스템을 가지고 있습니다. 나는 이미 병렬 알고리즘을 만들었으므로 실제로 OpenIB를 사용하여 Infiniband를 통해 다중 노드간에 데이터 (중간 단계의 결과)를 전송하기 위해 MPI 만 사용하고 있습니다.

나는 MPI를 올바르게 사용하고 있습니까? 아니면 시스템의 원래 의도를 왜곡하고 있습니까?

+3

그렇습니다. 정확하게 MPI가 설계된 것입니다. –

답변

3

MPI는 더 간단하고 간단합니다. 더 나은 MPI는 문제에 부합합니다. 대부분의 라이브러리와 언어에 대해 실용적인 측면에서 볼 때 추상화의 문제라고 할 수 있습니다.

예, 원시 OpenIB 호출을 작성하여 작업을 수행 할 수도 있지만, 이더넷 클러스터 나 거대한 공유 메모리 머신으로 이동할 필요가 있거나 다음 상호 연결이 무엇이든간에 어떤 일이 발생합니까? MPI는 미들웨어이기 때문에 큰 판매상 중 하나는 네트워크 수준의 코드 작성에 시간을 낭비 할 필요가 없다는 것입니다.

+0

+1 아래 투표, 좋은 지적에 대해 전혀 몰라요. – jman

+0

그것은 내 질문에 대답, 나는 MPI를 사용하여 나에게 기본 통신 메커니즘을 추상화 할 수있는 능력을 부여하므로 확장 성이 뛰어나다는 점에 동의한다. (물론 MPI의 영역 내에서) –

+0

나는 가능한 한 적은 수의 MPI 구문을 사용해야한다는 것에 동의하지 않습니다. RIGHT 구문을 사용해야합니다. – Jeff

4

알고리즘에서 MPI_Send & MPI_Recv 만 사용하면됩니다. 알고리즘이 발전함에 따라 더 많은 경험을 얻을 수 있습니다. 예를 들어, Gather, Reduce 등과 같은 장벽 & 집단 커뮤니케이션과 같은 "고급"MPI 기능에 사용할 수 있습니다.

+0

Send-Recv는 로우 레벨 프리미티브입니다. 먼저 추론을하기가 훨씬 쉽기 때문에 먼저 집단을 사용하는 것이 바람직합니다. 사람들이 Send-Recv를 사용하는 일반적인 패턴 중 많은 부분이 MPI-3의 이웃 집단에서 표현 될 수 있습니다. – Jeff

0

복잡성 스펙트럼의 다른 끝에서 MPI를 사용하지 않는 시간은 문제 또는 솔루션 기술이 MPI 사용법 (특히 프로세스 모델)이 장애가되는 충분한 동력을 나타낼 때입니다. Charm++과 같은 시스템 (공개 : 나는 Charm ++의 개발자 임)은 미세한 단위로 문제를 분해 할 수 있으며, 런타임 시스템은로드 균형을 보장하기 위해 해당 단위의 프로세서로의 분배를 관리하고 적절하게 의사 소통을 이끌어 내야한다.

흔하지 않은 또 다른 문제는 동적 데이터 액세스 패턴입니다. 여기서 전역 배열이나 PGAS 언어와 같은 것이 코드 작성이 훨씬 쉬울 것입니다.

+0

당신은 MPI가 아니라 MPI의 사용법에 대해 이야기하고 있습니다. Charm ++가 MPI 위에 앉을 수 있다는 것은 MPI가 동적 계산에 적합하다는 것을 증명합니다. 단지 동적 인 것을 구현하거나 Charm ++과 같은 미들웨어에서 가져와야합니다. – Jeff

+0

Charm ++ _can_은 MPI의 맨 위에 놓이지 만 기본 네트워크 백엔드가 아닙니다. 두 가지가 완전히 다릅니다. 예 : "특정 구현 세부 사항과 관계없이 MPI의 예상 메시지 특성과 Charm ++의 예기치 않은 메시지 동작간에 근본적인 차이가 있다고 생각합니다.이 차이로 인해 통신 수행에 적합하지 않습니다 후자의 책임. ", [Gunter 외] (http://www.mcs.anl.gov/~balaji/pubs/2013/charm/charm13.charmpi.pdf) –

+0

"Optimizing Charm ++ over " MPI "를 사용하십시오. 대부분의 (모든?) 메시지가 예기치 않은 Charm ++ 사용 모델에 맞게 MPI를 조정하면 성능을 상당히 향상시킬 수 있습니다. – Jeff

관련 문제