View a markdown version of this page

Mengkonfigurasi topologi perangkat keras di AWS PCS - AWS PCS

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mengkonfigurasi topologi perangkat keras di AWS PCS

Slurm membuat keputusan penempatan yang lebih baik ketika mengetahui tata letak perangkat keras internal node komputasi: bagaimana inti dikelompokkan ke dalam soket dan domain Akses Non-Uniform Memori (NUMA), bagaimana cache L3 dipetakan ke inti, dan inti mana yang dilampirkan setiap GPU. Topik ini menjelaskan bagaimana Slurm memodelkan tata letak itu, dan bagaimana AWS PCS mengonfigurasinya pada setiap versi Slurm yang didukung.

Topologi CPU

Inti dari node komputasi tidak dapat dipertukarkan. Mereka dikelompokkan ke dalam paket fisik (soket) dan domain NUMA, dan setiap grup berbagi sumber daya seperti pengontrol memori dan cache L3. Dua tugas yang ditempatkan dalam grup yang sama berkomunikasi lebih cepat dan berbagi cache; tugas yang ditempatkan di seluruh grup lebih sedikit bersaing untuk sumber daya bersama tersebut.

Slurm menjelaskan pengelompokan ini per node dengan ThreadsPerCore pengaturanSockets,CoresPerSocket, dan di. slurm.conf Apa yang diperlakukan Slurm sebagai soket dapat dikonfigurasi dengan pengaturan per-node: Parameters

  • numa_node_as_socket— setiap domain NUMA adalah soket.

  • l3cache_as_socket— setiap domain cache L3 adalah soket. Ini dapat berguna pada prosesor tertentu di mana tingkat soket terlalu kasar, dan cache L3 dapat memberikan distribusi tugas yang lebih baik.

Dengan topologi CPU yang dikonfigurasi, opsi penjadwalan sadar soket berfungsi sebagaimana dimaksud: opsi pekerjaan seperti --ntasks-per-socket dan--sockets-per-node, dan alokasi berbasis soket dengan CR_Socket_Memory nilai CR_Socket atau dari pengaturan tingkat cluster. SelectTypeParameters Untuk informasi selengkapnya tentang cara Slurm mengalokasikan soket, core, dan thread, lihat Dukungan untuk Multi-core/Multi-thread Arsitektur dalam dokumentasi Slurm.

AWS PCS tidak mengkonfigurasi topologi CPU pada versi Slurm sebelum 25.11, jadi node pada versi tersebut mengiklankan satu inti per soket dan opsi ini tidak berpengaruh.

Afinitas GPU

Setiap GPU dalam node paling dekat dengan satu domain NUMA, jadi subset inti node bersifat lokal untuknya. Tugas yang berjalan pada core lokal ke GPU-nya mentransfer data melalui jalur yang lebih pendek daripada tugas di soket lainnya. Slurm merekam GPU-to-core afinitas ini per perangkat (Coresatribut gres.conf rekaman), bersama dengan tata letak GPU-to-GPU interkoneksi (). Links

Pada node komputasi AWS PCS informasi ini tidak dapat dikonfigurasi secara statis sebelumnya, karena enumerasi perangkat bergantung pada instance individu dan perangkat hanya menjadi terlihat saat node melakukan booting. AutoDetectMekanisme Slurm memecahkan ini: ketika node melakukan boot, slurmd menanyakan NVIDIA Management Library (NVML) dan melaporkan afinitas yang terdeteksi ke pengontrol saat pendaftaran.

catatan

Saat node dimatikan, Slurm tidak mengetahui afinitasnya GPU-to-CPU . Afinitas hanya tersedia ketika node melakukan boot dan mendaftar, jadi keputusan penjadwalan untuk node yang dimatikan dibuat tanpanya.

Afinitas GPU yang terdeteksi otomatis dinyatakan dalam soket, sehingga membutuhkan topologi CPU yang benar. Jika node mendaftarkan afinitas GPU yang tidak sesuai dengan batas soket yang dikonfigurasi node, Slurm menyetel node ke INVALID_REG dan mengurasnya. Untuk informasi selengkapnya, lihat Memecahkan masalah pendaftaran node yang tidak valid (INVALID_REG) di AWS PCS.

Dengan afinitas GPU yang tersedia, Slurm dapat menempatkan tugas pada core lokal ke GPU yang dialokasikan. Afinitas Sumber Daya Generik (GRES) ditangani pada granularitas soket. Penempatan tergantung pada opsi pekerjaan; kombinasi yang menggunakan afinitas yang terdeteksi termasuk --ntasks-per-socket dengan--gpus-per-task, dan --gpus dengan--ntasks-per-gpu.

Perilaku topologi menurut versi Slurm

Apa yang AWS dikonfigurasi PCS untuk Anda, dan apa yang dapat Anda konfigurasikan sendiri, tergantung pada versi Slurm dari cluster.

Dari Slurm 25.11

Topologi CPU melalui pengaturan khusus

Anda dapat mengonfigurasi topologi CPU sendiri dengan pengaturan Slurm Parameters kustom untuk grup simpul komputasi. Sockets Untuk informasi selengkapnya, lihat Pengaturan Slurm khusus untuk AWS Grup simpul komputasi PCS.

  • Set Sockets el ke jumlah domain yang ingin Slurm memperlakukan sebagai soket. AWS PCS menghitung dan mengatur pencocokan CoresPerSocket untuk Anda. Nilai harus membagi jumlah inti node secara merata.

  • Set Parameters el ke numa_node_as_socket atau l3cache_as_socket untuk mendeklarasikan apa itu domain.

Denganl3cache_as_socket, Sockets diperlukan: AWS PCS tidak dapat menentukan tata letak cache L3 dari jenis instance, jadi Anda memberikan jumlah domain cache L3. Ini berlaku pada setiap versi Slurm, termasuk 26.05 dan yang lebih baru.

contoh— Domain cache L3 sebagai soket pada hpc7a.96xlarge grup simpul komputasi (24 domain cache L3, masing-masing 8 core)
aws pcs update-compute-node-group \ --cluster-identifier my-cluster \ --compute-node-group-identifier my-cng-1 \ --slurm-configuration \ 'slurmCustomSettings=[{parameterName=Sockets,parameterValue=24},{parameterName=Parameters,parameterValue=l3cache_as_socket}]'
catatan

AWS PCS memvalidasi struktur Sockets nilai, bukan kebenarannya terhadap perangkat keras. Nilai yang tidak cocok dengan tata letak sebenarnya node mengarah ke penempatan yang kurang optimal, atau INVALID_REG saat deteksi otomatis GPU aktif.

Topologi GPU dengan AutoDetect (opt-in)

Pada Slurm 25.11, deteksi otomatis GPU dinonaktifkan secara default. Anda ikut serta dengan menambahkan AutoDetect ke catatan GPU dari grup simpul komputasi digresCustomSettings. Untuk informasi selengkapnya, lihat Mengonfigurasi pengaturan GRES khusus di AWS PCS.

AutoDetect membutuhkan topologi CPU node untuk dikonfigurasi. Pada 25.11, itu berarti pengaturan Sockets untuk grup simpul komputasi seperti yang dijelaskan di bagian sebelumnya. Tanpa itu, node mendaftarkan afinitas GPU yang tidak sesuai dengan tata letak satu-core-per-socket default, dan Slurm mengaturnya. INVALID_REG

Dari Slurm 26,05

Topologi CPU default

Dari Slurm 26.05, AWS PCS mengonfigurasi topologi NUMA-based CPU secara default. AWS PCS menentukan jumlah domain NUMA dari jenis instance grup simpul komputasi, dan set, SocketsCoresPerSocket, dan Parameters=numa_node_as_socket pada setiap node.

Aturan-aturan berikut berlaku:

  • Jika grup simpul komputasi menggunakan beberapa jenis instance, AWS PCS menerapkan topologi default hanya jika semuanya memiliki jumlah domain NUMA yang sama. Jika tidak, AWS PCS membiarkan topologi tidak disetel, cocok dengan perilaku versi sebelumnya.

  • Jika Anda mengatur Sockets pengaturan Slurm kustom dari grup simpul komputasi, nilai Anda diutamakan dan AWS PCS tidak ditambahkan. Parameters Gunakan ini untuk mengganti default, misalnya untuk menggunakan domain cache L3 sebagai soket denganParameters=l3cache_as_socket, yang masih memerlukan nilai AndaSockets.

catatan

Topologi otomatis berlaku untuk cluster yang dibuat dengan Slurm 26.05 atau yang lebih baru, dan untuk cluster saat Anda memperbaruinya ke 26.05 atau yang lebih baru.

Deteksi otomatis GPU secara default

Dari Slurm 26.05, AWS PCS mengaktifkan deteksi otomatis GPU secara default. AWS PCS menambahkan AutoDetect=full catatan GPU yang dihasilkannya untuk grup node komputasi GPU ketika tata letak soket node diketahui, baik karena AWS PCS mengkonfigurasi topologi CPU secara otomatis, atau karena Anda mengatur Sockets sendiri. Ketika tata letak soket tidak tersedia, AWS PCS memancarkan catatan GPU-nya tanpaAutoDetect, sesuai dengan perilaku versi sebelumnya. Untuk informasi selengkapnya tentang catatan GPU yang dihasilkan AWS PCS dan bagaimana rekaman itu mendamaikan rekaman itu dengan catatan Anda sendiri, lihat. Bagaimana AWS PCS menerapkan catatan gres.conf Anda