【问题标题】:Is there a way to modify the cluster resources allocated futures when using a furrr function?有没有办法在使用 furrr 函数时修改集群资源分配的期货?
【发布时间】:2021-02-13 01:14:15
【问题描述】:

我在我的 R 脚本中使用 futurefuture.batchtoolsfurrr 包,以便在 future 上运行代码strong>slurm - 管理远程机器。

当我定义我的未来拓扑时,我将一个模板文件传递给future.bacthtools::batchtools_slurm(),并使用resources = 参数定义slurm 作业的计算资源。

然后当我运行furrr::future_pwalk() 函数时,每个未来都使用相同的资源进行评估,即我在batchtools_slurm() 中定义的资源。

有没有办法让作业使用不同的资源,具体取决于传递给furrr::future_pwalk() 的变量?

提前感谢您的帮助!

【问题讨论】:

    标签: r r-future furrr


    【解决方案1】:

    您可以提前调整未来的资源

    library(future)
    library("future.batchtools")
    library(furrr)
    
    slurm <- future::tweak(batchtools_slurm,
                           template = "slurm_batchtools.tmpl",
                           resources=list(
                             cores = 4
                           )
    plan(slurm)
    

    slurm_batchtools.tmpl 文件是

    #!/bin/bash
    
    #SBATCH --job-name=<%= job.name %>
    #SBATCH --output=<%= log.file %>
    #SBATCH --error=<%= log.file %>
    #SBATCH --ntasks=1
    #SBATCH --cpus-per-task=<%= resources[["cores"]] %>
    #SBATCH --mem-per-cpu=10000
    
    <%= if (array.jobs) sprintf("#SBATCH --array=1-%i", nrow(jobs)) else "" %>
    Rscript -e 'batchtools::doJobCollection("<%= uri %>")'
    

    【讨论】:

      猜你喜欢
      • 2023-03-29
      • 2019-10-04
      • 2021-10-16
      • 2023-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多