Topik ini menjelaskan cara membuat kluster E-HPC yang diaktifkan eRDMA (sebelumnya dikenal sebagai E-HPC NEXT) serta menggunakan aplikasi OSU-Benchmark untuk menunjukkan pemanfaatan eRDMA dalam mempercepat komunikasi pada aplikasi High-Performance Computing (HPC) multi-node.
Informasi latar belakang
Dengan eRDMA, beban kerja HPC paralel multi-node pada kluster E-HPC (sebelumnya E-HPC NEXT)—seperti pemodelan iklim dan cuaca, simulasi industri, serta dinamika molekuler—dapat mencapai kinerja jaringan setara dengan kluster on-premises, termasuk bandwidth tinggi dan latensi rendah. Hal ini secara signifikan meningkatkan efisiensi simulasi numerik. Anda dapat menggunakan RDMA pada jaringan yang sudah ada tanpa perlu menambahkan NIC RDMA khusus, sehingga menyediakan integrasi tanpa hambatan dan kemudahan penggunaan.
Prasyarat
-
Untuk membuat kluster E-HPC, buka halaman Create Cluster. Untuk informasi lebih lanjut, lihat Create a Standard Edition cluster.
Tabel berikut menjelaskan konfigurasi contoh kluster.
-
Instance Specification: ecs.c7.xlarge dengan 4 vCPU dan memori 8 GiB.
-
Image: aliyun_2_1903_x64_20G_alibase_20240628.vhd
CatatanPaket instalasi osu-benchmark dibuat berdasarkan image Alibaba Cloud Linux 2.1903 LTS 64-bit.
-
erdma-installer
-
mpich-aocc
-
Instance Specification: ecs.c7.xlarge dengan 4 vCPU dan memori 8 GiB.
-
Image: aliyun_2_1903_x64_20G_alibase_20240628.vhd
-
Buat pengguna kluster. Untuk informasi lebih lanjut, lihat user management.
|
Parameter |
Konfigurasi |
|
|
Cluster Configuration |
Region |
China (Shanghai) |
|
Network and Availability Zone |
Pilih Availability Zone L |
|
|
Series |
Standard Edition |
|
|
Deployment Mode |
Public cloud cluster |
|
|
Cluster Type |
SLURM |
|
|
Management node |
|
|
|
Compute Node and Queue |
Queue Compute Nodes |
Node awal: |
|
Inter-node interconnection |
eRDMA network Catatan
Hanya tipe instans tertentu yang mendukung Elastic RDMA Interconnect (ERI). Untuk informasi lebih lanjut, lihat Elastic RDMA (eRDMA) dan Enable eRDMA on enterprise-level instances. |
|
|
Instance type Group |
Instance Specification: ecs.c8ae.xlarge atau instans AMD lain dari generasi yang sama. Image: aliyun_2_1903_x64_20G_alibase_20240628.vhd |
|
|
Shared File Storage |
/home cluster mount directory |
Secara default, sistem file dipasang ke direktori |
|
/opt mount directory |
||
|
Software and Service Component |
Software not Installed |
|
|
Installable service components |
Logon Node: |
Periksa lingkungan eRDMA
Verifikasi konfigurasi eRDMA pada compute node.
-
Masuk ke Konsol Elastic High Performance Computing dan klik kluster target.
-
Pada panel navigasi kiri, pilih . Pilih semua compute node dalam kluster dan klik Send Command.
-
Periksa status jaringan eRDMA dan dukungan RDMA pada compute node.
-
Kirim perintah berikut ke semua compute node.
hpcacc erdma checkPada kotak dialog Cloud Assistant Send Command, pilih instans target. Atur Execution Plan ke Immediate, Command Type ke Shell, dan Timeout ke 60 detik. Klik Run.
-
Hasil yang mirip dengan berikut menunjukkan bahwa konfigurasi eRDMA benar.
{"Success": true, "Message": {"Msg": "HPCACC eRDMA status check succeeded. No fault found."}} -
Jika terjadi error, jalankan perintah berikut untuk memperbaiki konfigurasi.
hpcacc erdma repair -
Setelah perbaikan selesai, verifikasi kembali konfigurasi eRDMA.
-
Jalankan pengujian OSU-Benchmark
OSU-Benchmark mengevaluasi kinerja komunikasi kluster High-Performance Computing (HPC) dan sistem terdistribusi. Topik ini menggunakan dua benchmark berikut untuk menguji kinerja komunikasi melalui protokol jaringan berbeda (TCP vs. RDMA):
-
Pengujian latensi (osu_latency): Mengukur latensi satu arah untuk komunikasi point-to-point (waktu mulai dari proses A mengirim pesan hingga proses B menerimanya, tidak termasuk waktu balasan). Pengujian ini berfokus pada pesan kecil dari 1 byte hingga beberapa kilobyte (KB). Latensi pesan kecil merupakan metrik inti untuk responsivitas sistem HPC, yang mencerminkan kinerja jaringan tingkat rendah (seperti kemampuan akselerasi RDMA) dan optimasi library MPI. Misalnya, dalam simulasi real-time atau sinkronisasi parameter pembelajaran mesin, latensi rendah dapat secara signifikan mengurangi overhead komunikasi.
-
Pengujian bandwidth (osu_bw): Mengukur bandwidth point-to-point berkelanjutan (jumlah data yang ditransfer per satuan waktu). Pengujian ini berfokus pada pesan besar dari beberapa kilobyte (KB) hingga beberapa megabyte (MB). Kinerja bandwidth secara langsung memengaruhi efisiensi transfer data besar, seperti pertukaran matriks dalam komputasi ilmiah atau skenario I/O file. Jika bandwidth yang diukur jauh di bawah nilai teoretis, Anda mungkin perlu mengoptimalkan konfigurasi MPI (seperti komunikasi multithreaded) atau memeriksa pengaturan jaringan (seperti MTU dan flow control).
Prosedur
-
Sebagai pengguna yang telah Anda buat, hubungkan ke kluster E-HPC. Untuk informasi lebih lanjut, lihat Connect to a cluster.
-
Jalankan perintah berikut untuk memeriksa apakah modul lingkungan dependensi telah terinstal dengan benar.
module avail -
Jalankan perintah berikut untuk mengunduh dan mengekstrak paket instalasi OSU-Benchmark yang telah dikompilasi sebelumnya.
cd ~ && wget https://ehpc-perf.oss-cn-hangzhou.aliyuncs.com/AMD-Genoa/osu-bin.tar.gz tar -zxvf osu-bin.tar.gz -
Jalankan perintah berikut untuk masuk ke direktori pengujian dan mengedit skrip pekerjaan Slurm.
cd ~/pt2pt vim slurm.jobKonten skrip pengujian adalah sebagai berikut:
#!/bin/bash #SBATCH --job-name=osu-bench #SBATCH --ntasks-per-node=1 #SBATCH --nodes=2 #SBATCH --partition=comp #SBATCH --output=%j.out #SBATCH --error=%j.out # load env params module purge module load aocc/4.0.0 gcc/12.3.0 libfabric/1.16.0 mpich-aocc/4.0.3 # run mpi latency test: erdma echo -e "++++++ use erdma for osu_lat: START" mpirun -np 2 -ppn 1 -genv FI_PROVIDER="verbs;ofi_rxm" ./osu_latency echo -e "------ use erdma for osu_lat: END\n" # run mpi latency test: tcp echo -e "++++++ use tcp for osu_lat: START" mpirun -np 2 -ppn 1 -genv FI_PROVIDER="tcp;ofi_rxm" ./osu_latency echo -e "------ use erdma for osu_lat: END\n" # run mpi bandwidth test: erdma echo -e "++++++ use erdma for osu_bw: START" mpirun -np 2 -ppn 1 -genv FI_PROVIDER="verbs;ofi_rxm" ./osu_bw echo -e "------ use erdma for osu_bw: END\n" # run mpi bandwidth test: tcp echo -e "++++++ use tcp for osu_bw: START" mpirun -np 2 -ppn 1 -genv FI_PROVIDER="tcp;ofi_rxm" ./osu_bw echo -e "------ use tcp for osu_bw: END\n"Catatan-
-np 2: Menentukan jumlah total proses. Dalam kasus ini, diatur ke 2, artinya pekerjaan MPI menjalankan dua proses. -
-ppn 1: Menentukan jumlah proses per node. Dalam kasus ini, diatur ke 1, artinya satu proses dijalankan pada setiap node. -
-genv: Menyetel variabel lingkungan yang berlaku untuk semua proses.-
FI_PROVIDER="tcp;ofi_rxm": Menggunakan protokol TCP dan meningkatkan keandalan komunikasi melalui framework RXM. -
FI_PROVIDER="verbs;ofi_rxm": Memrioritaskan protokol Verbs berkinerja tinggi yang berbasis RDMA, serta mengoptimalkan transmisi pesan melalui framework RXM. Dalam topik ini, Alibaba Cloud eRDMA menyediakan jaringan RDMA elastis berkinerja tinggi.
-
-
-
Jalankan perintah berikut untuk mengirim pekerjaan pengujian.
sbatch slurm.jobAntarmuka baris perintah mengembalikan ID pekerjaan.
-
Jalankan perintah berikut untuk melihat status pekerjaan. Selama pengujian, Anda juga dapat melihat informasi pemantauan kluster E-HPC—seperti metrik penyimpanan, pekerjaan, dan node—di konsol. Untuk informasi lebih lanjut, lihat View monitoring information.
squeue[zh***luster@login0 pt2pt]$ squeue JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON) 11 comp slurm.jo zhtestcl R 0:01 2 compute[000-001]Di direktori saat ini, Anda dapat melihat file log yang sesuai dengan ID pekerjaan. Output-nya mirip dengan konten berikut:
-
Hasil pengujian latensi jaringan: Hasil menunjukkan hubungan antara ukuran pesan (Size dalam byte, dari 1 B hingga 4 MB) dan latensi jaringan rata-rata (Avg Latency).
Protokol Verbs (eRDMA)
[zxxx@login0 pt2pt]$ cat 11.out ++++++ use erdma for osu_lat: START # OSU MPI Latency Test v7.5 # Datatype: MPI_CHAR. # Size Avg Latency(us) 1 11.01 2 11.04 4 11.48 8 11.33 16 11.02 32 11.10 64 11.15 128 11.29 256 11.36 512 11.39 1024 11.81 2048 12.99 4096 13.95 8192 15.92 16384 34.57 32768 37.15 65536 41.15 131072 47.10 262144 61.17 524288 143.06 1048576 332.54 2097152 659.65 4194304 1315.29 ------ use erdma for osu_lat: ENDProtokol TCP
++++++ use tcp for osu_lat: START # OSU MPI Latency Test v7.5 # Datatype: MPI_CHAR. # Size Avg Latency(us) 1 16.07 2 16.02 4 16.03 8 16.03 16 16.01 32 16.27 64 16.37 128 16.87 256 17.36 512 17.89 1024 18.56 2048 33.78 4096 33.39 8192 30.74 16384 45.17 32768 94.50 65536 107.07 131072 124.95 262144 160.55 524288 238.40 1048576 374.89 2097152 639.81 4194304 1188.98 ------ use erdma for osu_lat: ENDData pengujian menunjukkan bahwa untuk pesan kecil (1 B hingga 8 KB), latensi eRDMA jauh lebih rendah daripada latensi TCP.
-
Hasil pengujian bandwidth jaringan: Hasil menunjukkan hubungan antara ukuran pesan (Size dalam byte, dari 1 B hingga 4 MB) dan bandwidth (Bandwidth).
Protokol Verbs (eRDMA)
++++++ use erdma for osu_bw: START # OSU MPI Bandwidth Test v7.5 # Datatype: MPI_CHAR. # Size Bandwidth (MB/s) 1 1.09 2 2.21 4 4.43 8 8.91 16 17.98 32 35.88 64 69.93 128 137.73 256 258.35 512 541.90 1024 1023.92 2048 1768.96 4096 2918.97 8192 3984.86 16384 5203.51 32768 6264.41 65536 1661.85 131072 1696.79 262144 1535.17 524288 1587.83 1048576 1637.65 2097152 1636.63 4194304 1637.17 ------ use erdma for osu_bw: ENDProtokol TCP
++++++ use tcp for osu_bw: START # OSU MPI Bandwidth Test v7.5 # Datatype: MPI_CHAR. # Size Bandwidth (MB/s) 1 0.38 2 0.75 4 1.51 8 3.01 16 5.95 32 12.10 64 23.43 128 46.30 256 88.25 512 167.70 1024 343.96 2048 614.60 4096 1183.85 8192 1567.03 16384 1835.89 32768 1731.67 65536 2904.03 131072 3160.96 262144 1876.96 524288 1730.89 1048576 1733.18 2097152 1736.09 4194304 1735.78 ------ use tcp for osu_bw: ENDData pengujian menunjukkan bahwa untuk ukuran pesan dari 16 KB hingga 64 KB, eRDMA sepenuhnya memanfaatkan bandwidth jaringan, sedangkan tumpukan protokol TCP menimbulkan overhead tambahan.
-