如何使用 qsub 在 HPC 上使用本地 R 安装
How to use local R installation on HPC with qsub
我使用的集群无法全局安装特定的 R 版本。鉴于我在文件夹上为 R 构建了特定版本:
<generic_path>/R/R-X.Y.Z
我在本地安装了一些软件包:
<generic_path/R/packages
如何在 shell 脚本 (bash) 中设置 运行 这个特定 R 版本的环境变量和别名,从本地包目录加载包?
选项 1:
使用 HPC 的 shell 脚本(在我的例子中是 qsub 脚本),这可以通过 运行ning 一个 shell 脚本(例如在 bash 中)来实现,它包含以下内容行:
alias R="<path_to_R>/R/R-X.Y.Z/bin/R"
export R_LIBS="<path_to_R>/R/packages"
export PATH="<path_to_R>/R/R-X.Y.Z/bin:${PATH}"
脚本(这里我命名为makeenv.sh)可能是运行在qsub脚本里面:
source makeenv.sh
选项 2: 根据您的 HPC 系统,您可能有 module avail
、module load
命令,如果是,则使用:
myBsubFile.sh
#!/bin/bash
# some #BSUB headers...
# ...
module load /R/R-X.Y.Z
Rscript myRcode.R
然后在 R 脚本中加载库为:
myRcode.R
library("data.table", lib.loc = "path/to/my/libs")
# some more R code...
我使用的集群无法全局安装特定的 R 版本。鉴于我在文件夹上为 R 构建了特定版本:
<generic_path>/R/R-X.Y.Z
我在本地安装了一些软件包:
<generic_path/R/packages
如何在 shell 脚本 (bash) 中设置 运行 这个特定 R 版本的环境变量和别名,从本地包目录加载包?
选项 1: 使用 HPC 的 shell 脚本(在我的例子中是 qsub 脚本),这可以通过 运行ning 一个 shell 脚本(例如在 bash 中)来实现,它包含以下内容行:
alias R="<path_to_R>/R/R-X.Y.Z/bin/R"
export R_LIBS="<path_to_R>/R/packages"
export PATH="<path_to_R>/R/R-X.Y.Z/bin:${PATH}"
脚本(这里我命名为makeenv.sh)可能是运行在qsub脚本里面:
source makeenv.sh
选项 2: 根据您的 HPC 系统,您可能有 module avail
、module load
命令,如果是,则使用:
myBsubFile.sh
#!/bin/bash
# some #BSUB headers...
# ...
module load /R/R-X.Y.Z
Rscript myRcode.R
然后在 R 脚本中加载库为:
myRcode.R
library("data.table", lib.loc = "path/to/my/libs")
# some more R code...