# A Unifying Framework for Parallel and Distributed Processing in R using Futures

arXiv: https://arxiv.org/abs/2008.00553 · HTML: https://mlsanity.com/paper/2008.00553/

## Key facts

- Cited by 9 papers in the map (data through 14 Oct 2026).
- First posted on arXiv 2 Aug 2020.

## Built on by (most cited first, 9 of 9)

- [Hyperparameter Optimization: Foundations, Algorithms, Best Practices and Open Challenges](https://mlsanity.com/paper/2107.05847/) (2021)
- [shapr: Explaining Machine Learning Models with Conditional Shapley Values in R and Python](https://mlsanity.com/paper/2504.01842/) (2025)
- [Mutation is all you need](https://mlsanity.com/paper/2107.07343/) (2021)
- [A framework for causal segmentation analysis with machine learning in large-scale digital experiments](https://mlsanity.com/paper/2111.01223/) (2021)
- [mlr3summary: Concise and interpretable summaries for machine learning models](https://mlsanity.com/paper/2404.16899/) (2024)
- [Multi-omics data integration for early diagnosis of hepatocellular carcinoma (HCC) using machine learning](https://mlsanity.com/paper/2409.13791/) (2024)
- [flowengineR: A Modular and Extensible Framework for Fair and Reproducible Workflow Design in R](https://mlsanity.com/paper/2511.00079/) (2025)
- [mlr3mbo: Bayesian Optimization in R](https://mlsanity.com/paper/2603.29730/) (2026)
- [Topological summaries of fingerprint ridge patterns carry identity information](https://mlsanity.com/paper/2606.22029/) (2026)

## Abstract (arXiv)

A future is a programming construct designed for concurrent and asynchronous evaluation of code, making it particularly useful for parallel processing. The future package implements the Future API for programming with futures in R. This minimal API provides sufficient constructs for implementing parallel versions of well-established, high-level map-reduce APIs. The future ecosystem supports exception handling, output and condition relaying, parallel random number generation, and automatic identification of globals lowering the threshold to parallelize code. The Future API bridges parallel frontends with parallel backends following the philosophy that end-users are the ones who choose the parallel backend while the developer focuses on what to parallelize. A variety of backends exist and third-party contributions meeting the specifications, which ensure that the same code works on all backends, are automatically supported. The future framework solves several problems not addressed by other parallel frameworks in R.
