다른 프로세서에서 생성 된 값과 병렬로 매트릭스 시스템을 조립하고 해결하는 방법은 무엇입니까?


10

이기종 멀티 스케일 방법 (HMM)을 사용하여 멀티 스케일 문제를 해결하고 있습니다. 기본적으로 내 특정 절차는 다음과 같은 반복 프로세스를 사용합니다.

  1. 많은 로컬 매트릭스 시스템을 해결하십시오.
  2. 로컬 시스템의 솔루션에서 관심 가치를 계산하십시오.
  3. 지역 "관심 가치"에서 글로벌 매트릭스 시스템을 조립
  4. 글로벌 매트릭스 시스템 해결
  5. 글로벌 매트릭스 시스템의 솔루션을 사용하여 새로운 로컬 매트릭스 시스템을 형성하십시오.

수렴 기준이 충족 될 때까지 반복하십시오.

여러 로컬 (독립적) 선형 방정식 시스템이 있고 여러 시스템이 로컬 RAM 메모리에 들어갈 수 있으므로 여러 "로컬"시스템을 각 프로세서에로드하고 각 시스템을 순차적으로 해결하는 것이 가장 좋습니다 ( 이 게시 된 질문 참조 ).

내 질문은 글로벌 매트릭스 시스템을 조립하고 해결하는 최상의 전략에 관한 것입니다. 필자의 경우 글로벌 매트릭스 시스템은 프로세서의 RAM 메모리에 완전히 들어갈 수있을 정도로 작습니다. 또한 로컬 및 전역 행렬은 반복간에 크기가 변경되지 않습니다. 따라서 가능한 세 가지 전략 중 하나를 예상합니다.

  1. "관심 가치"를 단일 프로세서에 모으고 글로벌 매트릭스 시스템을 하나의 프로세서에 순차적으로 조립 / 해결하십시오.
  2. 관심있는 값을 모든 프로세서에 복사하고 모든 프로세서에서 동일한 전역 매트릭스 시스템을 순차적으로 조립 / 해결하십시오.
  3. 각 프로세서가 전역 행렬의 연속 블록을 생성하는 데 필요한 "관심 가치"를 가지고 있다고 가정하면 전역 행렬의 파티션을 로컬로 조립 한 다음 병렬로 함께 해결할 수 있습니다.

각 방법에 대한 몇 가지 장점 / 단점을 볼 수 있습니다. 방법 1에서는 해결 단계에서 통신이 필요하지 않지만 루트 프로세서와의 통신은 병목 현상 (특히 규모)이 될 수 있습니다. 방법 2는 제 1 방법보다 글로벌 매트릭스를 조립하기 위해 더 많은 프로세서 간 통신을 요구할 수 있지만, 해결 단계 또는 후속하는 로컬 매트릭스 조립 단계에서 통신이 필요하지 않다. 방법 3은 로컬 또는 글로벌 매트릭스의 어셈블리를 위해 프로세서 간 통신이 필요하지 않지만 해결 단계에서 필요합니다.

103103103103103103


매우 흥미로운 질문입니다. 나는 누군가가 좋은 대답을하기를 바랍니다.
Inquest

nkn×knkn

106

kn

k<100O(n)

답변:


4

순위 0에서 풀고 싶은 경우는 없다고 생각합니다. 작은 일의 경우 allreduce가 줄어든만큼 효율적이고 중복 계산에는 2 개 대신 1 개만 있기 때문에 중복 풀기가 거의 항상 더 좋습니다.

그러나 모든 노드에서 중복을 계산할 것인지, 하위 집합에서 또는 중복 하위 집합을 계산할 것인지는 하드웨어 및 시스템 크기에 따라 다릅니다. 따라서 어느 것이 든 할 수있는 시스템이 있어야합니다. PETSc의 PCREDUNDANT는 모든 프로세스, 일부 프로세스 또는 일부 프로세스에서 병렬로 중복을 해결할 수 있습니다.

106


N=4096
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.