Description
Install 'Futureverse' in One Go.
Description
The 'Futureverse' is a set of packages for parallel and distributed processing with the 'future' package at its core, cf. Bengtsson (2021) <doi:10.32614/RJ-2021-048>. This package is designed to make it easy to install common 'Futureverse' packages in a single step. This package is intended for end-users, interactive use, and R scripts. Packages must not list it as a dependency - instead, explicitly declare each 'Futureverse' package as a dependency as needed.
README.md
R package 'futureverse' - Install 'Futureverse' in One Go 
The Futureverse is a unifying framework for parallelization and distributed processing in R. This package, futureverse, is a utility wrapper package that makes it easy to install most common Futureverse packages in one go.
TL;DR
Start by configuring Futureverse to parallelize on the current computer:
future::plan(future::multisession)
After this, all it takes is a minor tweak to make your existing lapply(), map(), or foreach() code to run in parallel, e.g.
library(futurize)
## Sequential and parallel version of base R apply
y <- lapply(X, slow_fcn)
y <- lapply(X, slow_fcn) |> futurize()
## Sequential and parallel version of purrr map
library(purrr)
y <- X |> map(slow_fcn)
y <- X |> map(slow_fcn) |> futurize()
## Sequential and parallel version of foreach
library(foreach)
y <- foreach(x = X) %do% slow_fcn(x)
y <- foreach(x = X) %do% slow_fcn(x) |> futurize()
Installation
Call:
install.packages("futureverse")
to install:
- future - the core Futureverse package
- futurize - the one-stop map-reduce package
- future.apply - Futureverse variants of base-R apply functions
- furrr - Futureverse variants of purrr apply functions
- doFuture - Futureverse adaptors for the foreach package
- progressr - Near-live progress updates when using Futureverse
Call:
install.packages("futureverse", dependencies = TRUE)
to install also additional parallel backends:
- future.mirai - a modern alternative to built-in
plan(multisession) - future.callr - a memory efficient alternative to built-in
plan(multisession) - future.batchtools - parallelize on HPC job schedulers; Load Sharing Facility (LSF), OpenLava, TORQUE/PBS, Sun/Son of/Oracle/Univa/Altair Grid Engine (SGE), Slurm
Want to learn more?
- Tutorials and Workshops: https://www.futureverse.org/tutorials.html
- Blog: https://www.futureverse.org/blog.html
- Publications: https://www.futureverse.org/publications.html
- Support: https://github.com/orgs/futureverse/discussions.