R và SLURM server

September 19, 2017

R “Job”

Với lệnh R bình thường, cấu trúc cơ bản là:

#!/bin/sh
srun R CMD BATCH ./script.R

Đương nhiên cần cấu hình cho SLURM như số máy, cấu hình máy, số CPUs, số jobs,…, nhưng sẽ riêng biệt cho từng server.

Array job cho R

sarray là cách chạy loop cho R trên SLURM, với biến $SLURM_ARRAYID. Cấu hình SLURM với SARRAY:

#!/bin/sh
#SARRAY --range=1-10
srun R CMD BATCH ./script.R

Rồi trong R dùng Sys.getenv() để lấy biến số

slurm_arrayid <- Sys.getenv('SLURM_ARRAYID') # characters type
n <- as.numeric(slurm_arrayid)

hoặc nếu muốn, cài thêm gói Slurm và dùng lệnh

library('Slurm')
arrayid <- slurm.arrayid()

hoặc để lấy task id từ SLURM_ARRAY_TASK_ID dùng lệnh

taskid <- slurm.array_task_id()