MPI를 사용하여 코드에서 여러 번 호출되는 함수를 병렬 처리하려고합니다. 내가 알고 싶었던 점은 함수 내에 MPI_Init
을 사용하면 함수가 호출 될 때마다 프로세스가 스폰되거나 1 회만 생성된다는 것입니다. 체계적인 방법으로이를 수행 할 수있는 알려진 디자인 패턴이 있습니까?MPI를 사용하여 함수 병렬화하기
0
A
답변
2
MPI_Init()
은 단지 MPI 환경을 초기화하는 것으로, 병렬 처리 자체는 수행하지 않습니다. 병렬 처리는 프로그램 작성 방법에서 비롯됩니다.
"Hello, World"와 같은 경우, printf()
은 실행중인 순위 (프로세서)에 따라 다른 작업을 수행합니다. 프로세스의 수는 프로그램을 실행하는 방법에 의해 결정되는이 일반적으로 MPI에 대한 질문이 정말 때문에, MPI와 다시 태그
int main(int argc, char *argv[]) {
char name[BUFSIZ];
int length=BUFSIZ;
int rank;
int numprocesses;
MPI_Init(&argc, &argv);
MPI_Comm_size(MPI_COMM_WORLD, &numprocesses);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Get_processor_name(name, &length);
printf("%s, Rank %d of %d: hello world\n", name, rank, numprocesses);
MPI_Finalize();
return 0;
}
2
실제로 MPI (또는 분산 메모리 프로그래밍) 방식이 아닙니다. OpenMP와 같은 방식으로 함수를 병렬 처리 할 수는 없습니다. MPI에서 프로세스는 MPI_Init()
시점에 생성되지 않지만 실행 파일을 실행할 때 (예 : mpiexec의 경우, MPI_Comm_spawn()
에서도 마찬가지입니다. 그 이유 중 하나는 분산 메모리 컴퓨팅에서 실행 프로세스 잠재적으로 많은 수의 비공유 노드에서 매우 많은 비용이 드는 작업입니다.
은 사용자가 호출하는 기능을 별도의 실행 파일에 포함시킴으로써 무언가를 함께 표시하지만,
관련 문제
- 1. mpi를 사용하여 클래스에서 C++ 변수를 초기화하여 초기화
- 2. Hadoop이 MPI를 사용하여 구현되지 않는 이유는 무엇입니까?
- 3. MPI를 사용하지 않을 때
- 4. MPI를 컴파일하는 중 오류가 발생했습니다
- 5. CUDA + MPI를 사용한 매트릭스 곱셈
- 6. MPI를 사용하여 모든 작업에서 동일한 배열을 효율적으로 업데이트
- 7. boost mpi를 사용하여 사용자 정의 구조체를 전달하는 방법
- 8. MPI를 통한 클러스터의 주요 구성 요소 분석
- 9. 함수 호출기를 사용하여 함수 호출
- 10. jQuery를 사용하여 함수 초기화
- 11. 재귀를 사용하여 함수
- 12. 함수 장식자를 사용하여 C#
- 13. 사용하여 비교 함수
- 14. Boost MPI를 빌드하려고하지만 lib 파일이 작성되지 않습니다. 무슨 일이야?
- 15. MPI를 구현하는 PHP 라이브러리 - Visa 및 SecureCode로 인증?
- 16. setTimeout을 사용하여 함수 호출 문제
- 17. setTimeout을 사용하여 실행되는 stop 함수
- 18. Fortran을 사용하여 C++ 함수 호출
- 19. newID()를 사용하여 함수 생성하기
- 20. 엔티티에 Linq를 사용하여 저장된 함수
- 21. 재귀, 입력을 사용하여 함수 호출하기
- 22. ParameterTypeTuple을 사용하여 함수 시그니처를 테스트하십시오.
- 23. Clojure 매크로를 사용하여 함수 인라인하기
- 24. Reflection을 사용하여 WCF 함수 호출
- 25. 대리자를 사용하여 함수 호출 단순화
- 26. 함수를 사용하여 함수 작성기 호출하기
- 27. Java를 사용하여 Matlab 함수 실행
- 28. 입력을 사용하여 멤버 함수 호출
- 29. oAuth를 사용하여 Twitpic 함수 추가하기
- 30. 정규 표현식을 사용하여 소스 코드에서 함수 및 함수 헤더를 추출하십시오.
(프로세스의 수는 -n mpiexec하는 매개 변수 또는 mpirun이를 통해 설정 예) 실제로는 MPICH2와 관련이 없습니다. –
설명에 따르면 MPI 대신 OpenMP를 사용하는 것이 좋습니다. –