Speaker
Description
This tutorial provides an introduction to the Futureverse (https://www.futureverse.org), a cohesive package ecosystem designed to facilitate and simplify parallel and distributed computing in R.
While accessible to beginners and those with some R experience, this workshop also provides valuable insights for more advanced users. We will focus on the new futurize() function, which dramatically simplifies parallelization by automatically converting common R code directly into concurrent equivalents, e.g. ys <- map(xs, fcn) |> futurize(). You will learn how to scale up your existing workflows, including those using base R and purrr. We will also cover how domain-specific tasks in areas like statistics and machine learning provided by packages such as boot, caret, lme4, glmnet, and mgcv can be parallelized equally easily. The futurize() function allows us to preserve the core logic and syntax and minimizes the need to learn complex parallel APIs.
To deepen our understanding, we will explore the concept of futures, a mechanism underlying most parallel processing. By gaining an intuition for what a future is, you will develop a better understanding of how parallel processing works and see that it is actually quite simple. This deeper knowledge also applies when working outside of the Futureverse, such as with the built-in parallel package or third-party tools like foreach and mirai.
Time permitting, the tutorial concludes with an example of parallelizing via a peer-to-peer (P2P) cluster shared among participants.
This year's focus on the futurize package differentiates this session from past Futureverse tutorials by removing the need to program directly toward specialized packages like future.apply, furrr, and doFuture, which further lowers the mental threshold for starting with parallel processing.
If you used AI tools or services to support the preparation of this submission, please state the name and reason for using each of them.
Gemini for spell and grammar corrections (only).
Additional Material or Paper
The tutorial materials will be made available at https://www.futureverse.org/, which also provides:
(1) H. Bengtsson, A Unifying Framework for Parallel and Distributed Processing in R using Futures, The R Journal (2021) 13:2, pages 208-227.
(2) H. Bengtsson, A Unified Approach to Concurrent, Parallel Map-Reduce in R using Futures, arXiv preprint, (2026)
Target audience (only for tutorials)
This tutorial is for beginners to parallel computing and intermediate R users looking to modernize their workflow.
Learning goals (only for tutorials)
The main learning objectives of this workshop are:
-
Modern parallelization: Learn to use
futurize()to scale up existing code with minimal friction. -
The "future" concept: We will demystify what a "future" actually is - a placeholder for a value that is being computed. Understanding this concept helps users to better understand not only Futureverse, but also the underlying mechanics of the built-in parallel package, and third-party packages such as foreach and mirai.
-
Beyond the local computer: We will explore how the same code that parallelizes on the local computer can also be parallelized on external computers, including those shared among participants via a peer-to-peer (P2P) cluster.
By the end of this tutorial, beginners will be familiar with and feel confident in parallelizing their daily tasks, while advanced users will gain a deeper architectural understanding of concurrent evaluation in R.
Prerequisites (only for tutorials)
This tutorial requires basic R knowledge, a notebook with R (>= 4.1.0) installed. Please install install.packages("futureverse") ahead of time.
| Keywords: Please list up to 5 keywords to help us find the right session for your contribution. | parallel processing, distributed processing, large-scale processing, high-performance compute (HPC) |
|---|---|
| Virtual Option | This submission is for onsite presentation only |
| Material License | CC-BY 4.0 |
| Video Recording | Video sharing is fine |
| The author(s) agree(s) to take responsibility and be accountable for the contents of the submission and is/are authorized to present it. | Confirm |
| Interested in serving as reviewer? | henrik.bengtsson@gmail.com |