2015-10-21 45 views
0

我在R探索並行編程和我的foreach功能是如何工作的一個很好的理解,但我不明白之後paralleldoparalleldoMCdoSNOWSNOWmulticore如何確定R使用哪個並行處理包?

之間的差異做了一堆閱讀,似乎這些軟件包的工作方式取決於操作系統,並且我看到一些軟件包使用多核這個詞,而其他軟件包使用集羣(我不確定它們是否不同),但除此之外它不是明確各自有哪些優點或缺點。

我工作的Windows,我想使用並行複製權重來計算標準錯誤,所以我不必一次計算每個複製一個(如果我有n個核心,我應該可以在n複製一旦)。我能夠實現它使用doSNOW,但它看起來像plyr和R社區一般使用doMC所以我想知道如果使用doSNOW是一個錯誤。

問候, 卡爾

+0

我傾向於使用「parallel」,但我不知道哪一個是「最好的」 –

回答

1

我的理解是,parallelsnowmulticore堆集,並意味着二者結合的最好的部分。

對於單機上的並行計算,我發現parallel已經非常有效。

對於使用多臺機器的集羣並行計算,我從來沒有成功地完成設置使用parallel集羣,但使用snow成功。

我從來沒有使用任何do*軟件包,所以我害怕我無法發表評論。

+0

是否在設置羣集的同一臺機器上爲多個內核設置並行?我只想簡單地在計算機上使用核心,但我必須使用的函數是'makeCluster',所以我是否錯誤地設置了並行或者我誤解了核心和集羣之間的差異? – Carl

+1

集羣是一組核心。因此,如果您在一臺計算機上使用4個核心,則您擁有4個核心的集羣。如果您在本地計算機上使用4個核心,而在遠程計算機上使用4個核心,則您擁有一個由8個核心組成的羣集。 'makeCluster'只是將內核綁定在一起並協調發送到每個內核的信息的機制。就我所知,這聽起來像你做得很對。 – Benjamin

相關問題