Learn R Programming

BiocParallel (version 1.6.2)

bpmapply: Parallel mapply-like functionality

Description

bpmapply applies FUN to first elements of ..., the second elements and so on. Any type of object in ... is allowed, provided length, [, and [[ methods are available. The return value is a list of length equal to the length of all objects provided, as with mapply.

Usage

bpmapply(FUN, ..., MoreArgs=NULL, SIMPLIFY=TRUE, USE.NAMES=TRUE, BPREDO=list(), BPPARAM=bpparam())
"bpmapply"(FUN, ..., MoreArgs=NULL, SIMPLIFY=TRUE, USE.NAMES=TRUE, BPREDO=list(), BPPARAM=bpparam())
"bpmapply"(FUN, ..., MoreArgs=NULL, SIMPLIFY=TRUE, USE.NAMES=TRUE, BPREDO=list(), BPPARAM=bpparam())

Arguments

FUN
The function to be applied to each element passed via ....
...
Objects for which methods length, [, and [[ are implemented. All objects must have the same length or shorter objects will be replicated to have length equal to the longest.
MoreArgs
List of additional arguments to FUN.
SIMPLIFY
If TRUE the result will be simplified using simplify2array.
USE.NAMES
If TRUE the result will be named.
BPPARAM
An optional BiocParallelParam instance defining the parallel back-end to be used during evaluation.
BPREDO
A list of output from bpmapply with one or more failed elements. When a list is given in BPREDO, bpok is used to identify errors, tasks are rerun and inserted into the original results.

Value

mapply.

Details

See showMethods{bpmapply} for additional methods, e.g., method?bpmapply("MulticoreParam").

See Also

  • bpvec for parallel, vectorized calculations.

  • BiocParallelParam for possible values of BPPARAM.
  • Examples

    Run this code
    showMethods("bpmapply")
    
    fun <- function(greet, who) {
        paste(Sys.getpid(), greet, who)
    }
    greet <- c("morning", "night")
    who <- c("sun", "moon")
    
    param <- bpparam()
    original <- bpworkers(param)
    bpworkers(param) <- 2
    result <- bpmapply(fun, greet, who, BPPARAM = param)
    cat(paste(result, collapse="\n"), "\n")
    bpworkers(param) <- original
    

    Run the code above in your browser using DataLab