Skip to content

R 集群使用方法

R 是常用的统计分析、数据处理和绘图语言。集群中已通过 module 提供 R 环境,用户可以在申请到计算资源后加载 R 模块,进入 R 交互终端或提交 R 脚本运行。

不要在登录节点长时间运行 R 计算任务

登录节点适合编辑脚本、检查环境和少量测试。正式计算、批量分析或占用较多 CPU/内存的任务,请先通过 Slurm 申请计算节点。

交互式使用 R

如果需要临时调试代码或检查数据,可以先用 salloc 申请交互式资源。

示例:申请 1 个节点、8 个 CPU、16 GB 内存,最长运行 5 分钟。

bash
salloc -N 1 --cpus-per-task=8 --mem=16G -t 00:05:00 -p qcpu_18i

资源分配成功后,终端会提示可用节点,例如:

text
salloc: Pending job allocation 273377
salloc: job 273377 queued and waiting for resources
salloc: job 273377 has been allocated resources
salloc: Granted job allocation 273377
salloc: Nodes bnode1 are ready for job

登录到分配的计算节点:

bash
ssh bnode1

加载 R 环境:

bash
module load R

进入 R 交互终端:

bash
R

简单测试:

r
print(1 + 2)

输出示例:

text
[1] 3

批量运行 R 脚本

正式任务建议把分析流程写成 .R 脚本,再通过 sbatch 提交。

示例脚本 analysis.R

r
args <- commandArgs(trailingOnly = TRUE)
input_file <- args[1]
output_file <- args[2]

data <- read.csv(input_file)
summary_result <- summary(data)

sink(output_file)
print(summary_result)
sink()

Slurm 作业脚本 run_r.slurm

bash
#!/bin/bash
#SBATCH --job-name=r-analysis
#SBATCH --partition=qcpu_18i
#SBATCH --nodes=1
#SBATCH --cpus-per-task=8
#SBATCH --mem=16G
#SBATCH --time=02:00:00
#SBATCH --output=%x_%j.out
#SBATCH --error=%x_%j.err

set -euo pipefail

module purge
module load R

Rscript analysis.R input.csv result.txt

提交任务:

bash
sbatch run_r.slurm

查看作业状态:

bash
squeue -u $USER

安装个人 R 包

如需安装 R 包,建议安装到个人目录,避免依赖系统目录权限。

进入 R 后执行:

r
dir.create("~/R/library", recursive = TRUE, showWarnings = FALSE)
.libPaths(c("~/R/library", .libPaths()))
install.packages("ggplot2", lib = "~/R/library")

后续脚本中也可以显式指定个人库路径:

r
.libPaths(c("~/R/library", .libPaths()))
library(ggplot2)

网络访问说明

如果安装包时需要访问外部 CRAN 镜像但网络不可用,可联系管理员协助配置镜像源,或在本地下载包后上传到集群安装。

视频示例

R 交互式使用示例

常见问题

module load R 后找不到 R

先运行 module list 确认 R 模块是否加载,再运行 which Rwhich Rscript 检查命令路径。

R 包安装失败

常见原因包括网络不可达、缺少编译依赖或没有写入权限。建议优先安装到个人目录,并查看错误日志中提示缺少的依赖。

R 任务运行很慢

确认任务是否真正使用了多核并行。仅申请多个 CPU 不代表 R 自动并行,需要代码或 R 包本身支持多线程/并行计算。

Copyright 2021 All Rights Reserved 生物设计中心 版权所有