다음을 통해 공유


병렬 컴퓨팅 작업 이해

HPC 팩 클러스터에서 실행할 수 있는 가장 일반적인 병렬 컴퓨팅 작업 유형은 MPI 작업, 매개 변수 스윕 작업, 작업 흐름 작업, SOA(서비스 지향 아키텍처) 작업및 작업을 오프로드하는 Microsoft Excel 계산 있습니다. HPC 팩은 다양한 유형의 병렬 컴퓨팅 작업을 정의하고 제출하는 데 도움이 되는 작업 및 작업 속성, 도구 및 API를 제공합니다.

이 항목에서는 다음을 수행합니다.

MPI 작업

Windows용으로 개발된 MPI(메시지 전달 인터페이스)의 Microsoft 구현인 MS-MPI를 사용하면 MPI 애플리케이션을 HPC 클러스터에서 작업으로 실행할 수 있습니다.

MPI 작업은 본질적으로 병렬입니다. 병렬 작업은 애플리케이션 및 이를 지원하는 소프트웨어에 따라 다양한 형태를 취할 수 있습니다. MPI 애플리케이션의 경우 병렬 작업은 일반적으로 프로세스 간에 통신이 발생하는 여러 코어에서 동시에 실행되는 단일 실행 파일로 구성됩니다.

다음 다이어그램에서는 병렬 작업을 보여 줍니다.

세 가지 프로세스, 양방향 통신

MPI 애플리케이션을 실행하는 작업의 경우 작업 명령 앞에 mpiexec있어야 합니다. 따라서 병렬 태스크에 대한 명령은 mpiexec [mpi_options] <myapp.exe> [arguments]형식이어야 합니다. 여기서 myapp.exe 실행할 애플리케이션의 이름입니다. mpiexec 명령은 MPI 프로세스 배치, 네트워킹 선호도 및 기타 런타임 매개 변수를 제어할 수 있는 여러 인수를 사용합니다. 이러한 매개 변수에 대한 자세한 내용은 Microsoft HPC 팩 명령줄 참조참조하세요.

메모

병렬 작업의 경우 Windows HPC Server 2008에는 Argonne 국립 연구소의 MPICH2 표준을 기반으로 하는 MPI 패키지가 포함되어 있습니다. MS-MPI라는 Microsoft의 MPI 구현에는 시작 관리자 mpiexec, 각 노드에 대한 MPI 서비스 및 사용자 애플리케이션 개발을 위한 SDK(소프트웨어 개발 키트)가 포함됩니다. Windows HPC Server 2008은 자체 병렬 처리 메커니즘을 제공하는 애플리케이션도 지원합니다.

SDK에 대한 자세한 내용은 Microsoft HPC 팩참조하세요.

단일 작업 또는 MPI 작업을 만드는 방법에 대한 자세한 내용은 기본 또는 MPI 작업 정의 - 작업 관리자참조하세요.

파라메트릭 스윕 작업

매개 변수 스윕 작업은 동일한 애플리케이션의 여러 인스턴스( 일반적으로 직렬 애플리케이션, 동시에 실행됨) 및 입력 파일에서 제공하는 입력 및 출력 파일로 전송되는 출력으로 구성됩니다. 입력 및 출력은 일반적으로 단일 공통 폴더 또는 별도의 공통 폴더에 상주하도록 설정된 인덱싱된 파일 집합(예: input1, input2, input3..., output1, output2, output3...)입니다. 작업 간에 통신 또는 상호 종속성이 없습니다. 작업이 실행 중일 때 클러스터에서 사용할 수 있는 리소스에 따라 태스크가 병렬로 실행되거나 실행되지 않을 수 있습니다.

다음 다이어그램에서는 매개 변수 스윕 작업을 보여 줍니다.

4개의 직렬 작업, 별도의 입력 및 출력 파일

매개 변수 스윕 작업을 만드는 방법에 대한 자세한 내용은 Parametric Sweep 작업 정의 - 작업 관리자참조하세요.

작업 흐름 작업

작업 흐름 작업에서는 일반적으로 한 작업이 다른 작업의 결과에 따라 달라지므로 작업과 달리 일련의 작업이 지정된 순서로 실행됩니다. 작업에는 많은 태스크가 포함될 수 있으며, 그 중 일부는 매개 변수, 일부 직렬 및 일부 병렬 작업입니다. 예를 들어 MPI 및 매개 변수 작업으로 구성된 작업 흐름 작업을 만들 수 있습니다. 태스크 간의 종속성을 정의하여 태스크가 실행되는 순서를 설정할 수 있습니다.

다음 다이어그램에서는 작업 흐름 작업을 보여 줍니다.

작업 흐름 작업, 종속 작업

작업 1이 먼저 실행됩니다. 둘 다 다른 작업에 종속되지 않으므로 작업 2와 3만 병렬로 실행할 수 있습니다. 작업 4는 작업 2와 3이 모두 완료된 후에 실행됩니다.

작업 흐름 작업을 만드는 방법에 대한 자세한 내용은 작업 종속성 정의 - 작업 관리자참조하세요.

SOA 작업

SOA(서비스 지향 아키텍처)는 느슨하게 결합된 분산 시스템을 빌드하는 방법입니다. SOA 시스템에서 고유 계산 함수는서비스라는 소프트웨어 모듈로 패키지됩니다. 서비스는 네트워크를 통해 배포되고 다른 애플리케이션에서 액세스할 수 있습니다. 예를 들어 애플리케이션이 반복되는 병렬 계산을 수행하는 경우 핵심 계산을 서비스로 패키지하고 클러스터에 배포할 수 있습니다. 이를 통해 개발자는 하위 수준 코드를 다시 작성하지 않고 당황스러운 병렬 문제를 해결하고 애플리케이션을 신속하게 확장할 수 있습니다. 애플리케이션은 여러 서비스 호스트(컴퓨팅 노드)에 핵심 계산을 분산하여 더 빠르게 실행할 수 있습니다. 최종 사용자는 컴퓨터에서 애플리케이션을 실행하고 클러스터 노드는 계산을 수행합니다.

클라이언트 애플리케이션은 최종 사용자가 하나 이상의 서비스의 기능에 액세스할 수 있는 인터페이스를 제공합니다. 개발자는 클러스터-SOA 클라이언트 애플리케이션을 만들어 Windows HPC 클러스터에 배포된 서비스에 대한 액세스를 제공할 수 있습니다. 백 엔드에서 클라이언트 애플리케이션은 Service 태스크가 포함된 작업을 클러스터에 제출하고, broker 노드로 세션을 시작하고, 서비스 요청을 보내고 응답(계산 결과)을 받습니다. 헤드 노드의 작업 스케줄러는 작업 예약 정책에 따라 서비스 작업에 리소스를 할당합니다. 서비스 태스크의 인스턴스는 할당된 각 리소스에서 실행되고 SOA 서비스를 로드합니다. 작업 스케줄러는 서비스 요청 수에 따라 리소스 할당을 조정하려고 합니다.

메모

클라이언트가 지속성 세션을 만든 경우 브로커는 MSMQ를 사용하여 모든 메시지를 저장합니다. 브로커가 저장한 응답은 의도적이거나 의도하지 않은 연결 끊기 후에도 언제든지 클라이언트에서 검색할 수 있습니다.

다음 다이어그램은 클러스터에서 SOA 작업이 실행되는 방법을 보여 줍니다.

HPC 2008 R2 클러스터 SOA 작업이 실행되는 방법

HPC 클러스터용 SOA 클라이언트를 만드는 방법에 대한 자세한 내용은 SOA 애플리케이션 및 Microsoft HPC 팩참조하세요.

메모

Excel용 HPC Services는 SOA 인프라를 사용하여 Microsoft Excel 계산을 클러스터로 오프로드하는 데 도움을 줍니다.

Microsoft Excel 계산 오프로드

일부 버전의 HPC Pack에 포함된 Excel용 HPC 서비스는 Excel 계산을 HPC 팩 클러스터로 오프로드하기 위한 여러 모델을 지원합니다. 클러스터 가속에 적합한 통합 문서에는 병렬로 실행할 수 있는 독립적인 계산이 포함됩니다. 여러 복잡한 장기 실행 통합 문서가 반복적으로 실행됩니다. 즉, 여러 입력 데이터 집합에 대해 여러 번 단일 계산을 수행합니다. 이러한 통합 문서에는 복잡한 Microsoft VBA(Visual Basic for Applications) 함수 또는 계산 집약적 XLL 추가 기능이 포함될 수 있습니다. Excel용 HPC Services는 통합 문서를 클러스터로 오프로드하거나 UDF를 클러스터로 오프로드할 수 있도록 지원합니다.

Microsoft Excel 2010은 Windows HPC 클러스터에서 Excel 2010 UDF를 실행할 수 있도록 하여 UDF 모델을 클러스터로 확장합니다. 지원되는 클러스터를 사용할 수 있는 경우 사용자는 클러스터 커넥터를 선택하고 Excel 옵션 대화 상자의 고급 옵션에서 클러스터 이름을 지정하여 해당 클러스터를 사용하도록 Excel 2010에 지시할 수 있습니다. 클러스터에서 UDF는 하나 이상의 서버에서 계산을 수행한다는 점을 제외하고 기존 UDF와 매우 유사하게 작동합니다. 주요 이점은 병렬 처리입니다. 통합 문서에 장기 실행 UDF에 대한 호출이 포함된 경우 여러 서버를 사용하여 동시에 함수를 평가할 수 있습니다. 클러스터에서 실행하려면 UDF를 클러스터로부터 안전한 XLL 파일에 포함해야 합니다.

자세한 내용은 Excel용 HPC Services참조하세요.

추가 참조

병렬 컴퓨팅 작업을 정의하는 데 사용할 수 있는 작업 및 작업 속성에 대한 자세한 내용은 다음을 참조하세요.

HPC 작업 관리자를 사용하여 작업을 만들고 제출하고 모니터링하는 방법에 대한 자세한 내용은 다음을 참조하세요.

명령 프롬프트 창 또는 HPC PowerShell을 사용하여 작업을 만들고 제출하고 모니터링하는 방법과 SDK, SOA 프로그래밍 모델 및 Excel 계산 오프로드 사용에 대한 정보를 비롯한 개발자 리소스에 대한 자세한 내용은 이 설명서 집합의 추가 문서를 참조하세요.