future: Unified Parallel and Distributed Processing in R for Everyone

The purpose of this package is to provide a lightweight and unified Future API for sequential and parallel processing of R expression via futures. The simplest way to evaluate an expression in parallel is to use `x %<-% { expression }` with `plan(multiprocess)`. This package implements sequential, multicore, multisession, and cluster futures. With these, R expressions can be evaluated on the local machine, on in parallel a set of local machines, or distributed on a mix of local and remote machines. Extensions to this package implements additional backends for processing futures via compute cluster schedulers etc. Because of its unified API, there is no need to modify code in order switch from sequential on the local machine to, say, distributed processing on a remote compute cluster. Another strength of this package is that global variables and functions are automatically identified and exported as needed, making it straightforward to tweak existing code to make use of futures.

Install the latest version of this package by entering the following in R:
AuthorHenrik Bengtsson [aut, cre, cph]
Date of publication2017-03-13 08:45:28
MaintainerHenrik Bengtsson <henrikb@braju.com>
LicenseLGPL (>= 2.1)

View on CRAN

Man pages

as.cluster: Coerce an object to a cluster object

availableCores: Get number of available cores on current machine

availableWorkers: Get set of available workers

backtrace: Back trace the expressions evaluated before a condition was...

cluster: Create a cluster future whose value will be resolved...

ClusterFuture-class: A cluster future is a future whose value will be resolved...

ConstantFuture-class: A future with a constant value

future: Create a future

Future-class: A future represents a value that will be available at some...

FutureError: An error occurred while trying to evaluate a future

FutureGlobals: A representation of a set of globals used with futures

future_lapply: Apply a Function over a List or Vector via Futures

futureOf: Get the future of a future variable

future.options: Options used for futures

futures: Gets all futures in an object

getExpression: Inject code for the next type of future to use for nested...

getGlobalsAndPackages: Retrieves global variables of an expression and their...

grapes-globals-grapes: Specify globals for a future assignment

grapes-label-grapes: Specify label for a future assignment

grapes-lazy-grapes: Control lazy / eager evaluation for a future assignment

grapes-plan-grapes: Use a specific plan for a future assignment

grapes-seed-grapes: Set random seed for future assignment

grapes-tweak-grapes: Temporarily tweaks the arguments of the current strategy

makeClusterPSOCK: Create a Parallel Socket Cluster

mandelbrot: Mandelbrot convergence counts

multicore: Create a multicore future whose value will be resolved...

MulticoreFuture-class: An multicore future is a future whose value will be resolved...

multiprocess: Create a multiprocess future whose value will be resolved...

MultiprocessFuture-class: An multiprocess future is a future whose value will be...

multisession: Create a multisession future whose value will be resolved...

nbrOfWorkers: Gets the number of workers available

plan: Plan how to resolve a future

private_length: Gets the length of an object without dispatching

remote: Create a remote future whose value will be resolved...

requestCore: Request a core for multicore processing

resolve: Wait until all existing futures in an environment are...

resolved: Check whether a future is resolved or not

run: Run a future

sequential: Create a sequential future whose value will be in the current...

sessionDetails: Outputs details on the current R session

supportsMulticore: Check whether multicore processing is supported or not

tweak: Tweaks a future function by adjusting its default arguments

UniprocessFuture-class: An uniprocess future is a future whose value will be resolved...

usedCores: Get number of cores currently used

value: The value of a future

values: Gets all values in an object


\%<=\% Man page
\%<-\% Man page
\%=>\% Man page
\%->\% Man page
as.cluster Man page
as.cluster.cluster Man page
as.cluster.list Man page
as.cluster.SOCK0node Man page
as.cluster.SOCKnode Man page
as.FutureGlobals Man page
as.FutureGlobals.FutureGlobals Man page
as.FutureGlobals.Globals Man page
as.FutureGlobals.list Man page
as.raster.Mandelbrot Man page
availableCores Man page
availableWorkers Man page
backtrace Man page
c.cluster Man page
c.FutureGlobals Man page
cluster Man page
ClusterFuture Man page
ClusterFuture-class Man page
ConstantFuture Man page
ConstantFuture-class Man page
eager Man page
EagerFuture Man page
future Man page
Future Man page
futureAssign Man page
future.availableCores.methods Man page
futureCall Man page
Future-class Man page
future.cmdargs Man page
future.cores Man page
future.debug Man page
future.demo.mandelbrot.nrow Man page
future.demo.mandelbrot.region Man page
FutureError Man page
FutureGlobals Man page
[.FutureGlobals Man page
future.globals.maxSize Man page
future.globals.method Man page
future.globals.onMissing Man page
future.globals.resolve Man page
future_lapply Man page
futureOf Man page
future.options Man page
future.plan Man page
future.progress Man page
future.resolve.recursive Man page
futures Man page
future.startup.script Man page
future.wait.alpha Man page
future.wait.interval Man page
future.wait.times Man page
getExpression Man page
getExpression.Future Man page
getGlobalsAndPackages Man page
getOutput Man page
\%globals\% Man page
\%label\% Man page
lazy Man page
\%lazy\% Man page
LazyFuture Man page
.length Man page
makeClusterPSOCK Man page
makeNodePSOCK Man page
mandelbrot Man page
mandelbrotTiles Man page
multicore Man page
MulticoreFuture Man page
MulticoreFuture-class Man page
multiprocess Man page
MultiprocessFuture Man page
MultiprocessFuture-class Man page
multisession Man page
MultisessionFuture Man page
MultisessionFuture-class Man page
nbrOfWorkers Man page
plan Man page
\%plan\% Man page
plot.Mandelbrot Man page
remote Man page
requestCore Man page
resolve Man page
resolved Man page
resolved.default Man page
run Man page
run.Future Man page
\%seed\% Man page
sequential Man page
SequentialFuture Man page
sessionDetails Man page
supportsMulticore Man page
transparent Man page
tweak Man page
\%tweak\% Man page
uniprocess Man page
UniprocessFuture Man page
UniprocessFuture-class Man page
unique.FutureGlobals Man page
usedCores Man page
value Man page
value.Future Man page
values Man page


inst/vignettes-static/incl/future-1-overview-example3.R inst/vignettes-static/incl/future-1-overview-example2.R
tests/as.cluster.R tests/DEPRECATED.lazy.R tests/futures.R tests/utils.R tests/globals,manual.R tests/future,labels.R tests/mandelbrot.R tests/rng.R tests/000.sessionDetails.R tests/objectSize.R tests/nested_futures.R tests/resolve.R tests/multicore.R tests/eager.R tests/whichIndex.R tests/futureAssign.R tests/sessionDetails.R tests/early-signaling.R tests/constant.R tests/globals,NSE.R tests/globals,subassignment.R tests/dotdotdot.R tests/transparent.R tests/globals,toolarge.R tests/backtrace.R tests/remote.R tests/globals,resolve.R tests/Future-class.R tests/nbrOfWorkers.R tests/future.R tests/requestNode.R tests/tweak.R tests/multiprocess.R tests/globals,tricky_recursive.R tests/futureOf_with_environment.R tests/availableWorkers.R tests/startup.R tests/availableCores.R tests/FutureRegistry.R tests/deprecated.R
tests/incl/start,load-only.R tests/incl/end.R tests/incl/start.R tests/globalsOf,tweaks.R tests/cluster.R tests/futureAssign_OP_with_listenv.R tests/FutureError.R tests/demo.R tests/globals,tricky.R tests/requestCore.R tests/futureCall.R tests/nested_futures,mc.cores.R tests/ClusterRegistry.R tests/globals,formulas.R tests/multisession.R tests/uuid.R tests/future_lapply,RNG.R tests/future_lapply,tricky_globals.R tests/future_lapply.R tests/futureOf_with_listenv.R tests/futureAssign_OP_with_environment.R tests/plan.R tests/futureOf.R tests/invalid-owner.R tests/futureAssign_OP.R
demo/fibonacci.R demo/mandelbrot.R
R/as.cluster.R R/seed_OP.R R/uniprocess.R R/futures.R R/utils.R R/mandelbrot.R R/zzz.plan.R R/ClusterFuture-class.R R/values.R R/resolved.R R/resolve.R R/multicore.R R/signalEarly.R R/FutureGlobals-class.R R/whichIndex.R R/futureAssign.R R/sessionDetails.R R/MultiprocessFuture-class.R R/constant.R R/globals.R R/backtrace.R R/remote.R R/Future-class.R R/nbrOfWorkers.R R/future.R R/globals_OP.R R/tweak.R R/tweakExpression.R R/multiprocess.R R/options.R R/availableWorkers.R R/availableCores.R R/FutureRegistry.R R/cluster.R R/FutureError-class.R R/lazy_OP.R R/UniprocessFuture-class.R R/ConstantFuture-class.R R/MulticoreFuture-class.R R/futureCall.R R/ClusterRegistry.R R/label_OP.R R/multisession.R R/future_lapply.R R/plan_OP.R R/makeClusterPSOCK.R R/zzz.R R/tweak_OP.R R/futureOf.R R/MultisessionFuture-class.R R/futureAssign_OP.R
man/ClusterFuture-class.Rd man/value.Rd man/grapes-lazy-grapes.Rd man/sequential.Rd man/run.Rd man/getExpression.Rd man/private_length.Rd man/sessionDetails.Rd man/usedCores.Rd man/resolved.Rd man/MulticoreFuture-class.Rd man/multisession.Rd man/backtrace.Rd man/values.Rd man/cluster.Rd man/multiprocess.Rd man/remote.Rd man/futureOf.Rd man/getGlobalsAndPackages.Rd man/FutureGlobals.Rd man/as.cluster.Rd man/plan.Rd man/multicore.Rd man/grapes-tweak-grapes.Rd man/MultiprocessFuture-class.Rd man/futures.Rd man/grapes-globals-grapes.Rd man/availableCores.Rd man/requestCore.Rd man/makeClusterPSOCK.Rd man/ConstantFuture-class.Rd man/FutureError.Rd man/tweak.Rd man/Future-class.Rd man/resolve.Rd man/nbrOfWorkers.Rd man/future_lapply.Rd man/grapes-seed-grapes.Rd man/availableWorkers.Rd man/future.options.Rd man/future.Rd man/mandelbrot.Rd man/grapes-plan-grapes.Rd man/supportsMulticore.Rd man/UniprocessFuture-class.Rd man/grapes-label-grapes.Rd

Questions? Problems? Suggestions? or email at ian@mutexlabs.com.

Please suggest features or report bugs with the GitHub issue tracker.

All documentation is copyright its authors; we didn't write any of that.