가장 기본적인 측면에서 HPC(고성능 계산) 시스템은 성능이 뛰어난 파일 시스템에 의해 뒷받침되고 대기 시간이 짧은 네트워크로 상호 연결된 계산 리소스 풀입니다. HPC 스케줄러, 작업을 예약하는 소프트웨어 애플리케이션은 일반적으로 이러한 계산 리소스를 관리합니다.
가상 머신, 디스크 및 네트워크 인터페이스와 같은 기본 인프라 단위에서 Azure에서 개별 HPC 시스템을 빌드하는 것은 번거로울 수 있습니다. 특히 이러한 리소스가 임시적인 경우 HPC 작업을 해결하는 데 필요한 시간 동안만 존재합니다. 또한 다양한 사업부, 연구 팀 또는 개인에 맞게 조정된 별도의 여러 HPC 환경을 만들 수 있습니다. 이러한 여러 HPC 시스템 관리는 운영적으로 복잡할 수 있습니다.
CycleCloud란?
Azure CycleCloud는 Azure에서 HPC 시스템을 구성하는 데 도움이 되는 도구입니다. 기본 Azure 구성 요소를 관리하는 번거로움 없이 HPC 작업에 따라 탄력적으로 크기를 조정하도록 이러한 시스템을 오케스트레이션합니다. 숙련된 HPC 전문가 팀이 HPC 관리자 및 사용자, 특히 내부 HPC 인프라와 유사한 Azure에서 HPC 시스템을 빌드하려는 사용자를 위해 CycleCloud를 설계했습니다.
운영적으로 CycleCloud는 Azure의 Linux VM 또는 Azure API 및 리소스에 대한 액세스 권한이 있는 온-프레미스 서버에 설치하는 애플리케이션 서버입니다. CycleCloud는 스케줄러와 사용자 애플리케이션을 통합할 수 있는 CycleCloud 클러스터를 구축하기 위해 Azure VM을 인수하고 프로비전합니다. CycleCloud는 또한 다수의 HPC 스케줄러와 Azure VM에서 실행되는 CycleCloud 에이전트에 대한 자동 크기 조정을 통합합니다.
애플리케이션 서버
이 애플리케이션 서버는 다음을 제공합니다.
- Azure에서 HPC 시스템을 만들고 관리하기 위한 REST API입니다.
- HPC 시스템을 관리하고 모니터링하는 데 사용하는 그래픽 사용자 인터페이스입니다.
- CycleCloud를 기존 워크플로에 통합하는 것을 용이하도록 하는 CLI입니다.
- 클러스터 및 노드 상태를 캐시하는 내부 NoSQL 데이터 저장소입니다.
- Azure VM을 획득하고 관리하는 할당 및 오케스트레이션 시스템입니다.
- 기존 VM의 상태 변경에 대한 경고를 제공하는 노드 모니터링 시스템입니다.
통합
또한 CycleCloud는 공통 스케줄러 및 Azure VM에 통합을 제공합니다. 이러한 통합은 다음을 제공합니다.
- 프로비전된 VM을 HPC 노드로 변환하기 위한 노드 준비 및 구성 시스템입니다.
- HPC 스케줄러 작업 요구 사항을 Azure 리소스로 변환하는 HPC 스케줄러에 대한 자동 크기 조정입니다.
CycleCloud에서 수행할 수 있는 일
CycleCloud는 Azure에 HPC 시스템을 배포하는 HPC 운영자(관리자 및 사용자)를 대상으로 합니다. HPC 스케줄러에서 애플리케이션 설치 및 데이터 액세스를 위한 파일 시스템 탑재 지점까지 내부적으로 실행 중인 인프라를 복제하려고 합니다. 이러한 사용자는 특히 내부 프로세스를 재정비하지 않고도 애플리케이션, 워크플로 엔진 및 계산 파이프라인에 대한 지원을 찾습니다.
CycleCloud는 HPC 시스템을 설명할 수 있는 풍부하고 선언적인 템플릿 구문을 제공합니다. 각 노드에 배포하는 클러스터 노드, 탑재 지점 및 애플리케이션의 수와 유형을 포함하는 클러스터 토폴로지 정의할 수 있습니다. CycleCloud는 PBSPro, Slurm, IBM LSF, 그리드 엔진 및 HT Condor와 같은 HPC 스케줄러와 함께 작동하도록 설계되었습니다. 각 스케줄러에서 서로 다른 큐를 만들고 Azure에서 서로 다른 VM 크기의 컴퓨팅 노드에 매핑할 수 있습니다. 또한 자동 크기 조정 플러그 인은 스케줄러 헤드 노드와 통합됩니다. 각 시스템에서 작업 큐를 수신 대기하고 애플리케이션 서버에서 실행되는 자동 크기 조정 REST API와 상호 작용하여 컴퓨팅 클러스터의 크기를 조정합니다.
CycleCloud는 HPC 노드를 프로비전하고 만드는 것 외에도 가상 머신을 준비하고 구성하기 위한 프레임워크를 제공합니다. 완전 VM을 HPC 시스템의 기능 구성 요소로 변환하는 시스템을 제공합니다. 이 프레임워크를 통해 VM에서 마지막 마일 구성을 수행할 수 있습니다.
또한 CycleCloud는 다음과 같은 기능을 제공합니다.
사용자 액세스
CycleCloud는 HPC 시스템의 각 노드에서 로컬 사용자 계정을 만들기 위한 기본 제공 지원을 제공합니다. 이 시스템을 사용하면 디렉터리 서비스를 배포하지 않고 단일 관리 평면을 통해 사용자 액세스를 제어할 수 있습니다.
모니터링
노드 수준의 메트릭은 CycleCloud UI에서 수집되어 표시됩니다. 이러한 메트릭은 시스템의 부하를 모니터링하는 데 유용합니다. 이를 보고 및 경고 서비스에 연결할 수 있습니다.
로깅
CycleCloud는 노드 및 애플리케이션 서버 수준에서 작업과 이벤트를 로깅하는 시스템을 제공합니다.
이식성
시스템은 특정 VM 이미지 또는 운영 체제를 사용하도록 의무화하지 않습니다. CycleCloud는 HPC 노드에서 주요 Windows 및 Linux 운영 체제를 지원합니다. 또한 사용자 고유의 VM 이미지를 빌드하고 HPC 시스템에서 사용할 수 있습니다.
코드 제공 인프라
CycleCloud에서 만든 모든 항목은 템플릿 및 구성 스크립트에 정의되어 있으므로 CycleCloud를 통해 배포된 HPC 시스템을 반복 가능하고 이식 가능하게 만들 수 있습니다. 이 방법은 샌드박스, 개발, 테스트 및 프로덕션과 같은 다양한 환경에서 HPC 시스템을 배포하는 운영자에게 일관성을 제공합니다. 운영자는 서로 다른 사업 그룹이나 팀에 동일한 HPC 시스템을 구축하여 회계 문제를 분리할 수도 있습니다.
느슨하게 결합되거나 단단히 결합된 워크로드
CycleCloud에서 만든 HPC 클러스터는 크기 조정(클러스터의 크기)이 주요 관심사인 느슨하게 결합되거나 당황스러운 병렬 작업뿐만 아니라 지원하도록 설계되었습니다. 또한 CycleCloud 클러스터는 Azure의 InfiniBand 백본을 염두에 두고 설계되어 노드 근접성 및 네트워크 대기 시간이 중요한 긴밀하게 결합되거나 MPI 기반 워크로드를 지원합니다. 이렇게 스케일 아웃할 수 있으며 긴밀하게 결합된 개념은 CycleCloud가 지원하는 스케줄러 통합에 근거를 두고 있습니다.