Azure MS-MPI in a Box

Azure-mpi
우리가 지난번에 다루었던 것 중 하나는 이전 블로그 게시물 설정하는 데 상대적인 어려움이 있습니다. 마이크로소프트 MPI Windows Azure의 클러스터는 HPC 팩 설치 요구 사항으로 인해 공식 문서 추천합니다. 우리가 발견한 바와 같이 HPC 팩 없이 Microsoft MPI 클러스터를 수동으로 설치하고 구성하는 것이 가능하지만 이 프로세스는 잘 문서화되어 있지 않습니다.
오늘 우리는 Azure PaaS용 InfiniBand Microsoft MPI 클러스터를 설치하고 구성하는 독립형 클라우드 서비스 패키지를 출시하게 되어 기쁘게 생각합니다. 우리는 이 "MPI-in-a-box" 기능을 사용하면 전체 HPC 팩 배포를 설치하고 유지 관리하는 데 투자할 필요 없이 일회성 목적으로 클러스터를 훨씬 쉽게 스핀업할 수 있다고 생각합니다.
A9 인스턴스의 연결된 클러스터를 가동하려면 사전 구축된 패키지를 다운로드하고 배포하기만 하면 됩니다. 여기에서 지금 확인해 보세요. 함께 제공되는 .cscfg 파일에서 몇 가지 설정을 조정합니다. 패키지에는 노드에 Microsoft MPI를 설치하고 구성하는 시작 스크립트가 포함되어 있습니다. 시작 스크립트는 노드 간 통신을 위해 방화벽 포트를 열고 mpiexec 호출에 사용할 수 있는 기본 머신 파일을 구축하는 것과 관련된 세부 사항을 처리합니다. 또한 스크립트는 클러스터에 원격으로 액세스하기 위해 모든 역할 인스턴스에 Cygwin OpenSSH 서버를 설치합니다.
또한 .cscfg 파일에서 몇 가지 값을 구성해야 합니다.


  
    
    
      
      
      
      
      
    
    
  

먼저 Instances 요소에서 시작되어야 하는 A9 인스턴스 수를 지정해야 합니다. 다음으로, 최소한 adminuser.publickey 및 jobuser.publickey 설정에 대한 값을 제공해야 부팅 후 머신에 로그인할 수 있습니다. 다양한 구성 설정이 아래에 나열되어 있습니다.

관리자 관리자 그룹에 생성될 사용자의 이름
관리자사용자.공개키 adminuser의 SSH 공개 키입니다. ~/.ssh/authorized_keys 목록에 추가되었습니다.
작업 사용자 사용자 그룹에 생성될 권한이 낮은 사용자의 이름입니다. mpiexec를 실행해야 하는 사용자입니다.
작업사용자.공개키 작업 사용자의 SSH 공개 키입니다. ~/.ssh/authorized_keys 목록에 추가되었습니다.
blob.storageurl 시작 스크립트는 부팅 시 이 위치에서 프로그램을 다운로드합니다. MS-MPI 및 Cygwin 배포판은 여기에 있습니다. Rescale은 필요한 파일을 호스팅하므로 이를 수정할 필요가 없습니다.

.cscfg 파일에 값을 입력한 후에는 Azure 관리 웹 페이지를 통해 서비스를 배포하거나 관리 API를 사용하여 스크립트를 작성할 수 있습니다.
인스턴스가 실행되고 나면 SSH를 사용하여 각 역할 인스턴스에 연결할 수 있습니다. 클라우드 서비스는 클라이언트가 로드 밸런서를 통해 개별 역할 인스턴스에 연결할 수 있도록 인스턴스 내부 끝점을 사용하도록 설정되었습니다. 첫 번째 역할 인스턴스의 포트 22에서 실행되는 OpenSSH 서버는 외부 포트 10106에 매핑됩니다. 두 번째 역할 인스턴스의 OpenSSH 서버는 10107에 매핑되고, 세 번째 역할 인스턴스는 10108에 매핑됩니다.
따라서 foobar.cloudapp.net이라는 클라우드 서비스를 배포한 경우 클러스터의 첫 번째 역할 인스턴스에 로그인하려면 다음과 같은 명령을 사용하는 것이 좋습니다.

ssh -i [jobuser-private-key-file] -p 10106 jobuser@foobar.cloudapp.net

SCP를 사용하여 파일을 클러스터로 전송할 수 있습니다(단, 사용자 정의 SSH 포트를 지정하려면 -p 대신 -P를 사용해야 함).
시작 스크립트는 jobuser 설정에 지정된 사용자로 모든 시스템에서 SMPD 프로세스를 시작합니다. 즉, mpiexec를 실행하려면 이 사용자로 로그인해야 합니다.
mpiexec 호출에 사용할 수 있는 작업 사용자의 홈 디렉터리에 머신 파일이 기록됩니다. 예를 들어, jobuser로 첫 번째 역할 인스턴스에 SSH를 연결한 후 다음 명령은 클러스터에 있는 각 시스템의 호스트 이름을 덤프합니다.

$ mpiexec -machinefile 기계 파일 호스트 이름 RD00155DC0E6D8 RD00155DC0BEB3

마지막으로 시작 스크립트는 클러스터의 모든 노드 간에 기본 Windows SMB 파일 공유도 구성합니다. 작업 사용자는 ~/work/shared 경로에서 이 폴더에 액세스할 수 있습니다. 이는 클러스터의 노드 간에 파일을 배포하는 쉬운 방법입니다. 그러나 다음과 같은 것을 사용하면 더 나은 성능을 얻을 수 있다는 점에 유의하십시오. 아즈카피 대신 각 노드가 Blob Storage에서 입력 파일을 다운로드하도록 합니다.
XNUMXD덴탈의 소스 코드 클라우드 서비스에 대한 정보는 Github에서 확인할 수 있습니다. 자유롭게 포크하고 기여해 보세요.
MPIClusterService.zip

비슷한 게시물