平行計算有顯性並行和隱式並行,
介紹可以參考:
parallel是比較基礎的,不需要額外安裝,直接載入就行,但是不是很穩定,關於parallel包的介紹可以參考:
# foreach
library(foreach)
library(doparallel)
#分配核心數,這裡獲取了物理核心數
cores <
- detectcores(logical=f)
cl <
- makecluster(cores)
registerdoparallel(cl, cores=cores)
system.time(
#.combine是資料的合併方法,如果預設則返回乙個list
res <
- foreach(i=1:
20,.combine=
'rbind'
)%dopar%
return
(s)}
)#關閉並行
stopimplicitcluster(
)stopcluster(cl)
另外乙個比較穩定的並行包是snowfall依賴snow包和parallel包,可以參考:
可以比較一下執行速度:
library(parallel)
#用於平行計算
library(snowfall)
# 載入snowfall包,用於平行計算
system.time(
for(i in1:
2250)}
)myfun<
-function(i)
}system.time(
# 並行初始化
sfinit(parallel = true, cpus = detectcores(logical = f)-1
) s<1:
2250
, myfun)
# 結束並行,返還記憶體等資源
sfstop(
))
R語言平行計算程式設計
r語言並行程式設計例項,將資料集rcuters 21578的50個文件賦值100,000次,得到包含500萬個文件的資料庫,查詢正規表示式。tm軟體包是r語言中為文字挖掘提供處理的package,提供資料匯入 語料庫處理 預處理 元資料管理 建立term document矩陣等功能。平行計算 lib...
R語言中的平行計算 二 搭建R的集群
zhuanzai 一直糾結於r的大資料計算問題,希望可以找到乙個徹底的方案解決它。而雲伺服器當然是解決這個問題的最佳方案,所以,至少從這方面入手。r的雲伺服器部署有兩種解決方案,一種是使用r語言的平行計算,另外一種是使用rhadoop框架。rhadoop框架其實就是m r 演算法的r語言實現,需要使...
R語言snow包平行計算
this post was kindly contributed by 資料科學與r語言 go there to comment and to read the full post.在資料探勘和機器學習領域有許多的演算法需要強大的計算能力,如果對大資料進行運算操作,那麼其工作量之大使單個cpu核心難...