全部产品
Search
文档中心

Container Compute Service:Penjadwalan dengan kesadaran topologi untuk node GPU-HPN

更新时间:Nov 09, 2025

Dalam kluster ACS yang berjalan pada perangkat GPU, Anda dapat menjadwalkan pod yang dipercepat GPU ke node GPU-HPN yang sama. Pod tersebut dapat berkomunikasi satu sama lain melalui metode seperti NVLink. Untuk memastikan efisiensi dan keadilan komunikasi antar perangkat GPU, ACS mematuhi batasan partisi dari model yang berbeda saat menjadwalkan perangkat. Topik ini menjelaskan mekanisme penjadwalan partisi GPU ACS dan skenario penggunaannya.

Prasyarat

Fitur ini hanya berlaku untuk pod kelas komputasi gpu-hpn dan node yang sesuai.

Informasi latar belakang

Perangkat GPU berkomunikasi melalui satu atau lebih saluran. ACS juga memungkinkan pod dengan spesifikasi GPU yang berbeda untuk berjalan di node GPU-HPN yang sama. Untuk memastikan efisiensi dan keadilan komunikasi GPU serta menghindari interferensi antar pod, ACS menjadwalkan pod berdasarkan topologi GPU. Untuk mencapai hal ini, ACS membagi topologi GPU menjadi beberapa partisi berdasarkan jumlah GPU yang diminta oleh setiap pod.

Pada gambar berikut, node memiliki delapan GPU. Setiap grup berisi empat GPU. GPU dalam setiap grup saling terhubung, dan grup-grup tersebut dihubungkan melalui PCIe.

image

Tabel berikut menjelaskan partisi yang dibuat berdasarkan spesifikasi GPU yang berbeda.

Jumlah GPU yang diminta oleh sebuah pod

Hasil alokasi perangkat opsional

8

[0,1,2,3,4,5,6,7]

4

[0,1,2,3], [4,5,6,7]

2

[0,1], [2,3], [4,5], [6,7]

1

[0], [1], [2], [3], [4], [5], [6], [7]

Fragmen partisi mungkin terbentuk pada perangkat GPU setelah pod terus-menerus dibuat dan dihapus. Akibatnya, pod tetap dalam status Pending dan penjadwalan pod gagal. Anda dapat memeriksa hasil penjadwalan pod yang ada dan prioritas bisnis Anda, lalu mengevakuasi beberapa pod untuk memenuhi permintaan sumber daya pod yang tertunda.

Kueri partisi pada node GPU-HPN

Partisi pada node GPU-HPN dari model yang berbeda mungkin bervariasi.

gpu.p16en-16XL

Node tersebut memiliki 16 GPU model P16EN. Tabel berikut menjelaskan cara 16 GPU tersebut dapat dialokasikan ke Pod dengan spesifikasi GPU yang berbeda.

Jumlah GPU yang diminta oleh sebuah pod

Hasil alokasi perangkat opsional

16

[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]

8

[0,1,2,3,4,5,6,7], [8,9,10,11,12,13,14,15]

4

[0,1,2,3], [4,5,6,7], [8,9,10,11], [12,13,14,15]

2

[0,3], [1,2], [4,7], [5,6], [8,11], [9,10], [12,15], [13,14]

1

[0], [1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12], [13], [14], [15]

Kueri hasil penjadwalan pod

Hasil alokasi GPU

Anda dapat melihat hasil alokasi GPU dari pod GPU-HPN di Anotasi pod. Blok kode berikut menunjukkan format:

apiVersion: v1
kind: Pod
metadata:
  annotations:
    alibabacloud.com/device-allocation: '{"gpus": {"minor": [0,1,2,3]}}'

Pemberitahuan untuk kegagalan penjadwalan pod karena fragmen partisi

Jika sebuah pod berada dalam status Pending, pod tersebut tidak dapat dijadwalkan. Jika Anda menjalankan perintah kubectl describe pod dalam kasus ini, pesan 0/5 nodes are available: xxx akan dikembalikan. Insufficient Partitioned GPU Devices menunjukkan bahwa penjadwalan pod gagal karena fragmen partisi. Contoh:

kubectl describe pod pod-demo

Output yang Diharapkan (konten lain dihilangkan):

...
Events:
  Type     Reason            Age    From               Message
  ----     ------            ----   ----               -------
  Warning  FailedScheduling  26m    default-scheduler  0/5 nodes are available: 2 Node(s) Insufficient Partitioned GPU Devices, 1 Node(s) xxx, 2 Node(s) xxx.

FAQ

Bagaimana cara merencanakan sumber daya node dan kebijakan penjadwalan untuk menghindari fragmen partisi?

  • Tetapkan tag grup yang berbeda untuk node berdasarkan jumlah GPU yang diminta oleh Pod aplikasi untuk mengelola sumber daya. Sebagai contoh, Anda dapat menjadwalkan Pod yang meminta delapan GPU dan Pod yang meminta satu GPU ke node yang berbeda.

  • Saat pod tertunda muncul karena fragmen partisi, Anda dapat menggunakan mekanisme penjadwalan ulang untuk mengevakuasi pod dengan prioritas lebih rendah guna membebaskan sumber daya untuk pod yang tertunda.

  • Jika skala node kecil atau Anda tidak dapat merencanakan tag grup, dan aplikasi memiliki berbagai spesifikasi GPU, kami sarankan Anda menggunakan Reservasi Kapasitas Pod GPU untuk memenuhi persyaratan sumber daya aplikasi.

Bagaimana memilih Pod untuk evakuasi saat menyelesaikan fragmen partisi

  • Tentukan spesifikasi sumber daya dari Pod yang tertunda, seperti delapan GPU.

  • Periksa anotasi Pod pada node target dan lihat hasil alokasi perangkat dari properti alibabacloud.com/device-allocation.

  • Tentukan Pod mana yang akan dievakuasi berdasarkan hasil alokasi. Pastikan bahwa perangkat bebas setelah evakuasi dapat memenuhi persyaratan sumber daya dan batasan partisi dari Pod yang tertunda. Sebagai contoh, kebutuhan delapan-GPU P16EN harus memastikan bahwa nomor perangkat [0,1,2,3,4,5,6,7] atau [8,9,10,11,12,13,14,15] semuanya tidak dialokasikan.

  • Evakuasi Pod menggunakan perintah seperti evict atau delete.

Apa pertimbangan untuk partisi jika saya menggunakan penjadwal kustom?

Setelah penjadwal kustom menjadwalkan pod ke node, ACS mengalokasikan pod ke GPU yang sesuai. Selama alokasi GPU, ACS mencoba menjadwalkan semua pod sekaligus untuk menghindari pembuatan fragmen partisi.

Penjadwal kustom hanya fokus pada kapasitas GPU keseluruhan node. Kami merekomendasikan Anda menggunakan kebijakan MostAllocated saat menjadwalkan sumber daya GPU. Ini membantu mengurangi fragmen partisi.

Bagaimana penjadwal yang berbeda menangani kesadaran topologi untuk ACS GPU HPN?

Penjadwal

Kondisi

Deskripsi

Penjadwal default ACS

Semua kondisi berikut terpenuhi:

  • Kluster adalah kluster ACS.

  • schedulerName dari pod adalah default-scheduler.

  • Opsi Enable GPU-HPN Node Custom Tags And Scheduler tidak dipilih. Untuk informasi lebih lanjut, lihat kube-scheduler.

Penjadwal mengetahui alokasi partisi pada node saat ini. Node yang tidak memenuhi persyaratan partisi tidak terlibat dalam penjadwalan. Penyebab "Insufficient Partitioned GPU Devices" ditampilkan dalam acara kegagalan penjadwalan pod.

Penjadwal ACK

Semua kondisi berikut terpenuhi:

  • Kluster adalah kluster terkelola ACK, kluster terdaftar ACK One, atau kluster ACK One untuk alur kerja Argo terdistribusi.

  • schedulerName dari pod adalah default-scheduler.

Penjadwal tidak mengetahui topologi partisi. Node GPU-HPN mencoba mengalokasikan GPU secara terpusat. Jika persyaratan partisi tidak terpenuhi, pod akan tetap dalam status Pending hingga persyaratan partisi terpenuhi. Pesan yang sesuai menampilkan "Insufficient Partitioned GPU Devices". Untuk informasi lebih lanjut, lihat Bagaimana cara merencanakan sumber daya node dan kebijakan penjadwalan untuk menghindari fragmen partisi?

Penjadwal kustom

Salah satu kondisi berikut terpenuhi:

  • Kluster bukan kluster terkelola ACK, kluster terdaftar ACK One, atau kluster ACK One untuk alur kerja Argo terdistribusi.

  • schedulerName dari pod bukan default-scheduler.

Sama seperti penjadwal ACK.