furrr_options( ..., stdout = TRUE, conditions = NULL, globals = TRUE, packages = NULL, lazy = FALSE, seed = FALSE, scheduling = 1, chunk_size = NULL, prefix = NULL )
These dots are reserved for future extensibility and must be empty.
A character string of conditions classes to be captured
and relayed. The default is the same as the condition argument of
A logical, a character vector, a named list, or
A character vector, or
A logical. Specifies whether futures should be resolved lazily or eagerly.
A logical, an integer of length
A single integer, logical, or
This argument is only used if
A single integer,
A single character string, or
globals controls how globals are identified, similar to the
future::future(). Since all function calls use the same set of
globals, furrr gathers globals upfront (once), which is more efficient than
if it was done for each future independently.
NULL, then globals are automatically identified and
If a character vector of names is specified, then those globals are gathered.
If a named list, then those globals are used as is.
In all cases,
.f and any
... arguments are automatically passed as
globals to each future created, as they are always needed.
seed = FALSE, furrr functions are guaranteed to generate
the exact same sequence of random numbers given the same initial
seed / RNG state regardless of the type of futures and scheduling
seed = NULL is equivalent to
seed = FALSE, except that the
future.rng.onMisuse option is not consulted to potentially monitor the
future for faulty random number usage. See the
seed argument of
future::future() for more details.
RNG reproducibility is achieved by pre-generating the random seeds for all
.x) by using L'Ecuyer-CMRG RNG streams. In each
iteration, these seeds are set before calling
Note, for large
length(.x) this may introduce a large overhead.
seed may be given as an integer vector, either as a full
L'Ecuyer-CMRG RNG seed of length
7, or as a seed of length
will be used to generate a full L'Ecuyer-CMRG seed.
seed = TRUE, then
.Random.seed is returned if it holds a
L'Ecuyer-CMRG RNG seed, otherwise one is created randomly.
seed = NA, a L'Ecuyer-CMRG RNG seed is randomly created.
If none of the function calls
.f(.x[[i]], ...) use random number
seed = FALSE may be used.
In addition to the above, it is possible to specify a pre-generated
sequence of RNG seeds as a list such that
length(seed) == length(.x) and
where each element is an integer seed that can be assigned to
Use this alternative with caution. Note that
not a valid set of such
In all cases but
seed = FALSE, after a furrr function returns, the RNG
state of the calling R process is guaranteed to be "forwarded one step" from
the RNG state before the call. This is true regardless of the future
strategy / scheduling used. This is done in order to guarantee that an R
future_map() multiple times should be numerically
reproducible given the same initial seed.