Halaman ini menjelaskan parameter konfigurasi PSM3 yang sebaiknya Anda gunakan dengan aplikasi MPI yang berjalan di instance komputasi H4D dan Cloud RDMA.
Untuk mengetahui informasi tentang semua parameter konfigurasi PSM3 yang tersedia, lihat Panduan Pengguna Software Host Intel Ethernet Fabric Suite.
Rekomendasi untuk aplikasi dengan aliran data yang tidak stabil atau traffic UD yang berat
Aplikasi yang mengalami lonjakan traffic tiba-tiba atau sangat mengandalkan mode Unreliable Datagram (UD) dapat membebani antarmuka jaringan, sehingga menyebabkan paket hilang di sumber.
- Solusi: Konfigurasi sistem tekanan balik berbasis kredit untuk mengatur burst transmisi dan mencegah paket hilang di lapisan transport. Instance H4D Compute Engine menyediakan total 256 kredit. Sebaiknya alokasikan minimal 1 kredit tetap untuk setiap vCPU, dengan kapasitas yang tersisa ditempatkan di kumpulan bersama.
Konfigurasi yang direkomendasikan (Contoh untuk 192 peringkat per node): Untuk operasi dengan 192 peringkat per node, jika setiap vCPU mendapatkan 1 kredit tetap, maka kumpulan bersama akan menjadi 256 - 192 = 64.
IRDMA_SHARED_UD_CREDITS=64 IRDMA_TRANSPARENT_UD_QD_OVERRIDE=1
Meningkatkan jumlah total kredit di luar batas yang direkomendasikan dapat menyebabkan penurunan transmisi di sumber. Meskipun oversubscription (menetapkan total kredit lebih tinggi daripada yang tersedia) dapat meningkatkan performa untuk workload dengan pola traffic yang stabil dan kepadatan rendah, biasanya hal ini menurunkan performa untuk workload yang ditandai dengan lonjakan tiba-tiba atau traffic UD yang berat.
Variabel lingkungan yang dapat Anda gunakan untuk menyetel performa Cloud RDMA adalah sebagai berikut:
- IRDMA_SHARED_UD_CREDITS: menentukan ukuran kumpulan global kredit UD yang tersedia untuk semua proses pada satu node. Dengan nilai 64, ini berarti ada cadangan bersama sebesar 64 kredit yang berpotensi digunakan oleh proses apa pun.
- IRDMA_TRANSPARENT_UD_QD_OVERRIDE: membatasi kedalaman antrean untuk pasangan antrean (QP) yang menggunakan UD di driver
irdma. Jika disetel ke1, setelan ini akan berfungsi denganIRDMA_SHARED_UD_CREDITSuntuk menerapkan tekanan balik lapisan transport dan mencegah kelebihan muatan antrean transmisi saat beban multi-proses berat.
Rekomendasi untuk aplikasi dengan persyaratan keandalan tinggi atau memori tinggi
Untuk memastikan keandalan paket UD di sisi penerima, aplikasi RDMA Anda harus mengalokasikan buffer penerima yang cukup dan menyediakan slot di Completion Queue (CQ).
Rekomendasi standar untuk keandalan tinggi: Gunakan variabel lingkungan berikut untuk menentukan kedalaman antrean yang lebih tinggi sebagai upaya terbaik untuk menghindari paket UD (RX) antrean penerimaan yang terputus.
PSM3_NUM_RECV_WQES=32767 PSM3_NUM_RECV_CQES=65536Pengecualian untuk persyaratan memori tinggi: Jika aplikasi Anda mengalami masalah kehabisan memori (OOM), kurangi ukuran antrean, tetapi pertahankan proporsi yang sama antara kedua nilai.
Aplikasi seperti High Performance Conjugate Gradients (HPCG) memiliki persyaratan memori yang sangat besar. Menggunakan setelan untuk rekomendasi standar untuk keandalan tinggi dapat menyebabkan error OOM.
PSM3_NUM_RECV_WQESmenentukan jumlah entri antrean kerja RX (WQEs) dan buffer pantulan cepat yang dialokasikan per endpoint lokal. Nilai yang lebih tinggi akan menghasilkan overhead memori yang lebih besar.
Variabel lingkungan yang dapat Anda gunakan untuk meningkatkan keandalan atau penggunaan memori adalah:
PSM3_NUM_RECV_WQES: menetapkan jumlah WQE RX yang akan dialokasikan. QP UD berukuranPSM3_NUM_RECV_WQES + 1032 WQEs. Parameter ini juga menetapkan jumlah buffer pantulan cepat penerimaan UD (masing-masing berukuranPSM3_MTU) yang dialokasikan untuk setiap endpoint lokal.PSM3_NUM_RECV_CQES: mengontrol jumlah entri antrean penyelesaian (CQE) untuk operasi penerimaan. Parameter ini membantu memastikan keandalan paket UD di sisi penerima dengan memastikan selalu ada slot yang tersedia di antrean penyelesaian. Kedalaman antrean yang lebih tinggi, misalnya 65536, membantu menghindari paket RX UD yang terputus, tetapi menggunakan memori, dan dapat menyebabkan error OOM untuk aplikasi yang intensif memori.
Rekomendasi untuk aplikasi yang tidak menggunakan kembali buffer
Beberapa aplikasi, seperti LINPACK berperforma tinggi (HPL), mengalokasikan dan membebaskan buffer komunikasi sementara secara sering, bukan mempertahankan dan menggunakannya kembali. Siklus permintaan dan pelepasan memori yang berkelanjutan ini memaksa sistem untuk terus mendaftarkan dan membatalkan pendaftaran halaman memori, sehingga menciptakan hambatan performa yang signifikan.
Solusi: Gunakan pengalokasi memori kustom seperti
jemallocsebagai solusi.jemallocadalah alokator memori (malloc) berperforma tinggi dan tujuan umum yang dirancang untuk menekankan penskalaan konkurensi dan menghindari fragmentasi memori. Dengan memaksa daur ulang yang efisien pada buffer komunikasi besar (lebih besar dari 128 KB), solusi ini melewati siklus realokasi kernel yang mahal dan memulihkan performa PSM3.Konfigurasi yang direkomendasikan:
Instal
jemalloc. Misalnya, di Rocky Linux, Anda dapat menjalankan perintah berikut yang menggunakan repositori paket tambahan untuk Enterprise Linux (EPEL):sudo dnf install epel-release sudo dnf install jemalloc
Muat
jemallocterlebih dahulu dan terapkan batas cache yang dioptimalkan sebelum menjalankan aplikasi Anda:LD_PRELOAD="/usr/lib64/libjemalloc.so.2" export MALLOC_CONF="dirty_decay_ms:-1,muzzy_decay_ms:-1,lg_tcache_max:26"
Perintah konfigurasi menggunakan setelan berikut:
LD_PRELOAD: menentukan library bersama yang akan dimuat sebelum memulai proses.MALLOC_CONF: mengonfigurasi perilaku alokasi memori untukjemalloc.dirty_decay_ms:-1danmuzzy_decay_ms:-1: menginstruksikanjemallocuntuk tidak pernah mengembalikan memori yang tidak digunakan ke OS. Hal ini membuat halaman terdaftar secara permanen untuk segera digunakan kembali.lg_tcache_max:26: meningkatkan batas cache memori per thread menjadi 64 MB, yang memastikan buffer komunikasi besar di-cache secara agresif.
Langkah berikutnya
- Tinjau rekomendasi penyesuaian performa lainnya di Mengoptimalkan dan menskalakan MPI dengan Cloud RDMA.