## ----------------------------------------------------------------------------- library(BiocParallel) ## ----quick_start FUN---------------------------------------------------------- FUN <- function(x) { round(sqrt(x), 4) } ## ----quick_start registry----------------------------------------------------- registered() ## ----configure_registry, eval=FALSE------------------------------------------- # options(MulticoreParam=MulticoreParam(workers=4)) ## ----quickstart_bplapply_default, eval=FALSE---------------------------------- # bplapply(1:4, FUN) ## ----quickstart_snow---------------------------------------------------------- param <- SnowParam(workers = 2, type = "SOCK") bplapply(1:4, FUN, BPPARAM = param) ## ----BiocParallelParam_SerialParam-------------------------------------------- serialParam <- SerialParam() serialParam ## ----BiocParallelParam_MulticoreParam----------------------------------------- multicoreParam <- MulticoreParam(workers = 8) multicoreParam ## ----register_registered------------------------------------------------------ registered() ## ----register_bpparam--------------------------------------------------------- bpparam() ## ----register_BatchtoolsParam------------------------------------------------- default <- registered() register(BatchtoolsParam(workers = 10), default = TRUE) ## ----register_BatchtoolsParam2------------------------------------------------ names(registered()) bpparam() ## ----register_restore--------------------------------------------------------- for (param in rev(default)) register(param) ## ----error-vignette, eval=FALSE----------------------------------------------- # browseVignettes("BiocParallel") ## ----use_cases_data----------------------------------------------------------- library(RNAseqData.HNRNPC.bam.chr14) fls <- RNAseqData.HNRNPC.bam.chr14_BAMFILES ## ----forking_gr, message=FALSE------------------------------------------------ library(GenomicAlignments) ## for GenomicRanges and readGAlignments() gr <- GRanges("chr14", IRanges((1000:3999)*5000, width=1000)) ## ----forking_param------------------------------------------------------------ param <- ScanBamParam(which=range(gr)) ## ----forking_FUN-------------------------------------------------------------- FUN <- function(fl, param) { gal <- readGAlignments(fl, param = param) sum(countOverlaps(gr, gal)) } ## ----forking_default_multicore------------------------------------------------ MulticoreParam() ## ----db_problems, eval = FALSE------------------------------------------------ # library(org.Hs.eg.db) # FUN <- function(x, ...) { # ... # mapIds(org.Hs.eg.db, ...) # ... # } # bplapply(X, FUN, ..., BPPARAM = MulticoreParam()) ## ----cluster_FUN-------------------------------------------------------------- FUN <- function(fl, param, gr) { suppressPackageStartupMessages({ library(GenomicAlignments) }) gal <- readGAlignments(fl, param = param) sum(countOverlaps(gr, gal)) } ## ----cluster_snow_param------------------------------------------------------- snow <- SnowParam(workers = 2, type = "SOCK") ## ----cluster_bplapply--------------------------------------------------------- bplapply(fls[1:3], FUN, BPPARAM = snow, param = param, gr = gr) ## ----db_solution_2, eval = FALSE---------------------------------------------- # register(SnowParam()) # default evaluation # bpstart() # start the cluster # ... # bplapply(X, FUN1, ...) # ... # bplapply(X, FUN2, ...) # re-use workers # ... # bpstop() ## ----cluster-MPI-work, eval=FALSE--------------------------------------------- # library(BiocParallel) # library(Rmpi) # FUN <- function(i) system("hostname", intern=TRUE) ## ----cluster-MPI, eval=FALSE-------------------------------------------------- # param <- SnowParam(mpi.universe.size() - 1, "MPI") # register(param) ## ----cluster-MPI-do, eval=FALSE----------------------------------------------- # xx <- bplapply(1:100, FUN) # table(unlist(xx)) # mpi.quit() ## ----cluster-MPI-bpstart, eval=FALSE------------------------------------------ # param <- bpstart(SnowParam(mpi.universe.size() - 1, "MPI")) # register(param) # xx <- bplapply(1:100, FUN) # bpstop(param) # mpi.quit() ## ----slurm-------------------------------------------------------------------- tmpl <- system.file(package="batchtools", "templates", "slurm-simple.tmpl") noquote(readLines(tmpl)) ## ----cluster-batchtools, eval=FALSE------------------------------------------- # ## define work to be done # FUN <- function(i) system("hostname", intern=TRUE) # library(BiocParallel) # # ## register SLURM cluster instructions from the template file # param <- BatchtoolsParam(workers=5, cluster="slurm", template=tmpl) # register(param) # # ## do work # xx <- bplapply(1:100, FUN) # table(unlist(xx)) ## ----devel-bplapply----------------------------------------------------------- system.time(x <- bplapply(1:3, function(i) { Sys.sleep(i); i })) unlist(x) ## ----sessionInfo-------------------------------------------------------------- sessionInfo()