내가 입력 할 때 : 12 개 프로세스Open MPI를 사용하여 하나의 Mac Pro에서 12 개의 코어가있는 하나의 큰 작업을 어떻게 나눌 수 있습니까?
내 전체 싶습니다 총,
1 개 실/노드 12 개 노드를 사용하여 :
내가 메시지가 12 개의 코어 각각에 12 개의 별도 작업이 전송되는 대신 1 개의 노드로 인식되고 12 개의 스레드를 모두 실행하도록 코어 세트를 구성 할 수 있습니다.mpiexec -n 12 ./Main
내가 입력 할 때 : 12 개 프로세스Open MPI를 사용하여 하나의 Mac Pro에서 12 개의 코어가있는 하나의 큰 작업을 어떻게 나눌 수 있습니까?
내 전체 싶습니다 총,
1 개 실/노드 12 개 노드를 사용하여 :
내가 메시지가 12 개의 코어 각각에 12 개의 별도 작업이 전송되는 대신 1 개의 노드로 인식되고 12 개의 스레드를 모두 실행하도록 코어 세트를 구성 할 수 있습니다.mpiexec -n 12 ./Main
나는이 메시지가 매우 오도 된 것이라고 생각하고 혼란스러워한다. MPI
은 Message Passing Interface (메시지 전달 인터페이스)의 약자이며 MPI 작업 (예 : 프로세스)을 포함합니다. 당신
mpiexec -n 12 ./Main
는 MPI를 요구하는 경우 함께 작동합니다 (12 개) MPI 작업으로 만들어진 하나의 작업을 만듭니다. MPI는 스레드를 생성하지 않습니다. 12 개의 스레드가있는 하나의 프로세스를 원하면 OpenMP와 같은 다른 패러다임을 고려해야합니다. 하이브리드 MPI + OpenMP 코드를 사용할 수 있습니다. 따라서 Mac Pro 2 대가있는 경우 하나의 작업은 작업 당 12 개의 OpenMP 스레드가있는 2 개의 MPI 작업으로 구성 될 수 있습니다.
메시지는 메시지 언급 스레드 때문에, 앱이 이미 MPI + OpenMP를 할 수 있음을 의미하며, using 12 MPI tasks with 1 thread/task, for a total of 12 threads
해야한다. 이 경우, 당신은 1 개 MPI 작업 12의 OpenMP 스레드를 원한다면, 당신도 mpiexec
(일명 싱글 모드)를 필요로하지 않으며, 당신은 할 수 있어야 단순히
OMP_NUM_THREADS=12 ./Main