Call a function with a vectorized input in parallel, where the function is computationally intensive.

1 2 | ```
doCallParallel(fun, x, ..., njobs = parallel::detectCores() - 1,
random.seed = NULL)
``` |

`fun` |
A function, or a text string with the name of the function, whose first argument is a vector and returns a corresponding vector |

`x` |
A vector of values that is the first argument to |

`njobs` |
The number of parallel jobs to spawn using |

`random.seed` |
If a numeric value is provided, |

`...` |
Additional named arguments for |

This function is a parallelized wrapper for `do.call`

designed for the case where `fun`

is
computationally intensive. Each element of `x`

is evaluated
independently of the other elements of `x`

. Thus, `fun(c(x1,x2))`

must be equivalent
to `c(fun(x1), fun(x2))`

in order for `doCallParallel`

to work properly.

The same result that would be had by calling `fun(x, ...)`

, except calculated in parallel

Landon Sego

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | ```
# Get a vector of x's
x <- rnorm(18, mean = 2, sd = 2)
# 2 cores
y1 <- doCallParallel("pnorm", x, mean = 2, sd = 2, njobs = 2)
# 2 cores and randomization
y2 <- doCallParallel(pnorm, x, mean = 2, sd = 2, njobs = 2, random.seed = 1)
# Without using doCallParallel()
y3 <- pnorm(x, mean = 2, sd = 2)
# Comparisons
identical(y1, y2)
identical(y1, y3)
``` |

Questions? Problems? Suggestions? Tweet to @rdrrHQ or email at ian@mutexlabs.com.

Please suggest features or report bugs with the GitHub issue tracker.

All documentation is copyright its authors; we didn't write any of that.