CycleCloud 일정 예약 및 자동 스케일링 개념

CycleCloud는 스케줄러가 아니라 사용자가 Azure에 자신의 스케줄러를 배포하여 작업을 관리하고 노드 클러스터에 배포할 수 있는 플랫폼입니다. 또한 CycleCloud는 스케줄러용 자동 크기 조정 어댑터를 개발하기 위한 REST API 및 Python 라이브러리를 제공하여 이러한 관리형 클러스터가 작업 큐 및 거버넌스 정책의 길이에 따라 크기 조정 또는 축소할 수 있도록 합니다.

오케스트레이션 다이어그램

스케줄러

스케줄러는 작업(또는 작업) 목록을 수락하고 이러한 작업을 사용 가능한 리소스 풀에 배포하는 소프트웨어로, 작업의 리소스 요구 사항과 작업 간 종속성 및 우선 순위를 고려합니다. 이러한 작업 목록을 일반적으로 큐라고 합니다.

CycleCloud는 일반적으로 사용되는 여러 스케줄러(PBS Professional OSS, Slurm, IBM LSF, Grid Engine 및 HT Condor)에 대한 기본 제공 지원과 함께 제공되어 Azure에 이러한 스케줄러를 배포하기 위한 템플릿을 제공합니다. 이러한 템플릿은 대기 시간이 짧은 InfiniBand 네트워킹과 같은 고유한 특수 기능을 활용하는 Azure에서 HPC 클러스터를 빌드하기 위한 모범 사례를 나타내는 기본 토폴로지입니다.

또한 프로젝트는 각 스케줄러에 대해 만들어지고 헤드 노드 및 컴퓨팅 노드에 스케줄러 디먼을 설치하고 초기화하는 데 사용됩니다.

스케줄러 어댑터

각 스케줄러 유형에 대해 만들어진 어댑터는 두 가지 기본 역할을 수행합니다. 즉, 1) 스케줄러 큐에서 리소스 요구 사항을 집계하고, 2) 리소스 요구 사항을 Azure VM 크기 집합에 대한 할당 요청으로 변환합니다. 이러한 할당 요청은 특정 제약 조건(예: VM 할당량, 클러스터 크기에 대한 제한 및 InfiniBand 네트워크 토폴로지에서 적용되는 제한(적절한 VM 크기)을 고려하여 생성됩니다. 특정 측면에서 이러한 어댑터는 여러 당사자의 수요와 공급을 협상하는 브로커와 유사합니다.

Monitor

모니터는 CycleCloud 애플리케이션 서버에서 실행되고 Azure 구독의 리소스 가용성을 위해 Azure 서비스를 주기적으로 폴링하는 프로세스입니다. 이 모니터는 수요 조정을 위해 스케줄러 어댑터에 이러한 정보를 제공합니다.

노드 할당자

노드 할당자는 CycleCloud 애플리케이션 서버에서 실행됩니다. REST API를 통해 스케줄러 어댑터에서 할당 요청을 수신하고, 요청을 이행하는 데 필요한 Azure 리소스를 프로비전하고, 프로비전된 리소스를 스케줄러 어댑터에 노드 집합으로 다시 제공합니다.

참고

위의 기본 개념은 스케줄러 간에 일반적이지만 구현 세부 정보는 스케줄러 간에 다릅니다. 각 구현에 대한 자세한 내용은 개별 스케줄러 페이지를 참조하세요.