R6
class to launch and manage SLURM workers.
Attribution
The template files at
https://github.com/mschubert/clustermq/tree/master/inst
informed the development of the crew
launcher plugins in
crew.cluster
, and we would like to thank
Michael Schubert for developing clustermq
and releasing it under
the permissive Apache License 2.0.
See the NOTICE
and README.md
files in the crew.cluster
source code for additional attribution.
See also
Other slurm:
crew_class_monitor_slurm
,
crew_controller_slurm()
,
crew_launcher_slurm()
,
crew_monitor_slurm()
,
crew_options_slurm()
Super classes
crew::crew_class_launcher
-> crew.cluster::crew_class_launcher_cluster
-> crew_class_launcher_slurm
Methods
Inherited methods
crew::crew_class_launcher$active()
crew::crew_class_launcher$booting()
crew::crew_class_launcher$call()
crew::crew_class_launcher$crashes()
crew::crew_class_launcher$done()
crew::crew_class_launcher$errors()
crew::crew_class_launcher$forward()
crew::crew_class_launcher$launch()
crew::crew_class_launcher$rotate()
crew::crew_class_launcher$scale()
crew::crew_class_launcher$set_name()
crew::crew_class_launcher$settings()
crew::crew_class_launcher$start()
crew::crew_class_launcher$summary()
crew::crew_class_launcher$tally()
crew::crew_class_launcher$terminate()
crew::crew_class_launcher$terminate_workers()
crew::crew_class_launcher$unlaunched()
crew::crew_class_launcher$wait()
crew.cluster::crew_class_launcher_cluster$initialize()
crew.cluster::crew_class_launcher_cluster$launch_worker()
crew.cluster::crew_class_launcher_cluster$terminate_worker()
Method script()
Generate the job script.
Arguments
name
Character of length 1, name of the job. For inspection purposes, you can supply a mock job name.
attempt
Positive integer, number of the current attempt. The attempt number increments each time a worker exits without completing all its tasks, and it resets back to 1 if a worker instance successfully completes all its tasks and then exits normally. By assigning vector arguments to the cluster-specific options of the controller, you can configure different sets of resources for different attempts.
Details
Includes everything except the worker-instance-specific
job name and the worker-instance-specific
call to crew::crew_worker()
, both of which get inserted at
the bottom of the script at launch time.
Examples
if (identical(Sys.getenv("CREW_EXAMPLES"), "true")) {
launcher <- crew_launcher_slurm(
slurm_log_output = "log_file_%A.log",
slurm_log_error = NULL,
slurm_memory_gigabytes_per_cpu = 4096
)
launcher$script(name = "my_job_name")
}
Examples
## ------------------------------------------------
## Method `crew_class_launcher_slurm$script`
## ------------------------------------------------
if (identical(Sys.getenv("CREW_EXAMPLES"), "true")) {
launcher <- crew_launcher_slurm(
slurm_log_output = "log_file_%A.log",
slurm_log_error = NULL,
slurm_memory_gigabytes_per_cpu = 4096
)
launcher$script(name = "my_job_name")
}