Распараллеливание с R - PullRequest
0 голосов
/ 25 июня 2018

Я столкнулся с проблемой производительности, когда пытался распараллелить исчисление с R. У меня есть матрица из 8 столбцов (условий) с 12000 строк (генов), я хотел бы определить оптимальное количество кластеров, представляющихэкспрессия генов (сгруппируйте гены с одинаковым паттерном экспрессии).Для этого я следую этому учебнику с функцией clustGap и разделом вокруг medoid.

Поскольку исчисление довольно длинное и я могу получить доступ к кластеру исчислений, я планируюраспараллелить это.

Я хотел бы использовать пакет Snow, и для оценки скорости я извлекаю субматрицу , и я сделал первый тест на своем компьютере.

library(snow)
cl<-makeCluster(8) 
clusterEvalQ(cl, library(cluster))
clusterExport(cl,"df")
T1<-Sys.time()
results <-clusterCall(cl,function(x) clusGap(df, FUN = pam, K.max = 20, B= 500,verbose=TRUE))
T2<-Sys.time() 
difftime(T2, T1) 

Разница во времени 14,59781 с

T3<-Sys.time()
clusGap(df, FUN = pam, K.max = 20, B = 500,verbose=TRUE)
T4<-Sys.time()
difftime(T4, T3) 

Разница во времени 8,251367 с

Так что я немногонемного застрял в тесте, поскольку кажется, что 1-ядерное исчисление более эффективно, чем 8 ядер: o

Кто-нибудь знает, что я не понял в этом исчислении?

Большое спасибо,

sessionInfo()

> R version 3.3.3 (2017-03-06)
Platform: x86_64-apple-darwin13.4.0 (64-bit)
Running under: macOS  10.13.4

locale:
[1] fr_FR.UTF-8/fr_FR.UTF-8/fr_FR.UTF-8/C/fr_FR.UTF-8/fr_FR.UTF-8

attached base packages:
 [1] splines   stats4    parallel  stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] snow_0.4-2          cluster_2.0.6       DDRTree_0.1.5       irlba_2.3.1         VGAM_1.0-3          ggplot2_2.2.1      
[7] Biobase_2.34.0      BiocGenerics_0.20.0 Matrix_1.2-12      

loaded via a namespace (and not attached):
 [1] Rcpp_0.12.17           lattice_0.20-35        tidyr_0.8.1            GO.db_3.4.0            assertthat_0.2.0      
 [6] digest_0.6.15          slam_0.1-40            R6_2.2.2               plyr_1.8.4             RSQLite_2.1.1         
[11] pillar_1.2.3           rlang_0.2.1            lazyeval_0.2.1         data.table_1.11.4      blob_1.1.1            
[16] S4Vectors_0.12.2       combinat_0.0-8         qvalue_2.6.0           BiocParallel_1.8.2     stringr_1.3.1         
[21] igraph_1.1.2           pheatmap_1.0.10        bit_1.1-14             munsell_0.5.0          fgsea_1.0.2           
[26] pkgconfig_2.0.1        tidyselect_0.2.4       tibble_1.4.2           gridExtra_2.3          matrixStats_0.53.1    
[31] IRanges_2.8.2          dplyr_0.7.5            grid_3.3.3             gtable_0.2.0           DBI_1.0.0             
[36] magrittr_1.5           scales_0.5.0           stringi_1.2.3          GOSemSim_2.0.4         reshape2_1.4.3        
[41] bindrcpp_0.2.2         limma_3.30.13          DO.db_2.9              clusterProfiler_3.2.14 fastmatch_1.1-0       
[46] fastICA_1.2-1          RColorBrewer_1.1-2     tools_3.3.3            bit64_0.9-7            glue_1.2.0            
[51] purrr_0.2.5            HSMMSingleCell_0.108.0 AnnotationDbi_1.36.2   colorspace_1.3-2       DOSE_3.0.10           
[56] memoise_1.1.0          bindr_0.1.1        
...