R使用mcapply()使用多个内核而没有循环

时间:2018-07-19 09:52:24

标签: r multithreading parallel-processing multiprocessing

我正在尝试使用多个内核在大型数据集上运行我的R脚本。我尝试过并行,doMC,插入符之类的软件包。在大多数情况下,mutipleCore操作应基于循环。但是,我的脚本中没有循环,仍然可以在多个内核上运行吗?

这是我原始脚本的样子。一个核心就可以正常工作。

inFile = "filename" # A very BIG file

myFunction <- function(File){
  ...
  igraph(data) # A few time-consuming functions, very SLOW.
  spinglass(graph1)
  ...
}

myFunction(inFile)

这是我尝试使用多个内核的方法:

library(parallel)
library(doMC)
library(caret)

inFile = "filename"

myFunction <- function(File){
   ...
   igraph()
   ...
}

mclapply(inFile, myFunction, mc.cores = 4)

mclapply(x,func,..)中,X应该是一个列表。在我的脚本中,我尝试使用inFile名称作为列表中的唯一元素。但是,它仅使用一个内核。

PS:我在终端而不是GUI中运行脚本。

0 个答案:

没有答案