단일 노드 변환의 자원 설정
단일 노드 변환은 decorator의 .with_resources()로 컨테이너 자원을 정합니다. 분산 Spark 변환은 이 설정 대신 Spark 프로필을 사용하여 큰 자원 사용량을 통제합니다.
구성 필드
| 필드 | 계약 |
|---|---|
cpu_cores | 요청할 CPU 코어 수입니다. 기본값은 2이며 0.5 같은 소수도 가능합니다. |
memory_gb | GB 단위 메모리입니다. |
memory_mb | MB 단위 메모리입니다. |
gpu_type | 할당할 GPU 유형의 문자열입니다. |
memory_gb와 memory_mb 중 하나만 지정해야 합니다. 기본 정책의 최대값은 CPU 8코어와 메모리 64 GB이며 더 큰 한도는 Palantir 지원팀에 요청합니다.
다음 변환은 CPU 1코어로 갈색 머리 행을 선택합니다. 가상 경로를 실제 자산으로 바꾸고 Polars를 환경에 추가합니다.
import polars as pl
from transforms.api import Input, Output, transform
@transform.using(
output=Output("/Example Project/Outputs/brown_hair"),
source=Input("/Example Project/Inputs/students"),
).with_resources(cpu_cores=1)
def filter_students(output, source):
rows = source.polars().filter(pl.col("hair") == "Brown")
output.write_table(rows)
GPU 계산이 있는 작업의 구성 예는 cpu_cores=8, memory_gb=32, gpu_type="NVIDIA_T4"입니다. 메모리 요구에 따라 16 GB 등으로 선택할 수 있지만 두 메모리 단위를 동시에 쓰지 않습니다. GPU를 할당했다고 일반 CPU 연산이 자동으로 GPU에서 실행되는 것은 아니며, GPU를 사용하는 라이브러리와 계산 코드가 필요합니다.
GPU 제공 조건
사용할 GPU가 해당 프로젝트에 제공되어 있어야 합니다. 모든 환경에서 모든 유형을 사용할 수 있는 것은 아닙니다.
지원 대상으로 구성할 수 있는 문자열은 다음과 같습니다.
| GPU 유형 |
|---|
NVIDIA_T4 |
NVIDIA_V100 |
NVIDIA_A10G |
NVIDIA_A100 |
NVIDIA_A16 |
NVIDIA_H100 |
NVIDIA_H200 |
NVIDIA_L4 |
NVIDIA_L40S |
프로젝트의 GPU 자원 제공 여부와 실제 할당 조건을 확인한 뒤 설정합니다. CPU만 사용하는 변환에 불필요하게 GPU를 예약하지 않습니다.
사용량 기준으로 조정
단일 노드 빌드의 Telemetry > Metrics에서 CPU와 메모리 사용량을 확인합니다. 메모리 부족인지, CPU 계산이 병목인지, 할당한 자원을 쓰지 못하는지에 따라 조정합니다.
엔진별 처리량과 데이터 크기의 선택 기준은 compute engine 비교를 따릅니다. 큰 자원을 고르는 것만으로 비효율적인 데이터 수집이나 반복 계산이 해결되지는 않습니다.