如何指定
_rslurm如何更改Submit.sh
的配置。我在这里有一个例子:
#!/bin/bash
#SBATCH -A co2\n"
#SBATCH --job-name=name
#SBATCH --output=%x.o%j
#SBATCH --ntasks=%d\n
#SBATCH --mem-per-cpu=30G
#SBATCH --time=08:00:00
#SBATCH --partition=orion
#SBATCH -D .
#SBATCH -q batch
test_func <- function(par_mu, par_sd) {
samp <- rnorm(10^6, par_mu, par_sd)
c(s_mu = mean(samp), s_sd = sd(samp))
}
pars <- data.frame(par_mu = 1:10,
par_sd = seq(0.1, 1, length.out = 10))
library(rslurm)
sjob <- slurm_apply(test_func, pars, jobname = 'test_apply',
nodes = 2, cpus_per_node = 2, submit = FALSE)
file.edit("_rslurm_apply/submit.sh")
在以下提交中的反应。sh:
#!/bin/bash
#
#SBATCH --array=0-1
#SBATCH --cpus-per-task=2
#SBATCH --job-name=test_apply
#SBATCH --output=slurm_%a.out
/usr/local/lib/R/bin/Rscript --vanilla slurm_run.R
如果这是关于如何动态提供字符串,您可以使用
sprintf
,> drc <- './_rslurm_apply'
> sprintf('%s/submit.sh', drc)
[1] "./_rslurm_apply/submit.sh"
并相应地更改您的脚本:
file.edit(sprintf('%s/submit.sh', drc))
在开始时提供或将其包裹在功能中:
drc
usage:
slurm_fun <- \(drc) {
test_func <- function ...
...
file.edit(sprintf('%s/submit.sh', drc))
}