日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

r语言系统计算上是奇异的_R语言实现并行计算

發布時間:2023/11/30 windows 71 豆豆
生活随笔 收集整理的這篇文章主要介紹了 r语言系统计算上是奇异的_R语言实现并行计算 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Python作為多線程的編程語言在并行方面相對于R語言有很大的優勢,然而作為占據統計分析一席之地的R語言自然不能沒有并行計算的助力。那么我們來看下在R語言中有哪些并行的包:隱式并行:OpenBLAS,Intel MKL,NVIDIA cuBLAS等;顯性并行:parallel(主打lapply應用)、foreach(主打for循環)、SupR、還有利用GPU的辦法(gpuR)。所謂顯式并行也就是基于并行的編程語言編譯的程序;隱式并行是基于串行程序編譯的并行計算。當然,在R語言核心功能中也是帶有了相關的并行的計算基礎包parallel。今天就給大家介紹下這個基礎并行包的具體應用。

我們不需要再安裝這個包,可以直接進行相關的計算。首先我們看下里面的幾個核心的函數:

1. detectCores() 發現PC終端有多少個核。所謂核就是CPU的性能體現,越多越好。實例:

library(parallel)cl.cores #發現可用核數

2. makeCluster() 初始化我們需要用到的核數。其中type參數有兩種PSOCK適用所有操作系統,FORK適用unix/max,實現內存共享以及節省內存。實例:

cl "cl.cores", 2),type="PSOCK")

3. clusterExport() 將變量載入并行的環境中。實例:

xx=1:10clusterExport(cl, "xx")#讀入變量數據

4. clusterEvalQ(,{code})? 將包或者代碼直接載入并行環境。實例:

clusterEvalQ(cl,{library(ggplot2);xy=1:10})

clusterCall(cl, function(y) xy + y, 2:10)

5. clusterCall() 在并行環境中,一次運行過程在各節點的值。clusterMap便可以直接運行所用的值,并以列表形式展示所有結果。實例:

clusterCall(cl, function(y) xx + y, 2:10)

clusterMap(cl,function(y) xx + y,2:10)

6. parLapply(), parSapply(), 和 parApply() 和函數 lapply, sapply 及 apply一一對應。可以直接將自定義的函數引入并行環境。實例:

parSapply(cl,2:10, function(y) xx + y)

7. clusterApply() 類似parLapply 系列,可以直接運行得到所有結果,輸出列表格式。clusterApplyLB()便是對其的優化,具體的優化模式我們就不贅述了。實例:

clusterApply(cl,2:10, function(y) xx + y)

8. do.call() 針對某個數據集執行指定的函數功能。實例:

res=clusterApply(cl,2:10, function(y) xx +y)do.call('rbind',res)

9. stopCluster() 關閉集群。實例

stopCluster(cl)

以上便是parallel包的全部功能函數,其實并行真正解決的是重復性工作的情況,在P值的計算中應用比較廣泛。然而對于遞歸計算需要一定的優化才能使用并行計算,不然不一定有單機的效率高。

歡迎互相學習交流!?

總結

以上是生活随笔為你收集整理的r语言系统计算上是奇异的_R语言实现并行计算的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。