기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWS PCS에서 하드웨어 토폴로지 구성
Slurm은 코어가 소켓 및 NUMA(Non-Uniform Memory Access) 도메인으로 그룹화되는 방식, L3 캐시가 코어에 매핑되는 방식, 각 GPU가 연결되는 코어 등 컴퓨팅 노드의 내부 하드웨어 레이아웃을 알고 있을 때 더 나은 배치 결정을 내립니다. 이 주제에서는 Slurm이 해당 레이아웃을 모델링하는 방법과 AWS PCS가 지원되는 각 Slurm 버전에서 이를 구성하는 방법을 설명합니다.
CPU 토폴로지
컴퓨팅 노드의 코어는 서로 교환할 수 없습니다. 물리적 패키지(소켓)와 NUMA 도메인으로 그룹화되며 각 그룹은 메모리 컨트롤러 및 L3 캐시와 같은 리소스를 공유합니다. 동일한 그룹에 배치된 두 작업은 더 빠르게 통신하고 캐시를 공유합니다. 그룹 간에 배치된 작업은 공유 리소스에 대해 경쟁이 적습니다.
Slurm은의 Sockets, CoresPerSocket및 ThreadsPerCore 설정을 사용하여 노드당이 그룹화를 설명합니다slurm.conf. Slurm이 소켓으로 취급하는 것은 노드별 Parameters
-
numa_node_as_socket- 각 NUMA 도메인은 소켓입니다. -
l3cache_as_socket- 각 L3 캐시 도메인은 소켓입니다. 이는 소켓 수준이 너무 거칠고 L3 캐시가 더 나은 작업 배포를 제공할 수 있는 특정 프로세서에 유용할 수 있습니다.
CPU 토폴로지가 구성된 경우 소켓 인식 예약 옵션이 의도한 대로 작동합니다. 즉--sockets-per-node, --ntasks-per-socket 및와 같은 작업 옵션과 클러스터 수준 SelectTypeParameters 설정의 CR_Socket 또는 CR_Socket_Memory 값을 사용한 소켓 기반 할당이 있습니다. Slurm이 소켓, 코어 및 스레드를 할당하는 방법에 대한 자세한 내용은 Slurm 설명서의 다중 코어/다중 스레드 아키텍처 지원을 참조하세요
AWS PCS는 25.11 이전 Slurm 버전에서 CPU 토폴로지를 구성하지 않으므로 해당 버전의 노드는 소켓당 하나의 코어를 광고하며 이러한 옵션은 영향을 주지 않습니다.
GPU 친화도
노드의 각 GPU는 하나의 NUMA 도메인에 가장 가깝기 때문에 노드 코어의 하위 집합은 해당 도메인에 로컬입니다. 로컬 코어에서 GPU로 실행되는 작업은 다른 소켓의 작업보다 짧은 경로를 통해 데이터를 전송합니다. Slurm은 GPU-to-core 선호도(gres.conf레코드의 Cores 속성)를 기록합니다Links. GPU-to-GPU
AWS PCS 컴퓨팅 노드에서는 디바이스 열거가 개별 인스턴스에 따라 달라지고 노드 부팅 시 디바이스만 표시되므로이 정보를 미리 정적으로 구성할 수 없습니다. Slurm의 AutoDetectslurmd 쿼리하고 등록 시 감지된 선호도를 컨트롤러에 보고합니다.
참고
노드의 전원이 꺼져 있는 동안 Slurm은 GPU-to-CPU 선호도를 알지 못합니다. 선호도는 노드가 부팅 및 등록될 때만 사용할 수 있으므로 전원이 꺼진 노드에 대한 예약 결정은 노드 없이 이루어집니다.
자동 감지된 GPU 선호도는 소켓 단위로 표현되므로 올바른 CPU 토폴로지가 필요합니다. 노드가 노드의 구성된 소켓 경계에 맞지 않는 GPU 선호도를 등록하는 경우 Slurm은 노드를 로 설정하고 INVALID_REG드레이닝합니다. 자세한 내용은 AWS PCS에서 잘못된 노드 등록(INVALID_REG) 문제 해결 섹션을 참조하세요.
GPU 선호도를 사용할 수 있는 경우 Slurm은 할당된 GPUs. 일반 리소스(GRES) 선호도는 소켓 단위로 처리됩니다. 배치는 작업 옵션에 따라 다릅니다. 감지된 선호도를 사용하는 조합에는 --ntasks-per-socket와 --gpus-per-task, --gpus가 포함됩니다--ntasks-per-gpu.
Slurm 버전별 토폴로지 동작
AWS PCS가 구성하는 것과 직접 구성할 수 있는 것은 클러스터의 Slurm 버전에 따라 다릅니다.
Slurm 25.11에서
사용자 지정 설정을 통한 CPU 토폴로지
컴퓨팅 노드 그룹에 대한 Sockets 및 Parameters 사용자 지정 Slurm 설정을 사용하여 CPU 토폴로지를 직접 구성할 수 있습니다. 자세한 내용은 AWS PCS 컴퓨팅 노드 그룹에 대한 사용자 지정 Slurm 설정 섹션을 참조하세요.
-
Slurm
Sockets이 소켓으로 처리할 도메인 수로 설정합니다. AWS PCS는 일치하는 항목을 계산하고 설정합니다CoresPerSocket. 값은 노드의 코어 수를 균등하게 나누어야 합니다. -
도메인을 선언
l3cache_as_socket하려면numa_node_as_socket또는Parameters로 설정합니다.
를 사용하면 l3cache_as_socketSockets가 필요합니다. AWS PCS는 인스턴스 유형의 L3 캐시 레이아웃을 확인할 수 없으므로 L3 캐시 도메인 수를 제공합니다. 이는 26.05 이상을 포함한 모든 Slurm 버전에 적용됩니다.
예- hpc7a.96xlarge 컴퓨팅 노드 그룹의 소켓으로 사용되는 L3 캐시 도메인(L3 캐시 도메인 24개, 각각 코어 8개)
aws pcs update-compute-node-group \ --cluster-identifiermy-cluster\ --compute-node-group-identifiermy-cng-1\ --slurm-configuration \ 'slurmCustomSettings=[{parameterName=Sockets,parameterValue=24},{parameterName=Parameters,parameterValue=l3cache_as_socket}]'
참고
AWS PCS는 하드웨어에 대한 정확성이 아니라 Sockets 값의 구조를 검증합니다. 노드의 실제 레이아웃과 일치하지 않는 값은 최적이 아닌 배치 또는 GPU 자동 감지가 활성 상태일 INVALID_REG 때 로 이어집니다.
AutoDetect를 사용한 GPU 토폴로지(옵트인)
Slurm 25.11에서는 GPU 자동 감지가 기본적으로 꺼져 있습니다. 에서 컴퓨팅 노드 그룹의 GPU 레코드에 AutoDetect를 추가하여 옵트인합니다gresCustomSettings. 자세한 내용은 AWS PCS에서 사용자 지정 GRES 설정 구성 섹션을 참조하세요.
AutoDetect를 사용하려면 노드의 CPU 토폴로지를 구성해야 합니다. 25.11에서는 이전 섹션에 설명된 대로 컴퓨팅 노드 그룹에 Sockets 대한 설정을 의미합니다. 그렇지 않으면 노드는 기본 one-core-per-socket 레이아웃에 맞지 않는 GPU 선호도를 등록하고 Slurm은 이를 로 설정합니다INVALID_REG.
Slurm 26.05에서
기본 CPU 토폴로지
Slurm 26.05에서 AWS PCS는 기본적으로 NUMA 기반 CPU 토폴로지를 구성합니다. AWS PCS는 컴퓨팅 노드 그룹의 인스턴스 유형에서 NUMA 도메인 수를 결정하고 각 노드Parameters=numa_node_as_socket에서 Sockets, 및 CoresPerSocket를 설정합니다.
다음 규칙이 적용됩니다.
-
컴퓨팅 노드 그룹이 여러 인스턴스 유형을 사용하는 경우 AWS PCS는 모든 인스턴스의 NUMA 도메인 수가 동일한 경우에만 기본 토폴로지를 적용합니다. 그렇지 않으면 AWS PCS는 이전 버전의 동작과 일치하도록 토폴로지를 설정 해제합니다.
-
컴퓨팅 노드 그룹의 사용자 지정 Slurm 설정
Sockets에서를 설정하면 값이 우선하며 AWS PCS는를 추가하지 않습니다Parameters. 이를 사용하여 기본값을 재정의합니다. 예를 들어에서 L3 캐시 도메인을 소켓으로 사용하는데Parameters=l3cache_as_socket여전히Sockets값이 필요합니다.
참고
자동 토폴로지는 Slurm 26.05 이상으로 생성된 클러스터와 26.05 이상으로 업데이트할 때 클러스터에 적용됩니다.
기본적으로 GPU 자동 감지
Slurm 26.05에서 AWS PCS는 기본적으로 GPU 자동 감지를 활성화합니다. AWS PCS는 노드의 소켓 레이아웃이 알려진 경우, AWS 즉 PCS가 CPU 토폴로지AutoDetect=full를 자동으로 구성했거나 사용자가 Sockets 직접 설정했기 때문에 GPU 컴퓨팅 노드 그룹에 대해 생성하는를 GPU 레코드에 추가합니다. 소켓 레이아웃을 사용할 수 없는 경우 AWS PCS는 이전 버전의 동작과 AutoDetect일치하는 없이 GPU 레코드를 내보냅니다. AWS PCS가 생성하는 GPU 레코드와 해당 레코드를 자체 레코드와 조정하는 방법에 대한 자세한 내용은 섹션을 참조하세요AWS PCS가 gres.conf 레코드를 적용하는 방법.