그룹 번호에 랭크 번호가 일반화되어 있습니까? 내 코드의 경우 MPI :: COMM_WORLD의 계층 적 분해를 만들고 싶습니다. 우리는 16 개의 스레드를 사용한다고 가정합니다. MPI :: COMM_WORLD.Split을 사용하여 각각 4 개의 계위를 갖는 4 개의 통신기를 만듭니다. 해당 네 그룹에 고유 한 ID를 제공하는 MPI 함수가 있습니까?MPI 그룹에 대한 MPI 순위 번호 일반화?
3
A
답변
5
글쎄, 각 프로세스를 여전히 원래 순위 인 MPI_COMM_WORLD
으로 참조 할 수 있습니다. 각 프로세스가 color
및 key
인수를 통해 MPI_Comm_split()
인수를 통해 수신하는 순위를 완전히 제어 할 수 있습니다. 이것은 오래된 순위와 새로운 그룹/순위 사이의 매핑을 생성하기에 충분한 정보입니다.
1
@ suszterpatt의 대답이 마음에 들지 않는다면 (카툰 통신기를 남용하고 의사 소통 자의 색인 (2,3)에있는 프로세스가 계층 적 분해의 2 그룹에서 프로세스 3 인 것처럼 가장 할 수 있습니다.
하지만이 책을 읽지 마시고 제가 그러한 남용을 권장한다는 인상을받지 마십시오. 그것은 단지 생각 일뿐입니다.
관련 문제
- 1. MPI 프로그램은 순위 1의 메시지 만받습니다.
- 2. mpi 후드
- 3. open-mpi/mpi-run에서 공유 라이브러리로드
- 4. MPI C
- 5. MPI 소수
- 6. MPI 객관식
- 7. OpenMP 및 MPI 하이브리드 프로그램
- 8. MPI - MPI_Recv의 메시지 잘림
- 9. 간단한 MPI 프로그램
- 10. 전역 변수와 MPI
- 11. MPI - 프로세스의 논리 순환
- 12. 알 수없는 출처의 MPI recv
- 13. MPI, Sungrid 대 JPPF?
- 14. 최상의 MPI 구현은 무엇입니까
- 15. MPI FOX 알고리즘
- 16. (비 -MPI) 파이썬 스크립트를 통해 MPI 바이너리와 상호 작용
- 17. 실시간 물리학 (MPI 포함)
- 18. MPI 집단 통신
- 19. MPI 또는 소켓?
- 20. MPI 입출력은 어떻게 구현됩니까?
- 21. MPI 태그가 비활성화되었습니다.
- 22. MPI 프로세서 수? 다음
- 23. MPI 프로세스 동기화
- 24. MPI 병렬 프로그래밍
- 25. 랩톱에서 MPI 코드 실행하기
- 26. MPI 프로그램 개선
- 27. MPI_Gather의 MPI 프로그래밍 문제
- 28. 는 MPI 통신의 복잡성
- 29. 부스트 .MPI 문제
- 30. MPI, calloc and free :
맞습니다.'MPI_Comm_split()'에 추가 한 정보는 내가 요청한 정보를 계산하기에 충분합니다. 그러나 코어 수가 10,000 인 경우에는 그렇게하는 것이 쉽지 않습니다. MPI의 기반 위에서 직접이 작업을 수행 할 수 있는지에 대한 질문이있는 이유입니다. –
나에게 충분히 단순 해 보입니다. N 개의 M 개의 프로세스를 N 개의 M 개의 그룹으로 나누고 싶다면 각 프로세스는''rank/N' color (그리고 옵션으로'rank % N' 키)로 Split()을 호출합니다. 그러면 그룹 0에 N-1, 그룹 1에 N..2 * N-1 등의 순위가 지정되고 각 그룹 내에서 프로세스의 원래 순서가 유지됩니다. 그룹'j'에서 순위 i가있는 프로세스는'MPI_COMM_WORLD'에서'j * N + i'의 순위를 가진 프로세스입니다. – suszterpatt