입자 분해 및 도메인 분해 병렬화 알고리즘의 장단점은 무엇입니까?


15

Gromacs 및 DL_POLY와 같은 여러 소프트웨어 패키지를 사용하여 분자 역학 (MD) 시뮬레이션을 실행하고 있습니다.

Gromacs는 이제 입자 분해 및 도메인 분해 알고리즘을 모두 지원합니다. Gromacs 시뮬레이션은 도메인 분해를 사용하지만, 최근까지 입자 분해가 Gromacs에서 구현 된 유일한 방법 임에도 불구하고 도메인 분해를 사용합니다. Gromacs 논문 중 하나 (DOI 10.1002 / jcc.20291)에서 저자는 입자 분해의 초기 선택 이유를 제시합니다.

"초기 설계 결정은 프로세서를 통해 작업을 분산시키기 위해 도메인 분해 가 아닌 입자 분해 로 작업하는 선택이었습니다 . 후자의 경우 공간 도메인이 프로세서에 할당되어 로컬 통신만으로 공간 이웃을 신속하게 찾을 수 있지만 복잡한 문제가 발생할 수 있습니다. 선형 시스템 크기가 상호 작용 범위를 상당히 초과 할 때만 도메인 분해가 더 나은 선택입니다. 분자 분해에서는 각 프로세서가 힘과 좌표 / 속도 업데이트를 계산하지 않습니다. 프로세서에 균등하게 분배 된 사전 계산 된 이웃 목록을 사용하여 입자의 할당 된 부분에 대해 입자 간의 쌍 상호 작용으로부터 발생하는 I J 둘 입자의 속도 업데이트가 필요한, I J에프나는제이나는제이나는제이, 한 번만 계산되어 다른 프로세서와 통신합니다. 모든 프로세서는 스토리지를 필요한 좌표로 제한하지 않고 로컬 메모리에 시스템의 완전한 좌표 세트를 유지합니다. 메모리 청구는 일반적으로 수백만 개의 입자에 대해서도 제한 요소가 아닌 반면에 이것은 더 간단하고 통신 오버 헤드를 절약합니다. 반면에 최대 1000 배의 파티클을 포함 할 수있는 이웃리스트는 프로세서에 분산됩니다. 통신은 기본적으로 프로세서 링을 중심으로 한 시간 간격으로 좌표와 힘을 보내는 것으로 제한됩니다. 이러한 선택은 시간이 지남에 따라 강력하고 최신 프로세서 클러스터에 쉽게 적용 할 수있는 것으로 입증되었습니다. "

"선형 시스템 크기가 선형 역학 크기가 상호 작용 범위를 상당히 초과 할 때만 더 나은 선택"이라는 문장에서 "선형 시스템 크기"는 무엇을 의미합니까? 위의 단락에서, 입자 분해는 도메인 경계를 가로 질러 이동하는 입자를 다룰 필요가 없다는 이점을 얻습니다. 오히려 전체 시스템 구성 을 저장하기 위해 각 프로세서에 충분한 메모리가 있어야 합니다. 따라서 입자 분해는 매우 유리한 반면 도메인 분해는 매우 바람직하지 않습니다.

나는 이것이 매우 복잡한 질문 (그리고 아마도 많은 책의 주제)이라고 확신하지만, 기본적으로 입자 분해가 그렇게 좋아 보인다면 왜 도메인 분해를 사용해야합니까? 시스템 크기가 매우 큰 경우 도메인 분해가 유리합니까 (각 프로세서에 전체 구성을 저장하기 어렵거나 불가능하게합니까)? 위의 인용 된 단락을 바탕으로 도메인 분해가 왜 최근에 Gromacs의 기본 병렬화 알고리즘인지 모르겠습니다.

DL_POLY now (버전 4)도 도메인 분해를 사용 하는 것 같습니다 . 버전 4 매뉴얼에서 :

"이러한 방식으로 구성 데이터의 분할은 시뮬레이션 셀에서 원자의 위치를 ​​기반으로합니다. 시스템 데이터의 기하학적 할당은 DD 알고리즘의 특징입니다.이 전략이 효율적으로 작동하려면 시뮬레이션 시스템은 합리적으로 균일 한 밀도를 가져야하므로 각 프로세서에 원자 데이터의 거의 동일한 부분이 할당됩니다.이 접근 방식을 통해 힘의 계산 및 운동 방정식의 통합은 프로세서와 프로세서간에 균등하게 공유됩니다. 이 방법은 개념적으로 간단하지만 프로그래밍이 까다 롭지 만 효율성이 가장 큰 대규모 시뮬레이션에 특히 적합합니다.

...

DD 전략의 경우 원자 위치 (병합 및 스 플라이 싱)의 전체 업데이트가 필요한 SHAKE (RATTLE) 알고리즘이 DL_POLY Classic의 Replicated Data 방법보다 간단합니다. "

이는 구현하기가 더 어려울지라도 도메인 분해가 더 효율적일 수 있으므로 도메인 분해가 좋은 것처럼 들립니다.

반면, 이전 버전 (DL_POLY Classic)은 복제 된 데이터 병렬화를 사용했는데, 이는 입자 분해의 또 다른 이름 인 것 같습니다. 해당 버전의 설명서에서 :

복제 된 데이터 (RD) 전략은 MD에서 병렬화를 달성하는 몇 가지 방법 중 하나입니다. 그 이름은 병렬 컴퓨터의 각 노드에서 구성 데이터의 복제에서 파생됩니다 (즉 원자 좌표 정의하는 배열)아르 자형나는V나는에프나는시뮬레이션 된 시스템의 원자는 모든 처리 노드에서 재생됩니다). 이 전략에서 운동 방정식의 힘 계산 및 통합의 대부분은 노드간에 쉽고 균일하게 공유 될 수 있으며 각 노드에서 독립적으로 처리됩니다. 이 방법은 프로그래밍하기가 비교적 간단하고 효율적입니다. 또한 단일 프로세서에서 매우 쉽게 실행되도록 "축소"될 수 있습니다. 그러나이 전략은 메모리가 비싸고 통신 오버 헤드가 높을 수 있지만 전반적으로 광범위한 응용 프로그램에서 성공한 것으로 입증되었습니다.

이 단락은 복제 된 데이터 / 입자 분해가 "높은 통신 오버 헤드"를 갖는다는 점을 제외하고는이 질문의 첫 번째 단락과 일반적으로 구성되어있는 것으로 보입니다. Gromacs 논문의 단락은 반대라고합니다. 입자 분해는 도메인 분해보다 통신 오버 헤드가 낮기 때문에 바람직합니다.

당신은 어떤 생각이 있습니까?

답변:


10

파티클과 도메인 분해는 범위가 제한된 상호 작용이있는 시스템 (Verlet 이웃 목록 및 셀 연결 목록)의 힘 계산 속도를 높이는 두 가지 주요 방법에 직접 연결됩니다. 자세한 내용을 알고 싶다면 Allen and Tildesley의 Computer Simulation of Liquids 라는 책 이 있으며 Molecular Dynamics 및 Monte Carlo 연구의 "성경"으로 간주됩니다. 그런 다음 Griebel, Knapek 및 Zumbusch의 Molecular DynamicsNumerical Simulation이 있는데, MD의 병렬 구현을위한 다양한 기술에 대해 깊이 설명합니다.

영형(2)영형()

영형()영형() 더 잘 확장됩니다. 따라서 선형 크기 인수. 도메인 분해 방법은 셀 연결 목록 방법의 간단한 확장입니다. 셀은 다른 CPU로 나뉩니다.

도메인 분해의 문제점은 파티클이 한 셀에서 다른 CPU로 처리되는 다른 셀로 이동할 때 통신해야한다는 것입니다. 이는 입자가 평형 위치보다 멀어 지거나 입자 흐름이있는 높은 시뮬레이션 온도에서 문제가 될 수 있습니다. 또한 도메인 경계에있는 셀의 정보는 각 반복마다 인접 도메인으로 전송되어야합니다. 그러나이 모든 것은 로컬 동기식 통신이며 매우 효율적으로 수행 될 수 있습니다.

복제 된 데이터가 가장 쉬운 방법이지만 불행히도 모든 단계에서 모든 위치 및 속도 정보가 전체적으로 동기화되어야합니다. 이것은 실제로 잘 확장되지 않으며 매우 큰 시스템의 경우 메모리의 글로벌 양은 사용 된 CPU 수의 데이터 구조 크기에 비례하는 반면, 병렬 처리의 목표 중 하나는 각 CPU가 보유하도록 데이터를 분배하는 것입니다 전 세계 데이터 양보다

요약하면, "모두에 맞는"방법이 없으며 시뮬레이션되는 모든 시스템에 적합합니다. 대부분의 경우 최상의 병렬화 전략을 시스템 형상에서 추론 할 수 있으며 해당 사례에 적합한 MD 코드를 선택할 수 있습니다. 모두 동일한 기본 힘장과 적분기를 구현합니다.


좋은 대답입니다! 균일 한 원자 분포를 갖는 것이 일반적입니까? 균일하지 않은 분포에서도 동일하게 작동합니까?
fcruz

3
시뮬레이션되는 시스템에 따라 다릅니다. 그것이 액체, 가스 또는 벌크 결정이라면, 원자는 덜 균일하게 분포 될 것이다. 상이 있거나 국소화 된 입자 응집체가있는 경우 덜 적습니다. 균일하지 않은 분포의 경우, 적응 방법을 취하지 않으면 도메인 분해가 덜 효율적일 수 있습니다.
Hristo Iliev

2
영형(2)영형(로그)영형아르 자형영형()

4

"도메인 분해는 선형 시스템 크기가 상호 작용 범위를 상당히 초과하는 경우에만 더 나은 선택입니다. 분자 역학에서는 거의 발생하지 않습니다"라고 GROMACS 논문의 저자는 이웃 목록의 공간 크기가 시뮬레이션 셀은 수 나노 미터에 불과하며, 도메인 분해 수행에 따른 오버 헤드가 너무 높습니다. 입자 분해시 전체 정보 배포를 수용 할 수 있으며 도메인 분해를위한 모든 장부 보관에 시간을 소비 할 필요는 없습니다.

GROMACS가 구현 한 입자 분해 문제는 시간이 지남에 따라 각 프로세서에 할당 된 입자가 공간을 통해 확산된다는 것입니다. 각 상호 작용을 계산하는 책임은 초기 위치에 의해 고정되었으므로, 확산은 인접 목록에 의해 기술 된 전체 계산이 일정하더라도 인접 프로세서를 구축하기 위해 각 프로세서가 알아야하는 총 공간의 양을 점차 증가시켰다. 실제로는 주기적으로 시뮬레이션을 다시 시작하여 데이터 및 통신 지역을 재설정합니다.

"입자 분해는 도메인 경계를 가로 질러 이동하는 입자를 처리 할 필요가 없다는 이점이있다"는 가정이 시뮬레이션의 시간 스케일에 걸쳐 확산이 유의미한 경우에는 유지되지 않습니다.

도메인 분해는 확산과 함께 상호 작용에 대한 책임을 마이그레이션하여 각 프로세서의 데이터 위치를 개선하고 통신량을 최소화함으로써 이러한 "선불"을 처리합니다.

면책 조항 : GROMACS 개발을 돕고 다음 주에 입자 분해 구현을 제거 할 것입니다. ;-)


0

Hristo Iliev의 답변에 추가하고 싶습니다. 그의 게시물은 주로 계산 복잡성 에 대해 이야기하지만 병렬화와 관련하여 통신 복잡성 은 최소한 중요하며 도메인 분해의 주된 이유입니다.

최신 병렬 시스템에는 일반적으로 일종의 원환 체 토폴로지가 있습니다. 이것은 각 CPU가 매우 빠르게 통신 할 수있는 다수의 "이웃"CPU를 가지고 있음을 의미합니다. 인접하지 않은 CPU와 통신하는 데 비용이 많이 듭니다. 따라서 항상 인접 CPU와 통신하기 만하면되는 알고리즘을 사용하는 것이 좋습니다.

영형(2)

영형()

영형()

그러나, 불균일 한 시스템은 들리는 것처럼 일반적이지 않으며, 진공 상태에서 무언가를 시뮬레이션하거나 내재적 용매를 사용할 때만 발생합니다. 결정 및 액체의 밀도는 도메인 분해를 수행하기에 충분히 가깝습니다.


이것은 매우 좋은 답변입니다. 방금 정밀도를 추가하고 싶었습니다. MD와 유사한 알고리즘 (예 : 이산
요소법

상호 작용 파트너가 무작위로 분포되는 것은 반드시 입자 분해의 요건은 아니다. 공간적으로 콤팩트 한 입자 그룹으로 분해하여 시작할 수 있으며 종종 공통 상호 작용 이웃을 공유하기 때문에 시작해야합니다. 결국 확산은 분포가 무작위가됨을 의미합니다. 그렇기 때문에 분해의 국소성을 새로 고치기 위해 위에서 언급 한 GROMACS 입자 분해 시뮬레이션을 주기적으로 다시 시작해야합니다.
mabraham
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.