Learn R Programming

⚠️There's a newer version (1.40.0) of this package.Take me there.

future (version 1.2.0)

A Future API for R

Description

A Future API for R is provided. In programming, a future is an abstraction for a value that may be available at some point in the future. The state of a future can either be unresolved or resolved. As soon as it is resolved, the value is available. Futures are useful constructs in for instance concurrent evaluation, e.g. parallel processing and distributed processing on compute clusters. The purpose of this package is to provide a lightweight interface for using futures in R. Functions 'future()' and 'value()' exist for creating futures and requesting their values, e.g. 'f <- future({ mandelbrot(-0.75, 0, side=3) })' and 'v <- value(f)'. The 'resolved()' function can be used to check if a future is resolved or not. An infix assignment operator '%<-%' exists for creating futures whose values are accessible by the assigned variables (as promises), e.g. 'v %<-% { mandelbrot(-0.75, 0, side=3) }'. This package implements synchronous "lazy" and "eager" futures, and asynchronous "multicore", "multisession" and ad hoc "cluster" futures. Globals variables and functions are automatically identified and exported. Required packages are attached in external R sessions whenever needed. All types of futures are designed to behave the same such that the exact same code work regardless of futures used or number of cores, background sessions or cluster nodes available. Additional types of futures are provided by other packages enhancing this package.

Copy Link

Version

Install

install.packages('future')

Monthly Downloads

320,568

Version

1.2.0

License

LGPL (>= 2.1)

Issues

Pull Requests

Stars

Forks

Maintainer

Henrik Bengtsson

Last Published

November 12th, 2016

Functions in future (1.2.0)

%plan%

Use a specific plan for a future assignment
flapply

Apply a Function over a List or Vector via Futures
futures

Gets all futures in an object
%tweak%

Temporarily tweaks the arguments of the current strategy
FutureError

An error occurred while trying to evaluate a future
futureOf

Get the future of a future variable
getGlobalsAndPackages

Retrieves global variables of an expression and their associated packages
getExpression

Inject code for the next type of future to use for nested futures
future.options

Options used for futures
%globals%

Specify globals for a future assignment
%label%

Specify label for a future assignment
multiprocess

Create a multiprocess future whose value will be resolved asynchroneously using multicore or a multisession evaluation
mandelbrot

Mandelbrot convergence counts
MultiprocessFuture-class

An multiprocess future is a future whose value will be resolved asynchroneously in a parallel process
plan

Plan how to resolve a future
remote

Create a remote future whose value will be resolved asynchroneously in a remote process
MulticoreFuture-class

An multicore future is a future whose value will be resolved asynchroneously in a parallel process
makeClusterPSOCK

Create a Parallel Socket Cluster
multicore

Create a multicore future whose value will be resolved asynchroneously in a forked parallel process
multisession

Create a multisession future whose value will be resolved asynchroneously in a parallel R session
nbrOfWorkers

Gets the number of workers available
tweak

Tweaks a future function by adjusting its default arguments
sessionDetails

Outputs details on the current R session
UniprocessFuture-class

An uniprocess future is a future whose value will be resolved synchroneously in the current process
supportsMulticore

Check whether multicore processing is supported or not
requestCore

Request a core for multicore processing
resolve

Wait until all existing futures in an environment are resolved
usedCores

Get number of cores currently used
value.Future

The value of a future
values

Gets all values in an object
resolved

Check whether a future is resolved or not
run.Future

Run a future
Future-class

A future represents a value that will be available at some point in the future
cluster

Create a cluster future whose value will be resolved asynchroneously in a parallel process
backtrace

Back trace the expressions evaluated before a condition was caught
as.cluster

Coerce an object to a cluster object
eager

Create a uniprocess future whose value will be in the current R session
ClusterFuture-class

A cluster future is a future whose value will be resolved asynchroneously in a parallel process
future

Create a future
ConstantFuture-class

A future with a constant value
availableCores

Get number of available cores on current machine