R

Dari ALELEON by EFISON

Revisi sejak 17 Oktober 2023 05.35 oleh WilsonLisan (bicara | kontrib) (menambah info instalasi package R)

R.png

R adalah bahasa interpreter yang didesain untuk mengerjakan komputasi statistika. Pada perkembangannya, bahasa R digunakan untuk pengolahan data di bidang data science. Software R didukung oleh The R Foundation for Statistical Computing.

Modul R

Berikut adalah detail versi R yang tersedia secara global di ALELEON Supercomputer:

Modul R
Versi Nama modul Modul

DEFAULT

Dukungan hardware
CPU GPU OMP

Threading

MPI

multi-node

4.3.0 "Already Tomorrow" R/4.3.0-GCC11.3-MKL V V - - V melalui RMPI1

Keterangan:

  1. RMPI dapat dicapai dengan pemrograman R dari pihak user menggunakan wrapper Rmpi.

Alternatif Menjalankan R di ALELEON Supercomputer

ALELEON Supercomputer menawarkan user untuk menjalankan R dengan pilihan skema:

Menjalankan R melalui Job Submission
  • Menjalankan file R siap jalan melalui scheduler SLURM.
  • Berjalan di Compute Node CPU epyc dengan spesifikasi hingga CPU 128 core dan RAM 500GB
    • R versi MPI (RMPI) dapat berjalan paralel hingga CPU 384 core.
Menjalankan R dengan sesi interaktif Jupyter
  • Menjalankan R melalui sesi interaktif via Jupyter Notebook atau Lab.
  • Berjalan di Interactive Node Torti dengan spesifikasi CPU 32 core dan RAM 64GB.

Instalasi Library Package R

Instalasi library R pada ALELEON Supercomputer dapat dilakukan dengan dua alternatif cara:

  1. Melayangkan permintaan instalasi package ke admin melalui email support@efisonlt.com; atau
  2. Melakukan instalasi mandiri di Login Node dengan langkah berikut:
Panduan instalasi mandiri Library Package R di Login Node

*Instalasi package R di Login Node tidak mengurangi Kredit Core Hour user.

0A Instalasi package dilakukan melalui terminal.
0B Bagi user EFIRO, buka terminal melalui menu Clusters > Aleleon Shell Access.

Shellaccess.png

1 Aktifkan R dengan memuat modul versi R yang akan digunakan.
Versi Perintah Terminal
4.3.0 $ module load R/4.3.0-GCC11.3-MKL
2A Jalankan R dan lakukan instalasi package dengan format perintah standar:
$ R 
> install.packages('nama-package-yang-akan-diinstal')

Package akan terinstal di direktori HOME user.

2B Bagi user yang pertama kali melakukan instalasi package R:

Akan terdapat prompt untuk instalasi package di personal library, jawab yes.

Warning in install.packages("benchmarkme") :
  'lib = "/comp/R/4.1.2-GCC10-MKL/lib64/R/library"' is not writable
Would you like to use a personal library instead? (yes/No/cancel) yes

R akan meminta izin untuk menginstal package R di direktori HOME user. Jawab yes.

Would you like to create a personal library
‘~/R/x86_64-pc-linux-gnu-library/4.1’
to install packages into? (yes/No/cancel) yes

Menjalankan R Melalui Job Submission

User dapat menjalankan R melalui job submission dengan pilihan cara melalui tampilan terminal atau GUI web EFIRO.

Mengecek Kredit Core Hour bagi Akun Perseorangan

User dengan akun perseorangan disarankan untuk selalu mengecek sisa Kredit Core Hour sebelum melakukan job submission dengan menjalankan perintah pada terminal:

$ sausage

Bagi yang login ke web EFIRO, buka terminal pada menu Clusters > Aleleon Shell Access

Terminal - SLURM sbatch

Sbatch Terminal.png

Menjalankan komputasi pada terminal melalui job submission SLURM sbatch.

Langkah Menjalankan R via SLURM sbatch
0 Sebelum login, user harus terhubung ke jaringan VPN ALELEON Supercomputer.
Login dengan SSH:
  • User OS Windows dan MacOS -> $ ssh <username>@aleleon.hpc
  • User OS Linux -> $ ssh <username>@10.192.50.10
1 Siapkan file yang dibutuhkan untuk menjalankan komputasi user.
2 Buat SLURM Submit Script yaitu 'formulir' untuk menjalankan job dengan panduan berikut:
  • Nama script dibebaskan dengan format file .sh (bash), contoh my_job_submission.sh
  • Buat script pada direktori yang sama dengan file komputasi yang akan dijalankan.
  • Ikuti panduan template berikut dan petunjuk pada NOTES di dalamnya.
Template SLURM Submit Script untuk R
#!/bin/bash

# -------------------------------------------------------------
# | Template SLURM Submit Script
# | Software        : R
# | Update script   : 06/10/2023
# |
# | NOTES: 
# | 1. Isi bagian yang ditandai 4 garing (////).
# | 2. Template ini bersifat referensi.
# |    User dapat mengubah bagian yang sekiranya perlu diubah.
# | 3. Panduan menjalankan CP2K di ALELEON lihat: 
# |    https://wiki.efisonlt.com/wiki/R
# -------------------------------------------------------------

# --------------------------------------------------
# Alokasi komputasi, modul software, dan file input
# --------------------------------------------------

# Alokasi jumlah core thread CPU
#SBATCH --ntasks=////

# Alokasi jumlah memori RAM (satuan GB)
#SBATCH --mem=////GB

# Alokasi limit waktu menjalankan job. 
# Format HH:MM:SS atau D-HH:MM:SS
#SBATCH --time=////

# Definisi file untuk menampung output terminal
#SBATCH --output=result-%j.txt

# Definisi file untuk menampung output error log    
#SBATCH --error=error-%j.txt 

# Nama input file R dengan format file-nya
INPUT_FILE='////.R'

# Memuat modul software R yang akan digunakan user
# Daftar modul R lihat subbab "Modul R" pada
# https://wiki.efisonlt.com/wiki/R
module load R////

# -------------------------------------------------
# RUN SCRIPT
# -------------------------------------------------

# Perintah menjakankan R
Rscript ${INPUT_FILE}
Template SLURM Submit Script untuk R versi MPI (RMPI)
#!/bin/bash

# -------------------------------------------------------------
# | Template SLURM Submit Script
# | Software        : R versi MPI (RMPI)
# | Update script   : 06/10/2023
# |
# | NOTES: 
# | 1. Isi bagian yang ditandai 4 garing (////).
# | 2. Template ini bersifat referensi.
# |    User dapat mengubah bagian yang sekiranya perlu diubah.
# | 3. Panduan menjalankan CP2K di ALELEON lihat: 
# |    https://wiki.efisonlt.com/wiki/R
# -------------------------------------------------------------

# --------------------------------------------------
# Alokasi komputasi, modul software, dan file input
# --------------------------------------------------

# Alokasi jumlah core thread CPU
#SBATCH --ntasks=////

# Alokasi jumlah memori RAM (satuan GB)
#SBATCH --mem=////GB

# Alokasi limit waktu menjalankan job. 
# Format HH:MM:SS atau D-HH:MM:SS
#SBATCH --time=////

# Definisi file untuk menampung output terminal
#SBATCH --output=result-%j.txt

# Definisi file untuk menampung output error log    
#SBATCH --error=error-%j.txt 

# Nama input file R dengan format file-nya
INPUT_FILE='////.R'

# Memuat modul software R yang akan digunakan user
# Daftar modul R lihat subbab "Modul R" pada
# https://wiki.efisonlt.com/wiki/R
module load R////

# Memuat modul software Open MPI untuk menjalankan RMPI
module load openmpi

# -------------------------------------------------
# RUN SCRIPT
# -------------------------------------------------

# Perintah menjakankan R
mpirun -np $SLURM_NTASKS --mca pml ucx --mca osc ucx Rscript ${INPUT_FILE}
Panduan nilai maksimal SBATCH untuk R1
Skenario Menjalankan CP2K Berjalan di

Compute Node

Nilai maksimal SBATCH
ntasks

(CPU)

mem

(RAM)

gpus

(GPU)

time

(time limit)

Acuan fair policy usage2 128 128GB 2 3-00:00:00

atau 72:00:00

R biasa3 epyc (CPU) 128 240GB 0
R versi MPI (RMPI)4 epyc (CPU) 384 240GB 0
R biasa dan RMPI di high-mem node5 epyc (CPU) 128 500GB 0
Keterangan:#Info SBATCH lebih detail lihat laman Submit Script ALELEON Supercomputer
  1. Limitasi fair policy usage untuk menjaga kualitas layanan ALELEON Supercomputer.
  2. R biasa tidak mendukung komputasi paralel MPI hingga maksimum berjalan 1 node atau 128 core.
  3. R versi MPI (RMPI) mendukung komputasi paralel MPI untuk berjalan multi-node :
    • Satu node epyc mempunyai CPU 128 core.
    • Pada jumlah ntasks >128, SLURM otomatis menjalankan job secara multi-node.
      • Dalam kaitan ini, parameter mem adalah alokasi memori RAM per-node.
    • Info lebih detail lihat laman MPI ALELEON Supercomputer.
  4. High-mem node epyc yaitu epyc001 memungkinkan user mengalokasikan RAM hingga 500GB.
    • Tambahkan parameter #SBATCH --nodelist=epyc001
3A Sebelum menjalankan job, user dapat melakukan instalasi package R yang dibutuhkan oleh script R user.
3B Jalankan job dengan perintah sbatch.
$ sbatch <nama-SLURM-Submit-script>

Contoh menjalankan nama script my_job_submission.sh.

$ sbatch my_job_submission.sh
4A User dapat melihat status jalannya job dengan perintah squeue berikut.
  • Apabila tidak ada output artinya tidak ada job user yang berjalan / antri pada waktu itu.
$ squeue -ul $USER

Berikut adalah daftar STATE (ST) dari squeue yang menunjukkan status berjalannya job:

Daftar STATE squeue SLURM
STATE Kepanjangan Penjelasan
R RUN Job berjalan
PD PENDING Job tertahan, lihat keterangan NODELIST(REASON)
CG COMPLETING Job selesai dan dalam proses clean-up SLURM
CA CANCELED Job dibatalkan oleh user
PR PREEMPETED Job dibatalkan oleh admin EFISON, alasan dikabarkan melalui email
S SUSPENDED Job ditahan oleh admin EFISON
4B Apabila user ingin membatalkan job yang sedang berjalan, gunakan perintah scancel berdasarkan job ID.
  • Job ID dapat dilihat melalui perintah squeue pada kolom JOBID.
  • User hanya bisa membatalkan job submission milik user sendiri.
$ scancel <job-ID-submission-user>

Contoh user membatalkan job submission milik user dengan ID 231.

$ scancel 231

GUI Web - EFIRO Job Composer

Efirojobcomposer3.png

Menjalankan komputasi dengan tampilan grafis pada formulir job submission EFIRO Job Composer.

Langkah Menjalankan R via EFIRO Job Composer
0 Sebelum login, user harus terhubung ke jaringan VPN ALELEON Supercomputer.
Buka alamat web http://aleleon.ood kemudian masukkan username dan password user.
  • Bagi user Linux, buka alamat http://10.192.50.11
1 Buka menu dashboard EFIRO Jobs > Jobs Composer

2 Pilih New Jobs > From Template

3
Pilih template R yang diinginkan. Isi atau ganti Job Name sesuai keinginan user, kemudian klik Create New Job.
Template R yang tersedia
Nama Template Penjelasan
R 4.3.0 "Already Tomorrow" Menjalankan R versi 4.3.0
RMPI 4.3.0 "Already Tomorrow" Menjalankan R versi 4.3.0 dengan MPI
4 Jcjoboption3.png

Gunakan menu Edit Files untuk upload file yang dibutuhkan.

  • Laman Edit Files juga dapat melakukan view / download / edit / rename / delete file.
  • Fitur upload pada laman Edit Files mempunyai batasan ukuran upload 2GB per file.
    • Gunakan aplikasi FTP apabila user hendak mengupload file tunggal diatas 2GB.
5

Melalui Open Editor, lengkapi Submit Script dengan mengganti bagian yang di tandai 4 garis miring (////).

  • Jangan lupa klik Save setiap sekali mengubah script.
  • Template ini bersifat referensi, user dapat mengubah bagian yang sekiranya perlu diubah.
Panduan nilai maksimal SBATCH untuk R1
Skenario Menjalankan CP2K Berjalan di

Compute Node

Nilai maksimal SBATCH
ntasks

(CPU)

mem

(RAM)

gpus

(GPU)

time

(time limit)

Acuan fair policy usage2 128 128GB 2 3-00:00:00

atau 72:00:00

R biasa3 epyc (CPU) 128 240GB 0
R versi MPI (RMPI)4 epyc (CPU) 384 240GB 0
R biasa dan RMPI di high-mem node5 epyc (CPU) 128 500GB 0

Keterangan:#Info SBATCH lebih detail lihat laman Submit Script ALELEON Supercomputer

  1. Limitasi fair policy usage untuk menjaga kualitas layanan ALELEON Supercomputer.
  2. R biasa tidak mendukung komputasi paralel MPI hingga maksimum berjalan 1 node atau 128 core.
  3. R versi MPI (RMPI) mendukung komputasi paralel MPI untuk berjalan multi-node :
    • Satu node epyc mempunyai CPU 128 core.
    • Pada jumlah ntasks >128, SLURM otomatis menjalankan job secara multi-node.
      • Dalam kaitan ini, parameter mem adalah alokasi memori RAM per-node.
    • Info lebih detail lihat laman MPI ALELEON Supercomputer.
  4. High-mem node epyc yaitu epyc001 memungkinkan user mengalokasikan RAM hingga 500GB.
    • Tambahkan parameter #SBATCH --nodelist=epyc001
6A Sebelum menjalankan job, user dapat melakukan instalasi package R yang dibutuhkan oleh script R user.
6B Jalankan job dengan klik tombol Submit.

Berikut penjelasan kolom Status, pantau dengan refresh halaman job:

Status Arti
Not Submitted Job belum pernah dijalankan.
Running Job berjalan.
Queue Job mengantri dan belum berjalan.
Completed Job selesai berjalan.
Failed Job berhenti di tengah jalan, bisa karena di Stop atau Delete oleh user.
6C Untuk menghentikan job yang tengah berjalan, klik tombol Stop.

Stop.png

7A Hasil output job dapat dilihat pada kolom Folder Contents atau membuka halaman Edit Files.
User dapat melihat semua file output yang keluar di kolom Folder Contents.
atau dengan membuka menu Edit Files.
7B User dapat menjalankan ulang ruang job yang sama dengan mengklik kembali tombol Submit.

Menjalankan R dengan Sesi Interaktif Jupyter

Terdapat 2 langkah untuk menjalankan R melalui sesi interaktif Jupyter yaitu:

  1. Melakukan instalasi package IRKernel ketika pertama kali menggunakan Jupyter untuk R.
  2. Memulai sesi interaktif Jupyter Notebook atau Lab pada EFIRO web.

Instalasi Package IRkernel

Berikut adalah langkah untuk instalasi package IRKernel:

Langkah instalasi package IRkernel R untuk masing-masing user
0A Instalasi package dilakukan melalui terminal.
0B Bagi user EFIRO, buka terminal melalui menu Clusters > Aleleon Shell Access.

Shellaccess.png

1 Aktifkan R dengan memuat modul versi R yang akan digunakan.
Versi Perintah Terminal
4.3.0 $ module load R/4.3.0-GCC11.3-MKL

Berikutnya aktifkan modul Anaconda:

$ module load Anaconda3
2 Jalankan R dan lakukan instalasi package dengan format perintah standar:
$ R 
> install.packages('IRkernel')
> IRkernel::installspec()
> q() 
3 Buat file R profile di direktori HOME user:
$ cd
$ nano ~/.Rprofile

Masukkan script berikut, kemudian save and exit dengan ctrl+x diikuti input y dan enter.

options(bitmapType='cairo')

Memulai Sesi Jupyter

Berikut adalah langkah untuk memulai sesi Jupyter dan menggunakan kernel R didalamnya:

Memulai sesi Jupyter untuk R
0A Sebelum login, user harus terhubung ke jaringan VPN ALELEON Supercomputer.
Buka alamat web http://aleleon.ood kemudian masukkan username dan password user.
  • Bagi user Linux, buka alamat http://10.192.50.11
0B Sebelum menjalankan job, user dapat melakukan instalasi package R yang dibutuhkan oleh script R user.
1 Buka menu Interactive Apps kemudian untuk memilih menggunakan Jupyter Notebook atau Lab.

Efirojupyternotebooklab.png

2 Isi formulir sesi Jupyter dengan panduan berikut:
  • Partition
    • Pilih torti
  • Number of CPU Cores
    • Alokasi CPU core yang akan digunakan
    • Minimal: 1, maksimal: 32
  • Number of GPU
    • kosongkan
  • Number of hours
    • Durasi sesi Jupyter Notebook dalam satuan jam, isi sesuai keinginan user
    • Minimal: 1, maksimal: 72
  • Anaconda Selection
    • Pilih versi terbaru
  • Conda Environment Directory
    • kosongkan
  • Software Modules
    • Isi dengan versi R yang akan digunakan
Versi Nama software modules
4.3.0 R/4.3.0-GCC11.3-MKL
  • Environment Setup
    • kosongkan
  • Email Address
    • Sistem akan mengirim notifikasi ke email user saat sesi Jupyter Notebook sudah siap diakses.
    • Apabila membutuhkan, isi dengan email user
3 Apabila formulir sudah terisi, klik tombol Launch untuk memulai sesi Jupyter.
  • User akan diarahkan ke halaman My Interactive Sessions. Tunggu hingga sesi Jupyter siap diakses.
Status sesi Jupyter Notebook mengantri menunggu alokasi hardware
4 Apabila status menunjukkan Running atau kolom berwarna hijau, klik Connect to Jupyter.
  • Perlu diperhatikan bahwa sistem mulai menghitung Core Hour saat status Jupyter menunjukkan running.
Sesi Jupyter Notebook siap diakses.
5 Pilih Notebook R untuk memulai sesi notebook R baik di Jupyter Notebook dan Lab.
Gunakan Notebook R untuk menjalankan kernel R di Jupyter Notebook
Gunakan Notebook R untuk menjalankan kernel R di Jupyter Lab

Kontributor

EFISON mengucapkan terima kasih kepada para kontributor untuk pengujian R di ALELEON Supercomputer yang kemudian menjadi dasar penulisan tutorial di halaman ini: