Skip to content

Generates a remote configuration for launching daemons using an HPC cluster resource manager such as Slurm sbatch, SGE and Torque/PBS qsub or LSF bsub.

Usage

cluster_config(command = "sbatch", options = "", rscript = "Rscript")

Arguments

command

[default "sbatch"] for Slurm. Replace with "qsub" for SGE / Torque / PBS, or "bsub" for LSF. See examples below.

options

[default ""] options as would be supplied inside a script file passed to command, e.g. "#SBATCH –mem=10G", each separated by a new line. See examples below.
Other shell commands e.g. to change working directory may also be included.
For certain setups, "module load R" as a final line is required, or for example "module load R/4.5.0" for a specific R version.
For the avoidance of doubt, the initial shebang line such as "#!/bin/bash" is not required.

rscript

[default "Rscript"] assumes the R executable is on the search path. Replace with the full path of the Rscript executable on the remote machine if necessary. If launching on Windows, "Rscript" should be replaced with "Rscript.exe".

Value

A list in the required format to be supplied to the remote argument of daemons() or launch_remote().

See also

ssh_config() for SSH launch configurations, or remote_config() for generic configurations.

Examples

# Slurm Config:
cluster_config(
  command = "sbatch",
  options = "#SBATCH --job-name=mirai
             #SBATCH --mem=10G
             #SBATCH --output=job.out
             module load R/4.5.0",
  rscript = file.path(R.home("bin"), "Rscript")
)
#> $command
#> [1] "/bin/sh"
#> 
#> $args
#> [1] "sbatch<<'EOF'\n#!/bin/sh\n#SBATCH --job-name=mirai\n#SBATCH --mem=10G\n#SBATCH --output=job.out\nmodule load R/4.5.0\n"
#> [2] "."                                                                                                                     
#> [3] "\nEOF"                                                                                                                 
#> 
#> $rscript
#> [1] "/opt/R/4.5.1/lib/R/bin/Rscript"
#> 
#> $quote
#> NULL
#> 

# SGE Config:
cluster_config(
  command = "qsub",
  options = "#$ -N mirai
             #$ -l mem_free=10G
             #$ -o job.out
             module load R/4.5.0",
  rscript = file.path(R.home("bin"), "Rscript")
)
#> $command
#> [1] "/bin/sh"
#> 
#> $args
#> [1] "qsub<<'EOF'\n#!/bin/sh\n#$ -N mirai\n#$ -l mem_free=10G\n#$ -o job.out\nmodule load R/4.5.0\n"
#> [2] "."                                                                                            
#> [3] "\nEOF"                                                                                        
#> 
#> $rscript
#> [1] "/opt/R/4.5.1/lib/R/bin/Rscript"
#> 
#> $quote
#> NULL
#> 

# Torque/PBS Config:
cluster_config(
  command = "qsub",
  options = "#PBS -N mirai
             #PBS -l mem=10gb
             #PBS -o job.out
             module load R/4.5.0",
  rscript = file.path(R.home("bin"), "Rscript")
)
#> $command
#> [1] "/bin/sh"
#> 
#> $args
#> [1] "qsub<<'EOF'\n#!/bin/sh\n#PBS -N mirai\n#PBS -l mem=10gb\n#PBS -o job.out\nmodule load R/4.5.0\n"
#> [2] "."                                                                                              
#> [3] "\nEOF"                                                                                          
#> 
#> $rscript
#> [1] "/opt/R/4.5.1/lib/R/bin/Rscript"
#> 
#> $quote
#> NULL
#> 

# LSF Config:
cluster_config(
  command = "bsub",
  options = "#BSUB -J mirai
             #BSUB -M 10000
             #BSUB -o job.out
             module load R/4.5.0",
  rscript = file.path(R.home("bin"), "Rscript")
)
#> $command
#> [1] "/bin/sh"
#> 
#> $args
#> [1] "bsub<<'EOF'\n#!/bin/sh\n#BSUB -J mirai\n#BSUB -M 10000\n#BSUB -o job.out\nmodule load R/4.5.0\n"
#> [2] "."                                                                                              
#> [3] "\nEOF"                                                                                          
#> 
#> $rscript
#> [1] "/opt/R/4.5.1/lib/R/bin/Rscript"
#> 
#> $quote
#> NULL
#> 

if (FALSE) { # \dontrun{

# Launch 2 daemons using the Slurm sbatch defaults:
daemons(n = 2, url = host_url(), remote = cluster_config())
} # }