future (version 1.16.0)

supportsMulticore: Check whether multicore/forked processing is supported or not

Description

Multicore futures require an operating system that supports forked processing. Operating systems such as Unix and macOS supports forking, whereas Microsoft Windows does not.

Usage

supportsMulticore(...)

Arguments

Internal usage only.

Value

TRUE if forked processing is supported and not disabled, otherwise FALSE.

Support for process forking

The Microsoft Windows operating system does not support processes forking. Unix-like operating system such as Linux and macOS support forking.

For some R environments it is considered unstable to perform parallel processing based on forking. Because of this, the future ecosystem disables forked processing by default when it detects that R runs from environment that is known to be unstable for forked processing, despite the underlying operating system supported it. This is for example the case when using RStudio, cf. RStudio Inc. recommends against using forked processing when running R from within the RStudio software. A warning will be produced informing the user about this the first time 'multicore' or 'multiprocess' futures are used in the R session. This warning can be disabled by setting R option future.supportsMulticore.unstable, or environment variable R_FUTURE_SUPPORTSMULTICORE_UNSTABLE to "quiet".

Enable or disable forked processing

It is possible to disable forked processing for futures by setting R option future.fork.enable to FALSE. Alternatively, one can set environment variable R_FUTURE_FORK_ENABLE to false. This will cause plan(multicore) to work as plan(sequential), and plan(multiprocess) to work as plan(multisession). Analogously, it is possible to override disabled forking by setting one of these to TRUE.

See Also

To use multicore futures, use plan(multicore).