R: Perbedaan antara revisi

Dari ALELEON by EFISON
(initial writing)
 
(Major overhaul dan menambahkan info RMPI)
Baris 1: Baris 1:
Halaman ini menjelaskan bagaimana cara menjalankan software R di HPC Aleleon Mk.II.
== '''Deskripsi''' ==
 
R adalah software untuk menjalankan komputasi statistik dan grafis. Software R didukung oleh [https://www.r-project.org/ '''The R Foundation for Statistical Computing'''].  
== '''Software R''' ==
R adalah software untuk menjalankan komputasi statistik dan grafis. Software R didukung oleh [https://www.r-project.org/ The R Foundation for Statistical Computing].  


== '''Versi yang Tersedia''' ==
== '''Versi yang Tersedia''' ==
Baris 8: Baris 6:
!Versi
!Versi
!Nama Modul
!Nama Modul
!Dukungan MPI
!Dukungan Hardware
!Dukungan Hardware
|-
|-
|4.0.4 "Lost Library Book"
|4.0.4 "Lost Library Book"
|R
|R
|CPU, parallel single-node (tidak mendukung multi-node)
|ya, melalui [https://cran.r-project.org/web/packages/Rmpi/Rmpi.pdf '''RMPI''']
|default: CPU, parallel single-node
<nowiki>*</nowiki>parallel multi-node dengan RMPI
|}
|}
User dapat melihat R packages yang terinstal dengan memuat modul R yang akan dipakai lalu menjalankan perintah installed.packages():
'''Perlu dketahui bahwa HPC Aleleon Mk.II tidak menyediakan IDE R Studio.''' Rekomendasi dari admin EFISON adalah:
 
* Melakukan coding dan testing R pada komputer pribadi user dimana dapat menggunakan IDE R Studio.
* R pada HPC Aleleon Mk.II hanya digunakan untuk menjalankan script R yang siap dijalankan.
 
== '''Package Library R''' ==
User dapat melihat library R yang terinstal dengan memuat modul R yang akan dipakai lalu menjalankan perintah installed.packages():
  $ module load R
  $ module load R
  $ R
  $ R
  -> installed.packages()
  -> installed.packages()
User dapat menghubungi admin EFISON melalui email support@efisonlt.com apabila membutuhkan instalasi R versi spesifik dan R packages yang belum terinstal.
User dapat menghubungi admin EFISON apabila membutuhkan instalasi R versi spesifik dan R packages yang belum terinstal melalui email:
'''support@efisonlt.com'''


== '''SLURM Submission Script''' ==
=='''Contoh SLURM Script'''==
Berikut adalah contoh SLURM Submission Script untuk menjalankan R ((dengan 64 core dan RAM 128GB)):
User harus menggunakan [[Scheduler SLURM Aleleon|'''manajemen SLURM''']] untuk menjalankan komputasi R di Compute Node. 
 
=== '''Satu Node CPU''' ===
Secara standar, R berjalan dengan satu compute node. '''R pada HPC Aleleon Mk.II telah diatur untuk dapat memanfaatkan semua core CPU dengan paralelisasi threading'''. Berikut adalah contoh untuk menjalankan R pada satu node CPU.
  #!/bin/bash
  #!/bin/bash
   
   
  #SBATCH --ntasks=64
  #SBATCH --ntasks=64               # Contoh menggunakan 64 core CPU
  #SBATCH --mem=128GB
  #SBATCH --mem=128GB              # Contoh menggunakan RAM 128GB
  #SBATCH --time=10:00:00
  #SBATCH --time=10:00:00           # Contoh menetapkan walltime maks 10 jam
  #SBATCH --output=result-%j.out
  #SBATCH --output=result-%j.out   # Output terminal program
  #SBATCH --error=result-%j.err
  #SBATCH --error=result-%j.err     # Output verbose program
   
   
  # Load module R
  # Memuat modul R
  module load R
  module load R
   
   
  # Menjalankan program R
  # Menjalankan program R
  Rscript myjob.R
  '''Rscript''' myjob.R
 
=== '''R dengan MPI (RMPI)''' ===
RMPI dijalankan dengan model Pure MPI (hanya MPI saja, bukan hybrid MPI/OMP). '''RMPI dapat dicapai dengan pemograman dari user sendiri''', bukan secara otomatis package RMPI mengubah coding R biasa menjadi R MPI. User dapat menjalankan R dengan satu node atau multi node (lebih dari satu node) untuk performa lebih.
 
'''Contoh berikut untuk menjalankan R pada satu node CPU.'''
#!/bin/bash
#SBATCH --ntasks=64              # Contoh menggunakan 64 core CPU
#SBATCH --mem=128GB              # Contoh menggunakan RAM 128GB
#SBATCH --time=10:00:00          # Contoh menetapkan walltime maks 10 jam
#SBATCH --output=result-%j.out    # Output terminal program
#SBATCH --error=result-%j.err    # Output verbose program
# Memuat modul R
module load R
# RUN COMMAND
# mpirun wajib menggunakan flag protokol UCX
'''mpirun -np $SLURM_NTASKS --mca pml ucx --mca osc ucx Rscript''' myjob.R
'''Contoh berikut untuk menjalankan NWChem pada lebih dari satu node CPU.'''
#!/bin/bash
#SBATCH --nodes=2                # Contoh menggunakan 2 node ...
#SBATCH --ntasks-per-node=128    # dengan 128 core per node.
                                  # Maka dari itu total menggunakan 256 core CPU
#SBATCH --mem=128GB              # Contoh menggunakan RAM 128GB per node
#SBATCH --time=10:00:00          # Contoh menggunakan walltime maks 10 jam
#SBATCH --output=result-%j.out    # Output terminal program
#SBATCH --error=result-%j.err    # Output verbose program
# Memuat modul R
module load R
# RUN COMMAND
# mpirun wajib menggunakan flag protokol UCX
# $SLURM_NTASKS menangkap total proses MPI (nodes * ntasks-per-node)
'''mpirun -np $SLURM_NTASKS --mca pml ucx --mca osc ucx Rscript''' myjob.R
User dapat melihat laman [https://wiki.efisonlt.com/wiki/Contoh_SLURM_Script#SLURM_Script_untuk_Komputasi_Paralel_MPI '''SLURM Script untuk Komputasi Paralel MPI'''] untuk memahami lebih lanjut tentang berbagai contoh SLURM script diatas,

Revisi per 13 September 2021 09.47

Deskripsi

R adalah software untuk menjalankan komputasi statistik dan grafis. Software R didukung oleh The R Foundation for Statistical Computing.

Versi yang Tersedia

Versi Nama Modul Dukungan MPI Dukungan Hardware
4.0.4 "Lost Library Book" R ya, melalui RMPI default: CPU, parallel single-node

*parallel multi-node dengan RMPI

Perlu dketahui bahwa HPC Aleleon Mk.II tidak menyediakan IDE R Studio. Rekomendasi dari admin EFISON adalah:

  • Melakukan coding dan testing R pada komputer pribadi user dimana dapat menggunakan IDE R Studio.
  • R pada HPC Aleleon Mk.II hanya digunakan untuk menjalankan script R yang siap dijalankan.

Package Library R

User dapat melihat library R yang terinstal dengan memuat modul R yang akan dipakai lalu menjalankan perintah installed.packages():

$ module load R
$ R
-> installed.packages()

User dapat menghubungi admin EFISON apabila membutuhkan instalasi R versi spesifik dan R packages yang belum terinstal melalui email:

support@efisonlt.com

Contoh SLURM Script

User harus menggunakan manajemen SLURM untuk menjalankan komputasi R di Compute Node.

Satu Node CPU

Secara standar, R berjalan dengan satu compute node. R pada HPC Aleleon Mk.II telah diatur untuk dapat memanfaatkan semua core CPU dengan paralelisasi threading. Berikut adalah contoh untuk menjalankan R pada satu node CPU.

#!/bin/bash

#SBATCH --ntasks=64               # Contoh menggunakan 64 core CPU
#SBATCH --mem=128GB               # Contoh menggunakan RAM 128GB
#SBATCH --time=10:00:00           # Contoh menetapkan walltime maks 10 jam
#SBATCH --output=result-%j.out    # Output terminal program
#SBATCH --error=result-%j.err     # Output verbose program

# Memuat modul R
module load R

# Menjalankan program R
Rscript myjob.R

R dengan MPI (RMPI)

RMPI dijalankan dengan model Pure MPI (hanya MPI saja, bukan hybrid MPI/OMP). RMPI dapat dicapai dengan pemograman dari user sendiri, bukan secara otomatis package RMPI mengubah coding R biasa menjadi R MPI. User dapat menjalankan R dengan satu node atau multi node (lebih dari satu node) untuk performa lebih.

Contoh berikut untuk menjalankan R pada satu node CPU.

#!/bin/bash

#SBATCH --ntasks=64               # Contoh menggunakan 64 core CPU
#SBATCH --mem=128GB               # Contoh menggunakan RAM 128GB
#SBATCH --time=10:00:00           # Contoh menetapkan walltime maks 10 jam
#SBATCH --output=result-%j.out    # Output terminal program
#SBATCH --error=result-%j.err     # Output verbose program

# Memuat modul R
module load R

# RUN COMMAND
# mpirun wajib menggunakan flag protokol UCX

mpirun -np $SLURM_NTASKS --mca pml ucx --mca osc ucx Rscript myjob.R

Contoh berikut untuk menjalankan NWChem pada lebih dari satu node CPU.

#!/bin/bash

#SBATCH --nodes=2                 # Contoh menggunakan 2 node ...
#SBATCH --ntasks-per-node=128     # dengan 128 core per node.
                                  # Maka dari itu total menggunakan 256 core CPU
#SBATCH --mem=128GB               # Contoh menggunakan RAM 128GB per node
#SBATCH --time=10:00:00           # Contoh menggunakan walltime maks 10 jam
#SBATCH --output=result-%j.out    # Output terminal program
#SBATCH --error=result-%j.err     # Output verbose program

# Memuat modul R
module load R

# RUN COMMAND
# mpirun wajib menggunakan flag protokol UCX
# $SLURM_NTASKS menangkap total proses MPI (nodes * ntasks-per-node)

mpirun -np $SLURM_NTASKS --mca pml ucx --mca osc ucx Rscript myjob.R

User dapat melihat laman SLURM Script untuk Komputasi Paralel MPI untuk memahami lebih lanjut tentang berbagai contoh SLURM script diatas,