通过ClusterExport在R

时间:2017-08-01 19:15:04

标签: r parallel-processing

我有一个体贴大小的对象列表,我需要将其导出到R中的PSOCK群集。

我是按照以下方式做的:

cl <- makePSOCKcluster(3, methods = TRUE)

listOfMatrices <- c(bigMatrix1, bigMatrix2, bigMatrix3)

for(i in 1:3){
   bigMatrix <- listOfMatrices[i]
   clusterExport(cl[i], "bigMatrix", envir = environment())
}

然而,这种方法是顺序的,因为导出n + 1需要导出n首先完成。

是否有更有效的方法并行执行此操作?

1 个答案:

答案 0 :(得分:1)

您可以使用library(shiny) shinyApp( ui=navbarPage("Navbar",id="navbar", tabPanel("NavTab1", verbatimTextOutput("current_tab_view1")), tabPanel("NavTab2", verbatimTextOutput("current_tab_view2")) ), server = function(input,output,session){ output$current_tab_view1 <- renderText(input$navbar) output$current_tab_view2 <- renderText(input$navbar) } ) 功能执行此操作:

clusterApply

您可以使用library(parallel) cl <- makePSOCKcluster(3) listOfMatrices <- list(matrix(1,2,2), matrix(2,2,2), matrix(3,2,2)) clusterApply(cl, listOfMatrices, function(m) {bigMatrix <<- m; NULL}) 验证其是否正常工作:

clusterEvalQ