考慮一個示例代碼ř的foreach:線程數減少到1
library("foreach")
library("doMC")
library("multicore")
multicore:::detectCores()
registerDoMC(cores=6)
alpha <- foreach(i = 1:10) %dopar% {
...
}
當我使用頂部,在啓動的線程的數量是說6.工作的每個線程的量是巨大的。但是,線程的數量迅速下降到5,4,3,2,然後是1.我從那時起就猜測執行是串行的。我不明白爲什麼?
乾杯
你可以在你的'%dopar%'表達式中發佈代碼,或者至少提供一個可重現的例子嗎? – BenBarnes
另外,如果您將6個進程中的大量數據返回給主進程,則會導致大量的並行執行開銷。 – BenBarnes