我有一个体贴大小的对象列表,我需要将其导出到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首先完成。
是否有更有效的方法并行执行此操作?
答案 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