All Products
Search
Document Center

Container Compute Service:Penjadwalan sadar topologi GPU-HPN

Last Updated:Aug 29, 2026

Container Compute Service (ACS) mengalokasikan perangkat GPU ke Pod berdasarkan topologi GPU dari masing-masing model node GPU-HPN. Pod yang berjalan pada node yang sama bertukar data melalui saluran seperti NVLink, dan batasan partisi menjaga komunikasi GPU tetap efisien dan adil.

Prasyarat

Fitur ini hanya mendukung Pod yang menggunakan kelas komputasi gpu-hpn (compute-class) dan tipe node GPU-HPN yang sesuai.

Latar Belakang

Di dalam sebuah node GPU-HPN, perangkat GPU saling terhubung dan berkomunikasi melalui satu atau beberapa saluran. Pod yang meminta jumlah GPU berbeda dapat berjalan pada node yang sama. Untuk menjaga efisiensi dan keadilan komunikasi GPU serta mencegah gangguan antar-Pod, ACS menjadwalkan Pod berdasarkan topologi GPU node tersebut dengan membagi perangkat GPU menjadi partisi yang sesuai dengan jumlah GPU yang diminta oleh Pod, lalu mengalokasikan partisi optimal ke setiap Pod.

Gambar berikut menunjukkan sebuah node dengan delapan GPU. Setiap empat GPU membentuk satu kelompok. GPU dalam satu kelompok saling terhubung secara langsung, sedangkan kedua kelompok tersebut dihubungkan melalui PCIe.

image

ACS membagi perangkat pada node ini menjadi partisi-partisi berikut:

GPU yang diminta oleh Pod

Hasil alokasi perangkat yang tersedia

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]

Pembuatan dan penghapusan Pod yang berulang pada sebuah node dapat menyebabkan fragmentasi partisi, sehingga Pod baru tidak dapat dijadwalkan dan tetap berada dalam status Pending. Untuk membebaskan perangkat yang dibutuhkan oleh Pod yang tertunda, tinjau hasil alokasi perangkat dari Pod yang berjalan pada node tersebut dan evict beberapa di antaranya berdasarkan prioritas bisnis Anda. FAQ pada topik ini menjelaskan cara merencanakan resource node untuk menghindari fragmentasi partisi, cara memilih Pod untuk dievict, serta bagaimana tipe, versi, dan konfigurasi penjadwal memengaruhi sejauh mana partisi dipertimbangkan selama penjadwalan.

Partisi tipe node GPU-HPN

Partisi dan model GPU berbeda-beda pada tipe node GPU-HPN yang disediakan oleh ACS. Untuk memeriksa partisi mana yang sedang digunakan pada sebuah node, lihat hasil alokasi perangkat dari Pod yang berjalan pada node tersebut.

gpu.p16en-16XL

Tipe node ini memiliki 16 GPU model P16EN. Tabel berikut mencantumkan partisi untuk jumlah GPU yang diminta oleh Pod.

Jumlah GPU yang diminta oleh Pod

Hasil alokasi perangkat yang tersedia

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]

Lihat hasil penjadwalan sebuah Pod

Hasil alokasi perangkat

Untuk Pod GPU-HPN, hasil alokasi perangkat dicatat dalam anotasi Pod dengan format berikut:

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

Pesan kegagalan penjadwalan akibat fragmentasi partisi

Pod yang tidak dapat dijadwalkan akan tetap berada dalam status Pending. Jalankan perintah berikut untuk melihat pesan kegagalan penjadwalan:

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.

Pada pesan seperti 0/5 nodes are available: xxx, Insufficient Partitioned GPU Devices menunjukkan bahwa penjadwalan gagal karena fragmentasi partisi pada node tersebut.

FAQ

Bagaimana cara merencanakan resource dan kebijakan node untuk menghindari fragmentasi partisi?

Rencanakan resource dan kebijakan node sebagai berikut:

  • Kelompokkan node berdasarkan jumlah GPU yang diminta — Tetapkan label berbeda pada node Anda untuk mengelola resource berdasarkan jumlah GPU yang diminta oleh Pod. Misalnya, jadwalkan Pod yang meminta 8 GPU dan Pod yang meminta 1 GPU ke node yang berbeda.

  • Bebaskan perangkat idle saat Pod sudah dalam status Pending — Saat fragmentasi partisi menyebabkan Pod berada dalam status Pending di kluster Anda, gunakan mekanisme seperti descheduling untuk mengevict beberapa Pod berprioritas rendah dan membebaskan perangkat idle bagi Pod yang tertunda.

  • Reservasi kapasitas jika Anda tidak dapat merencanakan label node — Jika Anda hanya memiliki beberapa node atau tidak dapat merencanakan label node, dan Pod Anda meminta berbagai jumlah GPU, reservasi kapasitas untuk memenuhi kebutuhan resource aplikasi Anda. Untuk informasi lebih lanjut, lihat GPU pod capacity reservation.

Bagaimana cara memilih Pod untuk dievict saat mengatasi fragmentasi partisi?

  1. Identifikasi jumlah GPU yang diminta oleh Pod yang tertunda, misalnya 8 GPU.

  2. Pada node target, baca anotasi alibabacloud.com/device-allocation dari setiap Pod untuk menentukan perangkat mana yang telah dialokasikan. Untuk informasi lebih lanjut, lihat hasil alokasi perangkat.

  3. Tentukan Pod mana yang akan dievict berdasarkan hasil alokasi tersebut, dan pastikan perangkat yang dibebaskan memenuhi baik jumlah GPU yang diminta maupun batasan partisi dari Pod yang tertunda. Misalnya, permintaan 8 GPU pada P16EN mensyaratkan bahwa ID perangkat [0,1,2,3,4,5,6,7] atau [8,9,10,11,12,13,14,15] semuanya belum dialokasikan.

  4. Evict Pod tersebut dengan menjalankan perintah seperti evict atau delete.

Apa yang perlu saya ketahui tentang partisi saat menggunakan penjadwal kustom?

Setelah penjadwal kustom menetapkan Pod ke sebuah node, ACS mengalokasikan perangkat untuk Pod tersebut pada node itu. Selama alokasi perangkat, ACS mengemas perangkat sepadat mungkin untuk menghindari fragmentasi partisi.

Penjadwal kustom hanya perlu mempertimbangkan kapasitas GPU total sebuah node. Untuk resource GPU, lebih baik gunakan kebijakan bin-packing node MostAllocated, yang mengurangi fragmentasi partisi.

Penjadwal mana yang sadar topologi partisi GPU-HPN?

Gunakan tabel berikut untuk menentukan apakah penjadwal Anda sadar topologi partisi node GPU-HPN.

Tipe penjadwal

Kondisi

Deskripsi

Penjadwal default ACS

Semua kondisi berikut terpenuhi:

  • tipe kluster adalah ACS;

  • schedulerName dari Pod adalah default-scheduler;

dan salah satu dari kondisi versi berikut terpenuhi:

  • versi penjadwal adalah v1.32.0-apsara.6.11.8.507bee55 atau lebih baru, v1.31.0-aliyun-1.5.0 atau lebih baru, v1.30.3-aliyun-1.6.0 atau lebih baru, atau versi apa pun mulai dari 1.33 ke atas

  • penjadwal adalah versi sebelumnya dan opsi Enable custom tags and scheduler for GPU-HPN nodes tidak dipilih.

Untuk versi yang didukung, lihat kube-scheduler.

Penjadwal sadar status alokasi partisi pada node saat ini dan mengecualikan node yang partisinya tidak dapat memenuhi permintaan. Event kegagalan penjadwalan Pod mencakup pesan Insufficient Partitioned GPU Devices.

Penjadwal default ACK

Semua kondisi berikut terpenuhi:

  • kluster adalah kluster ACK yang dikelola, kluster terdaftar ACK One, atau kluster ACK One untuk alur kerja Argo terdistribusi;

  • schedulerName dari Pod adalah default-scheduler;

  • dan versi penjadwal adalah v1.30.3-apsara.6.11.8.* atau lebih baru, v1.32.0-apsara.6.11.8.* atau lebih baru, v1.33.0-apsara.6.11.8.* atau lebih baru, v1.34.0-apsara.6.11.8.* atau lebih baru, atau versi apa pun mulai dari 1.35 ke atas.

Anda dapat menemukan versi yang didukung di kube-scheduler.

Penjadwal sadar status alokasi partisi pada node saat ini dan mengecualikan node yang partisinya tidak dapat memenuhi permintaan. Event kegagalan penjadwalan Pod mencakup pesan Insufficient Partitioned GPU Devices.

Tipe penjadwal lainnya

Tipe penjadwal, kondisi, atau konfigurasinya tidak memenuhi persyaratan di atas.

Penjadwal tidak sadar topologi partisi. Node GPU-HPN mengalokasikan perangkat sepadat mungkin. Jika partisi tidak dapat memenuhi permintaan, Pod tetap berada dalam status Pending pada node tersebut hingga partisi dapat memenuhinya, dan event kegagalan penjadwalan Pod mencakup pesan Insufficient Partitioned GPU Devices. Untuk informasi lebih lanjut, lihat Bagaimana cara merencanakan resource dan kebijakan node untuk menghindari fragmentasi partisi?