diff --git a/osdc/clusters.yaml b/osdc/clusters.yaml index 39845559..7a3a190c 100644 --- a/osdc/clusters.yaml +++ b/osdc/clusters.yaml @@ -53,7 +53,7 @@ defaults: pdb_enabled: true pdb_min_available: 1 arc: - chart_version: "0.14.1-jeanschmidt.12" # MUST match for controller + runner charts (minor version mismatch = ARS deletion). Fork chart published from jeanschmidt/actions-runner-controller. + chart_version: "0.14.1-jeanschmidt.13" # MUST match for controller + runner charts (minor version mismatch = ARS deletion). Fork chart published from jeanschmidt/actions-runner-controller. .13 adds WorkflowSchedulerName so the listener applies schedulerName to placeholder pods (numa-scheduler enablement). replica_count: 4 log_level: info controller_cpu_request: "1" @@ -292,6 +292,8 @@ clusters: - arc - nodepools - nodepools-h100 # H100 only — B200 has no capacity reservation in us-west-1 + - nfd # NUMA topology data for p5 nodes + - numa-scheduler # NUMA-aware secondary scheduler - arc-runners-h100 - pypi-cache - cache-enforcer @@ -378,6 +380,8 @@ clusters: - nodepools - nodepools-b200 - nodepools-h100 + - nfd # NUMA topology data for p5 nodes + - numa-scheduler # NUMA-aware secondary scheduler - arc-runners - arc-runners-b200 - arc-runners-h100 diff --git a/osdc/modules/arc-runners-h100/defs/l-x86iamx-88-900-h100-4.yaml b/osdc/modules/arc-runners-h100/defs/l-x86iamx-88-900-h100-4.yaml index 7100922e..5e1f6793 100644 --- a/osdc/modules/arc-runners-h100/defs/l-x86iamx-88-900-h100-4.yaml +++ b/osdc/modules/arc-runners-h100/defs/l-x86iamx-88-900-h100-4.yaml @@ -7,6 +7,10 @@ runner: vcpu: 88 memory: 900Gi gpu: 4 + # NUMA-aware scheduling: p5.48xlarge is a 2-NUMA-node box (4 H100 per zone). + # Without this, the default scheduler may place a 4-GPU pod on a node where + # both zones are partially used, causing TopologyAffinityError. + scheduler_name: numa-scheduler # Fixed-capacity cap: 1 reserved 8-GPU node / 4 GPUs per runner = 2 concurrent runners. max_runners: default: 2