[心得] parallel IO save/load data

看板R_Language作者 (讓你喜歡這世界~)時間8年前 (2017/03/29 20:54), 8年前編輯推噓1(101)
留言2則, 2人參與, 最新討論串1/1
一個33GB的物件, 目標是最快速的塞到硬碟裡, 跟讀回來 1. 之前提過的方案 save/load saveRDS/readRDS fwrite/fread (data.table) write_feather/read_feather (feather) 不過還沒有討論到用multithreads的方式, 多核心壓縮/解壓縮檔案 2. 要看的文件 2.1 官方文件有提到可以用pipe, 直接引用外部程式輸出入 https://stat.ethz.ch/R-manual/R-devel/library/base/html/save.html 2.2 網友說可以做一個漂亮的打包 http://stackoverflow.com/questions/28927750/ 2.3 我個人試了幾個壓縮引擎, 覺得這個網頁數字比較接近我的經驗 http://vbtechsupport.com/1614/ 3. 數據與結論 先說結論, pigz, 8線 大概是最好的結果 # 方案1 save/load, 171.9MB save 748s load 207s # 方案2 saveRDS/readRDS, 171.9MB saveRDS 750s readRDS 207s # 方案3 mySaveRDS/myReadRDS(pigz, 8c), 182.6MB mySaveRDS 86s #8核寫入沒錯 myReadRDS 207s #演算法的關係只會用4核, #http://serverfault.com/questions/270814/ # 方案4 mySaveRDS/myReadRDS(pbzip2, 8c), 106.7MB mySaveRDS 518s #8核寫入沒錯..可是就是很慢 myReadRDS 136s #演算法可以8核分開解壓..但是就是很慢 #可以參考2.3的連結, 感覺大概就是那樣 4. 附註 CentOS6 沒有平行xz, xz版本只有到4.99 xz, pxz都一樣沒有平行選項 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.240.246.119 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1490792066.A.6F2.html ※ 編輯: memphis (111.240.246.119), 03/29/2017 20:57:48

03/29 21:27, , 1F
附上我之前測的 https://pastebin.com/jYn3AuHF
03/29 21:27, 1F

03/30 17:16, , 2F
實測推~~ 感謝分享~~
03/30 17:16, 2F
文章代碼(AID): #1Osww2Ro (R_Language)
文章代碼(AID): #1Osww2Ro (R_Language)