Resource queue로 동시 연산 자원 배분하기
Resource queue는 동시에 사용할 수 있는 vCPU와 vGPU 같은 서비스 수준 연산 자원을 제한하는 FIFO 대기열입니다. 프로젝트의 작업이 자원을 요청하면 해당 큐에 들어가며, 용량이 차 있으면 앞선 요청부터 처리하고 자원이 반환될 때까지 기다립니다.
큐와 Compute group
Compute group은 같은 종류의 하드웨어로 이루어진 자동 확장 그룹입니다. 예를 들어 메모리 16 GB와 CPU 4개인 머신 그룹, V100 GPU와 CPU 16개 및 메모리 32 GB인 머신 그룹을 따로 둘 수 있습니다.
큐는 어떤 Compute group으로 작업을 보낼지와 동시에 허용할 자원 수를 정합니다. 작업이 끝나거나 종료되면 자원을 반환합니다.
같은 하드웨어 그룹 앞에 서로 다른 vCPU 한도의 큐를 둘 수 있고 GPU용 큐는 GPU가 있는 그룹으로 연결합니다. 큐 한도는 작업 개수가 아니라 요청한 연산 자원 수입니다.
스트리밍 리소스용 큐는 모든 플랫폼 인스턴스에서 사용할 수 있는 것은 아니므로 필요한 경우 Palantir Support에 문의합니다.
인스턴스 한도와 기본 큐
큐는 플랫폼 인스턴스에 속합니다. 모든 큐의 vCPU 한도 합계는 인스턴스 vCPU 한도 이하여야 하며 vGPU에도 같은 규칙이 적용됩니다. 인스턴스 한도를 바꾸려면 Palantir Support에 요청합니다.
플랫폼 인스턴스에는 삭제할 수 없는 기본 큐가 있습니다. 공간(Space)에 별도 기본 큐를 설정하지 않으면 플랫폼 인스턴스의 기본 큐를 사용하며, 그 공간의 프로젝트는 공간 기본 큐에 자동 배정됩니다.
큐 생성과 유형
Resource Management 왼쪽의 Queues를 열고 New를 선택합니다.
큐 유형은 vCPU와 vGPU입니다. 각 프로젝트는 vCPU 큐에 배정하며 필요하면 vGPU 큐도 추가 배정합니다. GPU 큐가 없는 프로젝트에서는 GPU가 필요한 작업을 실행할 수 없습니다.
GPU 종류는 해당 큐가 연결한 Compute group에 따라 결정됩니다. V100이나 T4 같은 하드웨어 선택은 이 연결을 확인해야 합니다.
GPU 사용
GPU 큐를 만들기 전에 인스턴스의 GPU 한도가 생성을 허용하는지 확인합니다. 큐를 만들고 프로젝트에 배정한 뒤 DRIVER_GPU_ENABLED 같은 GPU 프로파일을 프로젝트에 가져와 저장소에서 사용합니다.
GPU 작업을 실행하려면 프로젝트에 GPU 큐를 배정하고 실행에 사용할 GPU 프로파일도 설정해야 합니다. 실제 모델 학습에 필요한 하드웨어와 프로파일을 함께 정합니다.
프로젝트와 우선 브랜치 배정
큐 상세의 Projects 탭에서 배정된 프로젝트를 보고 관리합니다. 파일시스템 사이드바의 Resource management에서도 프로젝트의 큐 배정을 확인할 수 있습니다.
우선 브랜치(Priority branch)는 중요한 업무가 전용 연산 큐를 사용하게 하는 설정입니다. 개발 작업의 대기는 허용하지만 운영 작업의 대기는 줄여야 한다면 Code Repositories나 Pipeline Builder의 보호된 브랜치를 우선 브랜치로 지정하는 구성을 고려합니다.
우선 브랜치의 작업은 그 브랜치에 배정한 큐를 사용하고 나머지 작업은 프로젝트의 기본 배정을 사용합니다. 우선 브랜치도 vCPU 큐가 필수이며 vGPU 큐는 선택입니다.
분기 아이콘에서 프로젝트의 우선 브랜치 설정을 관리합니다.
파일시스템 Resource management에서도 설정을 확인할 수 있습니다. 특정 큐에 연결된 우선 브랜치 목록은 큐 상세의 Priority branches 탭에서 봅니다.
연산 종류와 한계
각 큐는 다음 종류의 연산을 구분해 표시하고 관리할 수 있습니다.
| 종류 | 예 |
|---|---|
Job compute | Python 변환 같은 배치 빌드 |
Continuous compute | Compute module이나 Streaming 같은 장기 실행 작업 |
Session compute | Code Workspace에서 코딩하는 동안처럼 사용자가 결과를 기다리는 대화형 작업 |
큐 사용률은 Foundry 전체 연산 사용량과 같지 않으며 큐는 지출 상한이 아닙니다. 큐 밖에서 스케줄링하는 Ontology indexing(Funnel)은 큐 사용률에 표시되지 않아도 비용 및 사용량이 발생할 수 있습니다. 전체 사용은 Analysis에서 Source를 Ontology indexing (Funnel)로 선택하거나 Source별로 묶어 확인합니다. 지출 추적에는 Budgets를 사용합니다.
사용률 이력과 알림
큐의 Utilization history는 지난 7일 동안 사용한 vCPU 또는 vGPU와 최대 한도를 비교합니다. 지속적으로 한도에 가까우면 큐의 코어 수 증설 등 배분 조정을 고려합니다.
큐가 가득 차면 새 작업이 대기해 빌드가 지연됩니다. Create monitor를 선택하면 Data Health에서 사용률 모니터를 구성할 수 있습니다. 이는 Resource Management의 이전 예산 Monitors와 다른 관측 경로입니다.