Dear Anna,

According to the documentation of "BiocParallelParam", SnowParam() is a 
subclass suitable for distributed memory (e.g. cluster) computing. If you're 
running your code on a simpler machine with shared memory (e.g. your PC), 
you're probably better off using MulticoreParam() instead. Here's a modified 
example based on yours:

# Setup
library(parallel)
library(BiocParallel)
my_list <- list(1:10, 11:20, 21:30, 31:40, 41:50, 51:60, 61:70, 71:80, 81:90)
FUN <- function(x) return(x ^ 10)
ncores <- min(detectCores() - 1L, 10L)

# Parallel
cl <- makeCluster(ncores)
print(system.time(res <- clusterApplyLB(cl, my_list, FUN)))
stopCluster(cl)

# BiocParallel
parallel_param_1 <- SnowParam(workers = ncores, tasks = length(my_list))
print(system.time(res2 <- bplapply(my_list, FUN, BPPARAM = parallel_param_1)))
parallel_param_2 <- MulticoreParam(workers = ncores, tasks = length(my_list))
print(system.time(res3 <- bplapply(my_list, FUN, BPPARAM = parallel_param_2)))

On my machine, the output is as follows (notice the last column, with the total 
time, shows MulticoreParam() performing better than parallel):

brukar system brukt
 0.000 0.004  0.088
brukar system brukt
 0.114 0.001  1.336
brukar system brukt
 0.074 0.124  0.060

How does that work on your actual data?

Best,
Waldir

ti., 08.08.2023 kl. 13.10 +0200, skrev Anna Plaxienko:
Hi all!

I'm switching from the base R *parallel* package to *BiocParallel* for my
Bioconductor submission and I have two questions. First, I wanted advice on
whether I've implemented load balancing correctly. Second, I've noticed
that the running time is about 15% longer with BiocParallel. Any ideas why?


Parallel code

cl <- makeCluster(ncores)
res <- clusterApplyLB(cl, my_list, FUN)
stopCluster(cl)

BiocParallel

parallel_param <- SnowParam(workers = ncores, type = "SOCK", tasks =
length(my_list))
res2 <- bplapply(my_list, FUN, BPPARAM = parallel_param)

Thank you!

Best regards,
Anna Plaksienko

        [[alternative HTML version deleted]]

_______________________________________________
Bioc-devel@r-project.org<mailto:Bioc-devel@r-project.org> mailing list
https://stat.ethz.ch/mailman/listinfo/bioc-devel


        [[alternative HTML version deleted]]

_______________________________________________
Bioc-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/bioc-devel

Reply via email to