Optimasi Performa ALELEON Supercomputer: Perbedaan antara revisi

Dari ALELEON by EFISON
(menentukan jumlah node, core, dan RAM)
(menambah link section per halaman)
 
(12 revisi perantara oleh pengguna yang sama tidak ditampilkan)
Baris 1: Baris 1:
Halaman ini memandu user dalam basis mengalokasikan resources komputasi (node, CPU, RAM, GPU) secara benar berdasarkan hardware yang digunakan oleh ALELEON Supercomputer.
Halaman ini memandu user dalam basis menjalankan berbagai skenario komputasi dengan menyesuaikan arsitektur ALELEON Supercomputer untuk menghasilkan performa dan efisiensi maksimal. Hal ini termasuk aturan penulisan perintah dan konfigurasi tambahan di SLURM Script untuk skenario komputasi tertentu.


== '''Dasar Memilih Jumlah Node, Core CPU, dan RAM''' ==
== '''[[MPI ALELEON Supercomputer|Menjalankan MPI di ALELEON Supercomputer]]''' ==
Berikut adalah beberapa dasar untuk mengalokasikan jumlah node, core thread CPU, dan RAM di ALELEON Supercomputer.


=== Menentukan Jumlah Node: Program MPI vs Non-MPI ===
* [https://wiki.efisonlt.com/wiki/MPI_ALELEON_Supercomputer#Modul_OpenMPI Memuat modul MPI yang telah dioptimasi.]
Terdapat dua kategori besar pada program komputasi yang dijalankan pada superkomputer yaitu program MPI dan non-MPI:
* [https://wiki.efisonlt.com/wiki/MPI_ALELEON_Supercomputer#Menulis_Perintah_OpenMPI_di_ALELEON_Supercomputer Menjalankan MPI dengan protokol UCX untuk performa dan optimasi maksimal.]
*Program MPI adalah program yang ditulis berdasarkan pemrograman MPI (Message Parallel Interface) di mana '''dapat berjalan secara paralel atau lebih dari satu node (multi-node)'''. Berjalan multi-node artinya dapat memanfaatkan lebih dari 128 core thread CPU pada ALELEON Supercomputer.
* [https://wiki.efisonlt.com/wiki/MPI_ALELEON_Supercomputer#Bagaimana_SLURM_ALELEON_Membagi_Core_Fisik_dan_Thread Menjelaskan bagaimana SLURM menyebar proses MPI pada core fisik dan thread CPU.]
*Program non-MPI adalah program yang tidak ditulis dengan pemodelan MPI sehingga '''hanya dapat berjalan pada 1 node.'''
* [https://wiki.efisonlt.com/wiki/MPI_ALELEON_Supercomputer#MPI_Satu_Node_vs_Multi_Node Menjalankan program MPI pada satu node vs multi-node.]
{| class="wikitable"
!Jenis Program
!Jumlah Node
|-
|Non-MPI
|1
|-
|MPI
|1 atau lebih
|}
|


===Jumlah Core CPU: Kelipatan 4===
== '''[[Threading di ALELEON Supercomputer|Komputasi Threading di ALELEON Supercomputer]]''' ==
Berdasarkan arsiktektur CPU AMD yang digunakan oleh ALELEON Supercomputer, user direkomendasikan untuk memilih jumlah core CPU (ntasks) berdasarkan kelipatan 4, dimulai dari 1,2,4, kemudian naik kelipatan 4 menjadi 8, 12, 16, 20, 24, 28, 32, 36, 40, dan seterusnya.


|
* [https://wiki.efisonlt.com/wiki/Threading_di_ALELEON_Supercomputer#SLURM_SBATCH_cpus-per-task Mengalokasikan threading pada SLURM.]
* [https://wiki.efisonlt.com/wiki/Threading_di_ALELEON_Supercomputer#Menjalankan_Program_Pure_OMP Menjalankan program pure OMP.]
* [https://wiki.efisonlt.com/wiki/Threading_di_ALELEON_Supercomputer#Menjalankan_Program_Paralelisasi_BLAS Menjalankan program dengan paralelisasi BLAS (AMD BLIS, OpenBLAS, MKL).]
* [https://wiki.efisonlt.com/wiki/Threading_di_ALELEON_Supercomputer#Mejalankan_Program_Hybrid_MPI.2FOMP_atau_MPI.2FBLAS Menjalankan program Hybrid MPI.]


===Memperkirakan Kapasitas RAM yang Digunakan===
== '''[[Compiler AMD ALELEON Supercomputer|Optimasi Compiler AMD]]''' ==
Apakah program user membutuhkan banyak RAM atau tidak? Tidak ada aturan baku untuk mengetahui hal ini karena bergantung dengan jenis software dan besarnya skala input yang dijalankan user. Admin EFISON dapat memberikan saran '''untuk menggunakan jumlah RAM 1GB per ntasks sebagai basis'''. Contoh:
 
*ntasks=8, alokasikan mem 8GB.
* [https://wiki.efisonlt.com/wiki/Compiler_AMD_ALELEON_Supercomputer#Melakukan_Compiling_di_ALELEON_Supercomputer Cara melakukan compiling di ALELEON Supercomputer.]
*ntasks=32, alokasikan mem 32GB.
* [https://wiki.efisonlt.com/wiki/Compiler_AMD_ALELEON_Supercomputer#GCC_untuk_AMD Menggunakan GCC dengan optimasi AMD.]
User dapat menggunakan kapasitas RAM yang lebih besar (contoh 2GB atau 4GB per ntasks) apabila user mengetahui bahwa program yang dijalankan membutuhkan kapasitas RAM besar atau program gagal berjalan dengan alokasi RAM 1GB per ntasks.
* [https://wiki.efisonlt.com/wiki/Compiler_AMD_ALELEON_Supercomputer#AMD_Optimizing_CPU_Libraries_.28AOCL.29 Menggunakan AMD Optimizing CPU Libraries (AOCL).]
* [https://wiki.efisonlt.com/wiki/Compiler_AMD_ALELEON_Supercomputer#Intel_MKL_di_AMD Menggunakan Math Kernel Library.]

Revisi terkini sejak 10 Februari 2022 09.25