다음을 통해 공유


방법: MPI 클러스터 디버거 구성 및 실행

MPI 클러스터 디버거를 사용하면 Windows HPC Server 클러스터에서 실행 중이고 MPI(Message Passing Interface)를 통해 통신하는 병렬 응용 프로그램을 디버깅할 수 있습니다. Visual Studio에서는 클러스터 헤드 노드를 선택하고 디버깅 세션에 포함할 프로세스 수를 지정하고, 클러스터 디버깅 세션의 고급 속성을 구성한 다음 디버거를 시작할 수 있습니다.

MPI 클러스터 디버거 사용 시 요구 사항

  • Visual Studio 2010 Professional Edition 이상(원격 디버거 포함)이 개발 컴퓨터에 설치되어 있어야 합니다.

  • 클러스터에서 관리 권한이 있어야 합니다.

  • Visual Studio가 디버깅 세션을 실행할 계산 노드에 액세스할 수 있어야 합니다. 다음 시나리오에서는 필요한 액세스를 제공합니다.

    • 클러스터 헤드 노드 또는 전용 로그인 노드에서 응용 프로그램을 개발 중입니다.

    • 계산 노드가 엔터프라이즈 네트워크(토폴로지 2, 4 또는 5)에 연결되어 있는 클러스터를 사용 중이고 개발 컴퓨터가 동일 도메인 또는 클러스터 도메인과 트러스트 관계인 도메인에 가입되어 있습니다.

  • 응용 프로그램을 클라이언트 컴퓨터에서 HPC 클러스터로 제출하려면 Microsoft HPC Pack 2008이 설치되어 있어야 합니다.

  • MSMPI(Microsoft Message Passing Interface)를 사용하여 MPI 프로그램을 빌드하려면 Windows HPC Server 2008 SDK를 개발 컴퓨터에 설치해야 합니다.

MPI 클러스터 디버거를 구성하려면

  1. Visual Studio에서 병렬 응용 프로그램이 들어 있는 솔루션을 엽니다.

  2. 프로젝트 메뉴에서 <프로젝트 이름> 속성을 클릭합니다. 그러면 속성 페이지 대화 상자가 열립니다.

  3. 구성 속성 노드를 확장하고 디버깅을 선택합니다.

  4. 실행할 디버거 아래에서 MPI 클러스터 디버거를 선택합니다.

  5. 디버깅에 사용할 노드 및 프로세스 수를 선택합니다.

    1. 실행 환경의 드롭다운 목록에서 Hpc 노드 편집을 선택합니다. 그러면 노드 선택기 대화 상자가 열립니다.

    2. 헤드 노드 드롭다운 목록에서 사용할 헤드 노드의 이름을 선택합니다. 헤드 노드가 표시되지 않으면 헤드 노드의 이름이나 IPv4 주소를 입력합니다.

    3. 프로세스 수에서 실행할 프로세스 수를 선택합니다.

    4. 단일 프로세스 예약 단위에서 프로세스 할당 방법을 선택합니다. 코어, 소켓 또는 노드당 한 개의 프로세스를 할당할 수 있습니다.

    5. 선택적으로 노드 선택 위치에서 디버깅 세션을 실행할 노드 그룹을 지정할 수 있습니다. 선택한 그룹의 노드가 노드 목록에 나타납니다.

    6. 선택적으로 특정 노드를 요청하려면 할당에 포함할 노드 수동 선택을 선택한 다음 목록에서 개별 노드를 선택합니다.

    7. 확인을 클릭하여 변경 내용을 저장하고 노드 선택기 대화 상자를 닫습니다.

  6. 다음 속성을 구성합니다.

    1. 배포 디렉터리:

      배포 디렉터리의 이름을 지정합니다. 디버거 시작 시 프로젝트 출력 파일이 복사되는 위치입니다. 네트워크 공유 리소스여야 합니다. 예를 들면 다음과 같습니다.

      \\myTestCluster\CcpSpoolDir\$(UserName)\$(ProjectName)

    2. 작업 디렉터리:

      각 계산 노드의 로컬 작업 디렉터리를 지정합니다. 배포 디렉터리의 파일은 계산 노드의 작업 디렉터리로 복사됩니다.

    3. 응용 프로그램 명령:

      MPI가 각 클러스터 노드에서 실행할 응용 프로그램 이름 또는 응용 프로그램 경로를 지정합니다. 이는 Visual Studio에서 디버깅 중인 응용 프로그램입니다. 경로는 공유 리소스이거나 클러스터에 있는 각 계산 노드의 로컬 경로일 수 있습니다. 로컬 경로이면 경로는 각 노드에서 동일해야 합니다. 예를 들면 다음과 같습니다.

      $(WorkDir)\$(TargetFileName)

    4. CRT 배포:

      Visual Studio가 응용 프로그램과 함께 CRT(C 런타임) 어셈블리를 배포하게 하려면 를 선택합니다.

      다중 스레드 디버그 DLL(동적 연결 라이브러리)이 정적으로 연결되어 있으면 CRT 파일을 배포할 필요가 없습니다. 다중 스레드 디버그 DLL이 동적으로 연결되어 있으면 CRT 파일을 배포해야 합니다.

    5. 배포 정리:

      를 선택합니다.

      참고

      배포 디렉터리에 Visual Studio가 배치하지 않은 다른 파일이 포함되어 있는 경우에는 해당 디렉터리가 삭제되지 않습니다. 예를 들어, 응용 프로그램이 배포 디렉터리로 출력을 생성하는 경우에는 디버그 후 스크립트를 사용하여 디렉터리를 삭제해야 합니다.

  7. 확인을 클릭하여 변경 내용을 저장하고 속성 페이지를 닫습니다.

참고

여러 프로세스를 디버깅하는 경우에는 기본적으로 중단점이 디버깅 중인 모든 프로세스에 영향을 미칩니다. 의도치 않은 위치에서 프로세스가 중단되는 것을 피하려면 한 프로세스가 중단될 때 모든 프로세스 중단 옵션을 선택 취소합니다. 중단 동작을 변경하는 방법에 대한 자세한 내용은 방법: 실행 중단을 참조하십시오.

MPI 클러스터 디버거를 실행하려면

  1. 코드에 하나 이상의 중단점을 설정합니다 중단점 설정에 대한 자세한 내용은 중단점 및 추적점을 참조하십시오.

  2. F5를 눌러 디버거를 실행합니다.

    참고

    MPI 클러스터 디버거에서 디버깅하지 않고 시작할 수 없습니다. Ctrl+F5(또는 디버그 메뉴의 디버깅하지 않고 시작)를 눌러서도 디버깅을 시작할 수 있습니다.

  3. 작업을 클러스터에 제출 중이므로 클러스터에 연결하려면 암호를 입력하라는 메시지가 표시됩니다. 암호를 입력한 다음 Enter 키를 누릅니다.

  4. 디버거가 실행된 후 프로세스 창을 보고 프로세스의 배치를 확인합니다. 각 프로세스마다 전송 한정자 열을 보고 프로세스가 실행 중인 계산 노드를 확인합니다.

참고

디버거를 실행한 후에 프로세스 창에서 프로세스를 두 번 클릭하여 디버깅할 활성 프로세스를 설정할 수 있습니다. 프로세스 창을 열려면 디버그 메뉴에서 을 클릭한 다음 프로세스를 클릭합니다.

참고 항목

개념

MPI 클러스터 디버거 구성 속성
연습: Visual Studio 2010에서 MPI 클러스터 디버거 실행
HPC 클러스터에서 MPI 응용 프로그램 디버깅

기타 리소스

디버거 로드맵
mpiexec Command Reference