Compiler AMD ALELEON Supercomputer: Perbedaan antara revisi

Dari ALELEON by EFISON
(initial writing, hingga Intel MKL)
 
 
(5 revisi perantara oleh pengguna yang sama tidak ditampilkan)
Baris 1: Baris 1:
HPC Aleleon Mk.II mempunyai set library dan compiler yang dioptimasi untuk AMD EPYC. Halaman ini merangkum info teknis penting tentang penggunaan compiler dan software AMD tersebut supaya user dapat sepenuhnya memanfaatkan performa AMD EPYC Rome.
'''ALELEON Supercomputer mempunyai set library dan compiler yang dioptimasi untuk arsitektur CPU AMD Zen2 yang digunakan pada Compute Node'''. Halaman ini merangkum info teknis penting tentang penggunaan compiler dan software AMD tersebut supaya user dapat sepenuhnya memanfaatkan performa AMD Zen2.


== '''GCC 9 dan 10''' ==
== '''Melakukan Compiling di ALELEON Supercomputer''' ==
HPC Aleleon Mk.II menggunakan GCC 9.3.1 RHEL sebagai GCC sistem. Selain itu tersedia GCC 10.2.0 yang dapat diakses dengan modul:  
User melakukan kegiatan compiling pada terminal ALELEON Supercomputer. Pada Job Composer, gunakan opsi Open Terminal pada job yang dipilih untuk melakukan compiling di direktori job tersebut. Kemudian user dapat mengaktifkan compiler yang akan digunakan melalui [[Module Environment|'''Module Environment''']].
$ module load GCC/10.2.0
[[Berkas:Jcjoboption.png|nir|jmpl|500x500px|Gunakan opsi '''Open Terminal''' untuk membuka terminal di direktori job terpilih.]]
Keduanya mendukung flag optimasi march untuk AMD EPYC Rome dengan:  
 
  -march=znver2
== '''GCC untuk AMD''' ==
ALELEON Supercomputer menggunakan GCC RHEL sebagai GCC sistem (default 10.2.0). User dapat melihat GCC versi lainnya yang terinstal beserta nama modulnya pada [https://wiki.efisonlt.com/wiki/Katalog_Software_ALELEON_Supercomputer#Daftar_Compiler_.28Global.29 '''tabel daftar compiler ALELEON Supercomputer'''].  
 
GCC mendukung flag optimasi march untuk AMD Zen2:  
  '''-march=znver2'''
Flag march diatas dapat digunakan untuk flag compiling C ('''CFLAGS'''), C++ ('''CXXFLAGS'''). dan Fortran ('''FCFLAGS''') melalui GCC.


== '''AMD Optimizing CPU Libraries (AOCL)''' ==
== '''AMD Optimizing CPU Libraries (AOCL)''' ==
AOCL adalah set library numerik dan matematika untuk komputasi HPC yang dibuat khusus untuk keluarga AMD EPYC. Saat ini HPC Aleleon Mk.II menggunakan AOCL versi 3.0. AOCL yang tersedia di HPC Aleleon Mk.II adalah:
AOCL adalah set library numerik dan matematika untuk komputasi HPC yang dibuat khusus untuk keluarga AMD EPYC. Saat ini ALELEON Supercomputer menggunakan AOCL versi 3.0 sebagai default. User dapat melihat semua versi AOCL yang terinstal beserta nama modulnya pada [https://wiki.efisonlt.com/wiki/Katalog_Software_ALELEON_Supercomputer#Daftar_Library_Matematika_.28Global.29 '''tabel daftar library matematika ALELEON Supercomputer'''].
{| class="wikitable"
 
!Library
---
!Penjelasan
 
|-
=== BLIS (BLAS-like Library Instantiation Software ===
|'''BLIS'''  
Adalah framework portable BLAS (Basic Linear Algebra Subprograms) yang dbuat oleh Flame kemudian dikembangkan spesifik oleh AMD untuk AOCL. BLIS yang terinstal pada ALELEON Supercomputer adalah versi '''multi-threading'''. Flag untuk melakukan compile dengan BLIS:
(BLAS-like Library Instantiation Software)
|Framework portable BLAS (Basic Linear Algebra Subprograms) yang dbuat oleh Flame kemudian dikembangkan spesifik oleh AMD untuk AOCL. Menggunakan BLIS:
$ module load blis
BLIS yang digunakan di HPC Aleleon Mk.II adalah versi multi-threading. Flag untuk melakukan compile dengan BLIS:  
  -lblis-mt
  -lblis-mt
|-
---
|'''LibFLAME'''
 
|Portable library untuk komputasi matrix atau LAPACK (Linear Algebra Package). Menggunakan LibFLAME:
=== LibFLAME ===
$ module load libflame
Adalah portable library untuk komputasi matrix atau LAPACK (Linear Algebra Package). Flag untuk melakukan compile dengan LibFLAME:
Flag untuk melakukan compile dengan LibFLAME:  
  -lflame
  -lflame
|-
---
|'''AMD LibM'''
 
(Core Math Library)
=== AMD LibM ===
|Menyediakan fungsi-fungsi matematika untuk prosesor x86-64 (seperti -lm di GCC). Compatible dengan compiler GCC dan Intel. Menggunakan LibM:
Menyediakan fungsi-fungsi matematika untuk prosesor x86-64 (seperti -lm di GCC). Compatible dengan compiler GCC dan Intel OneAPI. Untuk menggunakan AMD LibM, flag compiling wajib dilakukan dengan urutan berikut ('''tidak boleh terbalik'''):
$ module load LibM
Untuk menggunakan AMD LibM, flag compiling wajib dilakukan dengan urutan berikut (tidak boleh terbalik):  
  -lamdlibm -lm
  -lamdlibm -lm
|-
---
|'''AMD FFTW'''
 
|FFTW (Fastest Fourier Transform in the West) yang khusus dioptimalisasi untuk AMD. Menggunakan AMD FFTW:
=== AMD FFTW ===
$ module load fftw
FFTW (Fastest Fourier Transform in the West) yang khusus dioptimalisasi untuk AMD.
|}
 
Bacaan lebih lanjut untuk info yang lebih detail:  
---
 
=== Pranala Lebih Lanjut ===
Bacaan lebih lanjut untuk info mengenai AOCL yang lebih detail:  


* [https://developer.amd.com/wp-content/resources/AOCL_User%20Guide_3.0.pdf '''Buku panduan AMD AOCL 3.0''']
* [https://developer.amd.com/wp-content/resources/AOCL_User%20Guide_3.0.pdf '''Buku panduan AMD AOCL 3.0''']
Baris 44: Baris 45:
User dapat menggunakan Intel MKL (Math Kernel Library) di sistem AMD melalui Intel oneAPI dengan modul:  
User dapat menggunakan Intel MKL (Math Kernel Library) di sistem AMD melalui Intel oneAPI dengan modul:  
  $ module load oneapi
  $ module load oneapi
Ketike menggunakan Intel MKL untuk build framework, user harus menggunakan integer size 4 (32 bit). Sistem AMD di HPC Aleleon Mk.II tidak mendukung integer size 8 (64 bit).
Ketike menggunakan Intel MKL untuk build framework, user harus menggunakan integer size 4 (32 bit). Sistem AMD di ALELEON Supercomputer tidak mendukung integer size 8 (64 bit).
 
== '''Threading pada AMD Zen2''' ==

Revisi terkini sejak 9 Februari 2022 10.37

ALELEON Supercomputer mempunyai set library dan compiler yang dioptimasi untuk arsitektur CPU AMD Zen2 yang digunakan pada Compute Node. Halaman ini merangkum info teknis penting tentang penggunaan compiler dan software AMD tersebut supaya user dapat sepenuhnya memanfaatkan performa AMD Zen2.

Melakukan Compiling di ALELEON Supercomputer

User melakukan kegiatan compiling pada terminal ALELEON Supercomputer. Pada Job Composer, gunakan opsi Open Terminal pada job yang dipilih untuk melakukan compiling di direktori job tersebut. Kemudian user dapat mengaktifkan compiler yang akan digunakan melalui Module Environment.

Gunakan opsi Open Terminal untuk membuka terminal di direktori job terpilih.

GCC untuk AMD

ALELEON Supercomputer menggunakan GCC RHEL sebagai GCC sistem (default 10.2.0). User dapat melihat GCC versi lainnya yang terinstal beserta nama modulnya pada tabel daftar compiler ALELEON Supercomputer.

GCC mendukung flag optimasi march untuk AMD Zen2:

-march=znver2

Flag march diatas dapat digunakan untuk flag compiling C (CFLAGS), C++ (CXXFLAGS). dan Fortran (FCFLAGS) melalui GCC.

AMD Optimizing CPU Libraries (AOCL)

AOCL adalah set library numerik dan matematika untuk komputasi HPC yang dibuat khusus untuk keluarga AMD EPYC. Saat ini ALELEON Supercomputer menggunakan AOCL versi 3.0 sebagai default. User dapat melihat semua versi AOCL yang terinstal beserta nama modulnya pada tabel daftar library matematika ALELEON Supercomputer.

---

BLIS (BLAS-like Library Instantiation Software

Adalah framework portable BLAS (Basic Linear Algebra Subprograms) yang dbuat oleh Flame kemudian dikembangkan spesifik oleh AMD untuk AOCL. BLIS yang terinstal pada ALELEON Supercomputer adalah versi multi-threading. Flag untuk melakukan compile dengan BLIS:

-lblis-mt

---

LibFLAME

Adalah portable library untuk komputasi matrix atau LAPACK (Linear Algebra Package). Flag untuk melakukan compile dengan LibFLAME:

-lflame

---

AMD LibM

Menyediakan fungsi-fungsi matematika untuk prosesor x86-64 (seperti -lm di GCC). Compatible dengan compiler GCC dan Intel OneAPI. Untuk menggunakan AMD LibM, flag compiling wajib dilakukan dengan urutan berikut (tidak boleh terbalik):

-lamdlibm -lm

---

AMD FFTW

FFTW (Fastest Fourier Transform in the West) yang khusus dioptimalisasi untuk AMD.

---

Pranala Lebih Lanjut

Bacaan lebih lanjut untuk info mengenai AOCL yang lebih detail:

Intel MKL di AMD

User dapat menggunakan Intel MKL (Math Kernel Library) di sistem AMD melalui Intel oneAPI dengan modul:

$ module load oneapi

Ketike menggunakan Intel MKL untuk build framework, user harus menggunakan integer size 4 (32 bit). Sistem AMD di ALELEON Supercomputer tidak mendukung integer size 8 (64 bit).