Module Environment: Perbedaan antara revisi

Dari ALELEON by EFISON
(menambah gambar bawang)
(Major - penulisan yang lebih ringkas)
Baris 1: Baris 1:
'''User dapat menggunakan software (compiler / library / framework) yang terinstal di HPC Aleleon Mk.II  dengan memuat modul software tersebut melalui Module Environment'''. Module Environment adalah set modul yang berisikan alur PATH atau LIB untuk mengaktifkan software tertentu.   
'''User dapat menggunakan software yang tersedia di ALELEON Supercomputer dengan memuat modul software tersebut melalui Module Environment'''. Module Environment adalah set modul yang berisikan alur PATH atau LIB untuk mengaktifkan software tertentu.   
[[Berkas:Moduleenv.png|pus|nirbing|600x600px]]
[[Berkas:Moduleenv.png|pus|nirbing|600x600px]]


Baris 10: Baris 10:
|
|
  $ '''module load''' <x>
  $ '''module load''' <x>
|Memuat modul <x>. User dapat memuat banyak modul sekaligus dengan:  
|Memuat modul software <x>. User dapat memuat banyak modul sekaligus dengan:  
  $ module load <x> <y> <z>
  $ module load <x> <y> <z>
|-
|-
|
|
  $ '''module unload''' <x>
  $ '''module unload''' <x>
|Melepas modul <x>. User juga dapat melepas banyak modul sekaligus seperti contoh diatas.
|Melepas modul software <x>. User juga dapat melepas banyak modul sekaligus seperti contoh diatas.
|-
|-
|
|
  $ '''module list'''
  $ '''module list'''
|Melihat modul yang aktif pada saat itu.
|Melihat modul software yang aktif pada saat itu.
|-
|-
|
|
  $ '''module purge'''
  $ '''module purge'''
|Melepas semua modul yang aktif.
|Melepas semua modul software yang aktif.
|-
|-
|
|
  $ '''module av'''
  $ '''module av'''
|Melihat semua module yang tersedia di HPC Aleleon Mk.II
|Melihat semua module software yang tersedia di HPC Aleleon Mk.II
|-
|-
|
|
  $ '''module av''' <keyword>
  $ '''module av''' <keyword>
|Mencari modul melalui nama / keyword. Contoh: mencari module yang mengandung kata 'mpi'
|Mencari modul software melalui nama / keyword. Contoh: mencari module yang mengandung kata 'mpi'
  $ module av mpi
  $ module av mpi
|-
|-
|
|
  $ '''module switch''' <x> <y>     
  $ '''module switch''' <x> <y>     
|Mengganti modul <x> menjadi <y>. Contoh: user ingin mengganti module 'openmpi' yang sedang aktif dengan modul 'mpich':
|Mengganti modul software <x> menjadi <y>. Contoh: user ingin mengganti module 'openmpi' yang sedang aktif dengan modul 'mpich':
  $ module switch openmpi mpich
  $ module switch openmpi mpich
|}
|}


== '''Daftar Module Environment''' ==
== '''Daftar Modul Software ALELEON Supercomputer''' ==
Selain perintah module av, user dapat melihat daftar modul untuk semua software yang sudah dirangkum oleh admin EFISON pada laman [[Software di HPC Aleleon Mk.II|'''Software di HPC Aleleon Mk.II''']].
Admin EFISON merangkum daftar lengkap modul software ALELEON Supercomputer pada laman '''[[Katalog Software ALELEON Supercomputer]]''' melalui kolom ''''nama modul'''<nowiki/>'.


== '''Contoh Penggunaan Module Environment''' ==
== '''Menggunakan Module Environment''' ==
Pada contoh dibawah ini, user ingin menggunakan Open MPI.  
Module Environment digunakan pada dua tempat yaitu SLURM script dan terminal.
 
=== Module Environent di SLURM Script ===
Untuk menjalankan software di Compute Node, user wajib menulis perintah memuat modul software yang digunakan pada SLURM Script. Lihat contoh dibawah ini yaitu module load pada SLURM Script untuk menjalankan software NWChem.
#!/bin/bash
#SBATCH --ntasks=64             
#SBATCH --mem=128GB             
#SBATCH --time=10:00:00         
#SBATCH --output=result-%j.out   
#SBATCH --error=result-%j.err   
# Memuat modul NWChem
# Apabila modul tidak dimuat maka Compute Node tidak bisa menjalankan NWChem
# Perhatikan bahwa penulisan module load harus sebelum perintah menjalankan NWChem
'''module load nwchem'''
# Perintah menjalankan NWChem
'''mpirun -np $SLURM_NTASKS --mca pml ucx --mca osc ucx nwchem''' file_input.nw
 
=== Module Environment di Terminal ===
Terdapat pekerjaan di Login Node yang membutuhkan software tertentu? User dapat menggunakan perintah Module Environment di terminal. Pada contoh dibawah ini, user membutuhkan Open MPI untuk melakukan compile program sebelum dijalankan pada Compute Node.  


* Secara default, sistem tidak memuat Open MPI.
* Secara default, sistem tidak memuat Open MPI.


  [ale01@login ~]$ which mpicc
  $ which mpicc
  /usr/bin/which: no mpicc in (/usr/local/bin:/opt/rh/devtoolset-9/root/usr/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/ale01/.local/bin:/home/ale01/bin
  /usr/bin/which: no mpicc in (/usr/local/bin:/opt/rh/devtoolset-9/root/usr/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/ale01/.local/bin:/home/ale01/bin


* User memuat modul Open MPI (dengan nama modul 'openmpi') dengan perintah module load:
* User memuat modul Open MPI (dengan nama modul 'openmpi') dengan perintah module load:


  [ale01@login ~]$ module load openmpi
  $ module load openmpi


* Sekarang software Open MPI sudah aktif dan siap digunakan.
* Sekarang Open MPI telah aktif dan siap digunakan untuk melalukan compile program.


  [ale01@login ~]$ which mpicc
  $ which mpicc
  /comp/easybuild/software/OpenMPI/4.1.0-GCC-10.2.0/bin/mpicc
  /comp/easybuild/software/OpenMPI/4.1.0-GCC-10.2.0/bin/mpicc


* User dapat melakukan konfirmasi dengan perintah module list untuk melihat modul apa saja yang aktif. Pada contoh ini terlihat banyak modul yang aktif karena modul openmpi memuat modul pendukung lainnya supaya Open MPI berjalan dengan baik.
* Apabila user tidak lagi membutuhkan Open MPI maka user dapat menonaktifkan Open MPI dengan module unload.
 
[ale01@login ~]$ module list
Currently Loaded Modules:
  1) GCCcore/10.2.0                  6) XZ/5.2.5-GCCcore-10.2.0          11) UCX/1.9.0-GCCcore-10.2.0
  2) zlib/1.2.11-GCCcore-10.2.0      7) libxml2/2.9.10-GCCcore-10.2.0    12) libfabric/1.11.0-GCCcore-10.2.0
  3) binutils/2.35-GCCcore-10.2.0    8) libpciaccess/0.16-GCCcore-10.2.0  13) PMIx/3.1.5-GCCcore-10.2.0
  4) GCC/10.2.0                      9) hwloc/2.2.0-GCCcore-10.2.0        14) openmpi/4.1.0-GCC-10.2.0
  5) numactl/2.0.13-GCCcore-10.2.0  10) libevent/2.1.12-GCCcore-10.2.0   
 
* Untuk melepas semua modul yang aktif, gunakan perintah module purge kemudian lihat dengan module list bahwa tidak ada lagi modul yang aktif.
 
[ale01@login ~]$ module purge
[ale01@login ~]$ module list
No modules loaded
 
== '''Module Environment di SLURM Script''' ==
[[Manajemen SLURM Aleleon|'''Manajemen SLURM''']] dapat menggunakan semua perintah module environment yang ditaruh pada [[Contoh SLURM Script|'''SLURM script''']]. Module load pada SLURM Script bertujuan supaya '''Compute Node dapat menjalankan software yang dibutuhkan oleh komputasi user'''.  


Berikut adalah contoh SLURM Script yang mengandung perintah module load.
  $ module unload openmpi
  #!/bin/bash
#SBATCH --ntasks=64
#SBATCH --mem=8GB
#SBATCH --time=1:00:00
#SBATCH --output=result-%j.out
#SBATCH --error=result-%j.err
# MODULE
'''module load openmpi'''
# RUN COMMAND
mpirun -np $SLURM_NTASKS --mca pml ucx --mca osc ucx ./hellompi

Revisi per 20 Januari 2022 03.14

User dapat menggunakan software yang tersedia di ALELEON Supercomputer dengan memuat modul software tersebut melalui Module Environment. Module Environment adalah set modul yang berisikan alur PATH atau LIB untuk mengaktifkan software tertentu.

Moduleenv.png

Perintah Module Environment

Berikut adalah daftar perintah esensial untuk menggunakan Module Environment:

Perintah Penjelasan
$ module load <x>
Memuat modul software <x>. User dapat memuat banyak modul sekaligus dengan:
$ module load <x> <y> <z>
$ module unload <x>
Melepas modul software <x>. User juga dapat melepas banyak modul sekaligus seperti contoh diatas.
$ module list
Melihat modul software yang aktif pada saat itu.
$ module purge
Melepas semua modul software yang aktif.
$ module av
Melihat semua module software yang tersedia di HPC Aleleon Mk.II
$ module av <keyword>
Mencari modul software melalui nama / keyword. Contoh: mencari module yang mengandung kata 'mpi'
$ module av mpi
$ module switch <x> <y>     
Mengganti modul software <x> menjadi <y>. Contoh: user ingin mengganti module 'openmpi' yang sedang aktif dengan modul 'mpich':
$ module switch openmpi mpich

Daftar Modul Software ALELEON Supercomputer

Admin EFISON merangkum daftar lengkap modul software ALELEON Supercomputer pada laman Katalog Software ALELEON Supercomputer melalui kolom 'nama modul'.

Menggunakan Module Environment

Module Environment digunakan pada dua tempat yaitu SLURM script dan terminal.

Module Environent di SLURM Script

Untuk menjalankan software di Compute Node, user wajib menulis perintah memuat modul software yang digunakan pada SLURM Script. Lihat contoh dibawah ini yaitu module load pada SLURM Script untuk menjalankan software NWChem.

#!/bin/bash 
#SBATCH --ntasks=64               
#SBATCH --mem=128GB               
#SBATCH --time=10:00:00           
#SBATCH --output=result-%j.out    
#SBATCH --error=result-%j.err    

# Memuat modul NWChem 
# Apabila modul tidak dimuat maka Compute Node tidak bisa menjalankan NWChem 
# Perhatikan bahwa penulisan module load harus sebelum perintah menjalankan NWChem
module load nwchem 

# Perintah menjalankan NWChem 
mpirun -np $SLURM_NTASKS --mca pml ucx --mca osc ucx nwchem file_input.nw

Module Environment di Terminal

Terdapat pekerjaan di Login Node yang membutuhkan software tertentu? User dapat menggunakan perintah Module Environment di terminal. Pada contoh dibawah ini, user membutuhkan Open MPI untuk melakukan compile program sebelum dijalankan pada Compute Node.

  • Secara default, sistem tidak memuat Open MPI.
$ which mpicc
/usr/bin/which: no mpicc in (/usr/local/bin:/opt/rh/devtoolset-9/root/usr/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/ale01/.local/bin:/home/ale01/bin
  • User memuat modul Open MPI (dengan nama modul 'openmpi') dengan perintah module load:
$ module load openmpi
  • Sekarang Open MPI telah aktif dan siap digunakan untuk melalukan compile program.
$ which mpicc
/comp/easybuild/software/OpenMPI/4.1.0-GCC-10.2.0/bin/mpicc
  • Apabila user tidak lagi membutuhkan Open MPI maka user dapat menonaktifkan Open MPI dengan module unload.
$ module unload openmpi