| makeJob {batchtools} | R Documentation |
Jobs and Experiments
Description
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.idJob ID as integer.
pars-
Job parameters as named list. For
ExperimentRegistry, the parameters are divided into the sublists “prob.pars” and “algo.pars”. seedSeed which is set via
doJobCollectionas scalar integer.resourcesComputational 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. funJob only: User function passed to
batchMap.prob.nameExperiments only: Problem id.
algo.nameExperiments only: Algorithm id.
problemExperiments only:
Problem.instanceExperiments only: Problem instance.
algorithmExperiments only:
Algorithm.replExperiments 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.
Usage
makeJob(id, reader = NULL, reg = getDefaultRegistry())
Arguments
id |
[ |
reader |
[ |
reg |
[ |
Value
[Job | Experiment].
Examples
tmp = makeRegistry(file.dir = NA, make.default = FALSE)
batchMap(function(x, y) x + y, x = 1:2, more.args = list(y = 99), reg = tmp)
submitJobs(resources = list(foo = "bar"), reg = tmp)
job = makeJob(1, reg = tmp)
print(job)
# Get the parameters:
job$pars
# Get the job resources:
job$resources
# Execute the job locally:
execJob(job)