future
workers.This function is like tar_make()
except that targets
run in parallel with transient future
workers. It requires
that you declare your future::plan()
inside the _targets.R
script.
future
is not a strict dependency of targets
,
so you must install future
yourself.
tar_make_future(
names = NULL,
reporter = "verbose",
garbage_collection = FALSE,
workers = 1L,
callr_function = callr::r,
callr_arguments = list()
)
Names of the targets to build or check. Set to NULL
to
check/build all the targets (default). Otherwise, you can supply
symbols, a character vector, or tidyselect
helpers like starts_with()
.
Character of length 1, name of the reporter to user. Controls how messages are printed as targets run in the pipeline. Choices:
"verbose"
: print one message for each target that runs (default).
"silent"
: print nothing.
"timestamp"
: print a time-stamped message for each target that runs.
"summary"
: print a running total of the number of each targets in
each status category (queued, running, skipped, build, cancelled,
or errored).
Logical, whether to run base::gc()
between targets. The pipeline will run slower but consume less memory.
Positive integer, maximum number of transient
future
workers allowed to run at any given time.
A function from callr
to start a fresh clean R
process to do the work. Set to NULL
to run in the current session
instead of an external process (but restart your R session just before
you do in order to clear debris out of the global environment).
callr_function
needs to be NULL
for interactive debugging,
e.g. tar_option_set(debug = "your_target")
.
However, callr_function
should not be NULL
for serious
reproducible work.
A list of arguments to callr_function
.
NULL
except if callr_function = callr::r_bg()
, in which case
a handle to the callr
background process is returned. Either way,
the value is invisibly returned.
To configure tar_make_future()
with a computing cluster,
see the future.batchtools
package documentation.
# NOT RUN {
tar_dir({
tar_script({
future::plan(future::multisession)
tar_option_set()
tar_pipeline(tar_target(x, 1 + 1))
})
tar_make_future()
})
# }
Run the code above in your browser using DataLab