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

Logical value, default is TRUE. Whether to print progress messages.

Value

A list of computed results

Examples

parallelize_fun(1:3, function(x) {
  Sys.sleep(0.2)
  x^2
})
#>  [2025-07-25 01:38:53] Using 1 core
#> ⠙ [2025-07-25 01:38:53] Running [1/3] ETA:  0s
#>  [2025-07-25 01:38:53] Completed 3 tasks in 621ms
#> 
#>  [2025-07-25 01:38:54] 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-07-25 01:38:54] Using 2 cores
#>  [2025-07-25 01:38:55] Building results
#> $`1`
#> [1] 1
#> 
#> $`2`
#> [1] 9
#> 
#> $`3`
#> [1] 4
#>