Jobs and Experiments are abstract objects which hold all information necessary to execute a single computational
job for a Registry
or ExperimentRegistry
, respectively.
They can be created using the constructor makeJob
which takes a single job id.
Jobs and Experiments are passed to reduce functions like reduceResults
.
Furthermore, Experiments can be used in the functions of the Problem
and Algorithm
.
Jobs and Experiments hold these information:
job.id
Job ID as integer.
pars
Job parameters as named list.
For ExperimentRegistry
, the parameters are divided into the sublists “prob.pars” and “algo.pars”.
seed
Seed which is set via doJobCollection
as scalar integer.
resources
Computational resources which were set for this job as named list.
external.dir
Path to a directory which is created exclusively for this job. You can store external files here.
Directory is persistent between multiple restarts of the job and can be cleaned by calling resetJobs
.
fun
Job only: User function passed to batchMap
.
prob.name
Experiments only: Problem id.
algo.name
Experiments only: Algorithm id.
problem
Experiments only: Problem
.
instance
Experiments only: Problem instance.
algorithm
Experiments only: Algorithm
.
repl
Experiments only: Replication number.
Note that the slots “pars”, “fun”, “algorithm” and “problem” lazy-load required files from the file system and construct the object on the first access. The realizations are cached for all slots except “instance” (which might be stochastic).
Jobs and Experiments can be executed manually with execJob
.
makeJob(id, reader = NULL, reg = getDefaultRegistry())
id | [ |
---|---|
reader | [ |
reg | [ |
[Job
| Experiment
].
#>#>#>#>#> <Job> #> Inherits from: <BaseJob> #> Public: #> external.dir: active binding #> file.dir: /tmp/batchtools-example/reg #> fun: active binding #> id: 1 #> initialize: function (file.dir, reader, id, job.pars, seed, resources) #> job.id: active binding #> job.pars: list #> pars: active binding #> reader: RDSReader, R6 #> resources: list #> seed: 15284# Get the parameters: job$pars#> $x #> [1] 1 #> #> $y #> [1] 99 #># Get the job resources: job$resources#> $foo #> [1] "bar" #>#> ### [bt]: Setting seed to 15284 ...#> [1] 100