MPI 클러스터 디버거 구성 속성

MPI 클러스터 디버거 구성 속성을 사용하면 디버깅 세션을 실행하는 방법을 정의할 수 있습니다. 이 정보는 다음과 같은 작업에 사용됩니다.

  • 디버깅 세션을 실행할 클러스터 및 노드 선택

  • 실행할 프로세스 수 지정

  • 배포 정보 지정

  • 디버그 전 스크립트 및 디버그 후 스크립트 지정

다음 표에는 MPI 클러스터 디버거의 구성 속성이 설명되어 있습니다.

MPI 클러스터 디버거 구성 속성

속성 설명 기본값

실행 환경

클러스터에서 디버거를 실행할 때 사용할 헤드 노드, 시작할 MPI 프로세스 수 및 계산 노드당 프로세스 할당(선택 사항)을 지정합니다.

특정 노드를 요청하고 선택적으로 프로세스를 할당하려면 실행 환경 드롭다운 목록에서 Hpc 노드 편집을 선택합니다. 그러면 노드 선택기 대화 상자가 열립니다. 추가 고려 사항에 대한 내용은 특정 노드 선택 및 호스트 매개 변수를 참조하십시오.

또는 localhost/<number of processes>를 지정하여 디버거를 로컬로 실행할 수 있습니다.

Dd560807.note(ko-kr,VS.100).gif참고:
이 속성에 지정된 리소스 선택은 작업 설명 파일에 지정된 모든 리소스 할당을 재정의합니다.

localhost/1

배포 디렉터리

디버거 시작 시 프로젝트 출력 파일이 복사될 디렉터리를 지정합니다. 이 디렉터리는 일반적으로 클러스터 헤드 노드에 있으며 디버깅 세션에 참가하는 모든 계산 노드가 읽을 수 있는 네트워크 공유여야 합니다. 예를 들면 다음과 같습니다.

CcpSpoolDir 디렉터리 공유는 HPC 팩 2008이 헤드 노드에 설치될 때 생성됩니다.

배포 디렉터리가 존재하지 않고 지정된 루트 디렉터리에 쓰기 권한이 있으면 배포 디렉터리가 자동으로 생성됩니다.

로컬 디버깅:

없음

클러스터 디버깅:

\\headnode\CcpSpoolDir\$(UserName)\$(ProjectName)

작업 디렉터리

각 프로세스가 사용할 작업 디렉터리를 지정합니다. 이 디렉터리는 실행 파일이 실행되는 위치입니다.

클러스터를 디버깅하는 동안 배포 디렉터리와 다른 경우 배포 디렉터리의 파일이 계산 노드에 있는 작업 디렉터리로 복사됩니다.

로컬 디버깅:

Visual Studio 프로젝트를 위한 출력 디렉터리

클러스터 디버깅:

%tmp% 디렉터리

응용 프로그램 명령

MPI가 각 클러스터 노드에서 실행할 응용 프로그램 이름 또는 응용 프로그램 경로를 지정합니다. 이는 Visual Studio에서 디버깅 중인 응용 프로그램입니다. 경로는 공유 리소스 또는 로컬 경로일 수 있습니다.

디버거가 응용 프로그램 파일을 배포 폴더로 복사합니다.

$(TargetFileName)

응용 프로그램 인수

응용 프로그램에 전달할 인수를 지정합니다.

없음

MPIShim 위치

배포 컴퓨터에서 MPIshim 실행 파일의 전체 경로를 지정합니다. Visual Studio는 MPIShim을 이 위치에서 배포 디렉터리로 복사하려고 합니다.

MPIshim은 Visual Studio에 포함되고 원격 디버깅 구성 요소와 함께 설치되어 병렬 디버깅이 가능해집니다.

이 속성 값을 완전히 사용자 지정된 MPI 클러스터 디버거 실행의 일부로 제공할 수 있습니다.

%ProgramFiles%\Microsoft Visual Studio 10.0\Common7\IDE\Remote Debugger

MPIExec 명령

MPI 응용 프로그램의 실행을 조정하는 MPI 프로그램의 전체 경로를 지정합니다.

계산 노드에 다른 MPI 라이브러리 구현이 설치되어 있고 연관된 MPI 스택을 사용하여 응용 프로그램을 실행하려는 경우에는 이 속성을 사용하여 각 계산 노드에서 해당 실행 파일의 전체 경로를 지정해야 합니다. 각 노드에서 경로가 동일하지 않으면 MPIexec.exe 및 종속 라이브러리를 디버거의 추가로 배포할 파일 속성에 포함시켜야 합니다.

지정하는 MPI 스택이 호스트 매개 변수를 지원하지 않으면 특정 환경에서 런타임 오류가 발생할 수 있습니다. 더 자세한 내용은 특정 노드 선택 및 호스트 매개 변수를 참조하십시오.

MPIexec.exe

추가 MPIExec 인수

MPIexec.exe에 전달할 추가 인수를 지정합니다. 예를 들어 추가 인수를 사용하여 MPIexec.exe가 실행하는 프로세스의 환경 변수를 설정할 수 있습니다.

호스트 매개 변수를 지정하면 특정 환경에서 런타임 오류가 발생할 수 있습니다. 더 자세한 내용은 특정 노드 선택 및 호스트 매개 변수를 참조하십시오.

MPIexec 명령에 대한 자세한 내용은 mpiexec Command Reference(https://go.microsoft.com/fwlink/?LinkId=144910)(영문)을 참조하십시오.

없음

MPI 네트워크 보안 모드

Visual Studio의 현재 인스턴스에 연결할 수 있는 IP 주소를 지정합니다.

다음 세 가지 보안 모드가 있습니다.

  • 로컬 서브넷에서만 연결 허용

  • 지정한 주소 범위에서만 연결 허용

    Dd560807.Important(ko-kr,VS.100).gif 참고:
    이 옵션을 선택한 경우에는 MPI 네트워크 필터 속성을 사용하여 범위를 지정해야 합니다.

  • 모든 주소에서 연결 허용

모든 주소에서 연결 허용

MPI 네트워크 필터

연결을 허용할 IP 주소 범위를 지정합니다. 이 범위의 시작 IP 주소 및 서브넷 마스크를 지정합니다.

예를 들어, 192.168.0.1/255.255.255.0의 네트워크 필터에는 192.168.0.1과 192.168.0.254 사이의 모든 주소가 포함됩니다.

Dd560807.Important(ko-kr,VS.100).gif 참고:
이 필터를 적용하려면 MPI 네트워크 보안 모드에서 지정한 주소 범위에서만 연결 허용을 선택합니다.

없음

디버거 형식

실행 중인 코드의 디버거 형식을 지정합니다. 원시, 관리, 혼합 또는 스크립트 중에서 지정합니다.

자동

.exe 파일의 내용을 기반으로 디버거 형식을 선택합니다.

작업 설명 파일

디버깅 작업에 추가할 작업이 들어 있는 작업 설명 파일(XML)의 경로를 지정합니다. 이 파일에 지정된 작업은 디버거가 생성하는 작업(배포, 디버깅 및 정리 작업) 전에 추가됩니다.

Dd560807.note(ko-kr,VS.100).gif참고:
클러스터 디버거 속성에서 선택한 리소스는 작업 설명 파일에 지정된 모든 리소스 할당을 재정의합니다.

작업 설명 파일을 HPC Job Manager 콘솔의 새 작업이나 대기 중인 작업에서 만들려면 새 작업 또는 작업 보기 대화 상자에서 다른 이름으로 작업 저장을 클릭합니다.

없음

추가로 배포할 파일

프로젝트 및 해당 종속성이 필요로 하는 파일 및 디렉터리 외에 배포 디렉터리에 복사할 파일 및 디렉터리를 지정합니다.

없음

스케줄러 시간 제한(ms)

디버거가 헤드 노드에 연결하기 위해 시도하는 시간 길이(밀리초)를 지정합니다. 이 기간 후에는 헤드 노드가 유효한 것으로 간주되지 않습니다.

5000 밀리초

CRT 배포

Visual Studio가 응용 프로그램과 함께 C 런타임(CRT) 어셈블리를 배포하는지 여부를 지정합니다.

를 지정하면 CRT 어셈블리가 응용 프로그램과 함께 배포됩니다.

아니요를 지정하면 CRT 어셈블리가 응용 프로그램과 함께 배포되지 않습니다.

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

배포 정리

Visual Studio가 디버깅 후에 배포 디렉터리를 삭제할지 여부를 지정합니다.

를 지정하면 디버거가 중지될 때 배포 디렉터리가 삭제되고 공유 리소스가 제거됩니다.

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

아니요를 지정하면 배포 디렉터리가 삭제되지 않습니다.

디버그 전 스크립트

디버깅 전에 실행할 스크립트의 경로를 지정합니다. 스크립트는 Visual Studio가 실행 중인 컴퓨터에서 실행됩니다.

예를 들어, 디버그 전 스크립트를 사용하여 노드에서 응용 프로그램의 데이터를 스테이징하거나 원격 디버거를 허용하도록 클러스터에서 방화벽 설정을 조정할 수 있습니다.

없음

디버그 전 스크립트 인수

디버그 전 스크립트에 전달되는 인수 문자열을 지정합니다.

없음

디버그 후 스크립트

디버깅 중지 후에 실행할 스크립트의 경로를 지정합니다.

예를 들어, 디버그 후 스크립트를 사용하여 스테이징된 데이터 또는 응용 프로그램이 생성한 출력 파일을 정리하거나, 디버깅 세션 후에 원격 디버거를 허용하지 않도록 클러스터에서 방화벽 설정을 조정할 수 있습니다.

없음

디버그 후 스크립트 인수

디버그 후 스크립트에 전달되는 인수 문자열을 지정합니다.

없음

특정 노드 선택 및 호스트 매개 변수

MPI 클러스터 디버거를 구성할 때 사용할 클러스터 및 실행할 프로세스 수를 지정해야 합니다. 디버깅 세션에 사용할 특정 노드를 선택할 수 있습니다(선택사항).

MPI 클러스터 디버거는 MPIexec 명령과 함께 호스트 매개 변수를 사용하여 다음의 두 조건이 모두 true일 때 프로세스를 배치합니다.

  1. 디버깅 세션에 사용할 특정 노드를 선택합니다.

  2. 선택한 프로세스 수가 필요로 하는 노드의 리소스 수보다 적습니다.

특정 노드를 요청하고 필요로 하는 노드의 총 리소스 수가 지정한 프로세스 수보다 많으면 디버거가 호스트 매개 변수를 사용하여 프로세스를 배치합니다. 예를 들어 각각 4개의 코어와 함께 두 개의 노드(NODE01 및 NODE02)를 선택하고 6개의 프로세스 실행을 지정한 경우 디버거는 다음 인수를 MPIexec.exe로 전달합니다. -hosts 2 NODE01 4 NODE2 2.

참고

MPI 클러스터 디버거가 호스트 매개 변수를 사용하여 프로세스를 배치하는 경우 다음 조건 중 하나라도 true이면 런타임 오류가 발생합니다.

  • 호스트 매개 변수를 지원하지 않는 MPI 스택을 지정했습니다.

  • 추가 MPIExec 인수 속성의 호스트 매개 변수를 지정했습니다.

참고 항목

개념

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

기타 리소스

mpiexec Command Reference