2017-09-24 3 views
0

OpenMPI를 사용하여 병렬 컴퓨팅 작업을 실행하고 싶은 이기종 컴퓨팅 클러스터가 있습니다. 클러스터의 모든 노드가 동일한 실행 파일을 실행할 수있는 것은 아니기 때문에 (일부이기 때문에) 노드 중 일부는 자체 버전의 프로그램을 컴파일하고 Open MPI는 해당 노드에서 실행 파일을 호출해야합니다. 나의 첫 번째 질문은 OpenMPI가 이기종 아키텍처 전반에서 이런 종류의 컴퓨팅을 가능하게하는지 여부이다.특정 노드에 대해 OpenMPI 실행 지정

그렇다면 두 번째 질문은 어떤 노드에서 실행할 실행 파일을 지정하는 방법입니다. 예를 들어 prog1node3, node4node5prog1prog2이 같은 프로그램하지만 mpicc 또는 mpic++ 래퍼 컴파일러를 사용하여 다른 아키텍처 용으로 컴파일되어 실행 prog2을 실행할 수있는 실행 실행할 수 있습니다 node0, node1node2 말할 수 있습니다. 나는 다음을 수행하는 모든 노드에 병렬로이 프로그램을 실행하고 싶었다면

:

mpirun -n 3 --hosts node0,node1,node2 prog1 : -n 3 --hosts node3,node4,node5 prog2

그렇지 않은 경우, 나는이 효과를 달성하기 위해 무엇을 할 것인가? This 게시물은 이기종 클러스터 컴퓨팅이 OpenMPI에서 지원되지만 OpenMPI는 --enable-heterogeneous 플래그로 빌드해야 함을 나타냅니다. 내 클러스터가 ArchLinux를 실행하고 있고 pacman으로 OpenMPI를 설치했기 때문에이 작업을 수행하는 방법을 모르겠습니다. 오타가

답변

1

주 (, 그래서 당신의 명령을

mpirun -n 3 --host node0,node1,node2 prog1 : -n 3 --host node3,node4,node5 prog2 

--enable-heterogeneous은 MPI는 인텔 x86_64의 사이에 예를 들어, 이기종 시스템 (에서 실행 될 수 있도록 열기 필요한해야한다 (--host는이 s 결말이 필요하지 않습니다) 리틀 엔디안) 및 sparcv9 (빅 엔디 언) 노드). OpenMPI (ArchLinux와 함께 제공)가이 플래그로 구성되지 않은 경우이 패키지를 다시 빌드해야합니다. 다른 옵션은 Open MPI를 재 구축하여 대체 디렉토리에 설치하는 것입니다.

이질적인 지원은 매우 가볍게 테스트되었으며 최신 Open MPI 3.0 시리즈를 사용하는 것이 좋습니다.

+0

좋습니다. 따라서 OpenMPI를 해당 플래그로 빌드하고 나면 별도의 실행 파일을 컴파일하고 해당 명령으로 실행할 수 있습니다. –

+0

내 생각에, 어떤 종류의 아키텍처를 계속 실행할 계획입니까? –

+0

클러스터의 일부 노드는 x86 칩셋을 가지고 있으며 일부는 ARM (불쌍한 사람의 클러스터, 더 많은 교육 프로젝트 종류의 것)입니다. –

관련 문제