Skip to contents

Parallelize a function

Usage

parallelize_fun(x, fun, cores = 1, export_fun = NULL, verbose = TRUE)

Arguments

x

A vector or list to apply over.

fun

The function to be applied to each element.

cores

The number of cores to use for parallelization with foreach::foreach. Default is 1.

export_fun

The functions to export the function to workers.

verbose

Whether to print progress messages. Default is TRUE.

Value

A list of computed results.

Examples

parallelize_fun(1:3, function(x) {
  Sys.sleep(0.2)
  x^2
})
#>  [2025-09-08 03:52:24] Using 1 core
#> ⠙ [2025-09-08 03:52:24] Running [1/3] ETA:  0s
#>  [2025-09-08 03:52:24] Completed 3 tasks in 626ms
#> 
#>  [2025-09-08 03:52:25] Building results
#> $`1`
#> [1] 1
#> 
#> $`2`
#> [1] 4
#> 
#> $`3`
#> [1] 9
#> 

parallelize_fun(list(1, 2, 3), function(x) {
  Sys.sleep(0.2)
  x^2
}, cores = 2)
#>  [2025-09-08 03:52:25] Using 2 cores
#>  [2025-09-08 03:52:25] Building results
#> $`1`
#> [1] 1
#> 
#> $`2`
#> [1] 9
#> 
#> $`3`
#> [1] 4
#>