[問題] iteration growing parallel

看板R_Language作者 (讓你喜歡這世界~)時間9年前 (2015/03/30 20:45), 編輯推噓0(007)
留言7則, 2人參與, 最新討論串1/2 (看更多)
手上有條蛋白質序列, 每個點都會突變, 遇到K, 切下來, 列出所有可能, 舉例如下 A B1 C1 K E F1 B2 C2 D F2 #### result #### A B1 C1 K A B2 C1 K A B1 C2 K A B2 C2 K A B1 C1 D F1 A B2 C1 D F1 A B1 C2 D F1 A B2 C2 D F1 .... F2 .... #### 問題來了 #### 如果一直遇不到 K, 突變點一多(爬到連續20點, 2000萬種組合, 寫出檔案大小達到2.xG) 一個CPU算到沒完 想把他平行化, 我已把function改成可以 一點叫一次 EX call: function(start=1, tmp_prefix="") out : A call: function(start=2, tmp_prefix="A") out : AB1 AB2 call: function(start=3, tmp_prefix=c("AB1", "AB2")) out : AB1C1 AB2C1 AB1C2 AB2C2 由以上可見, 如果n點後來個1000萬的out, 就要卡住了 所以我想100萬就拆開, 讓不同的CPU去算 1.請問大家知不知道一些比較方便的package 可以讓我開cpu, 指定哪個cpu算那些input 2.parallel 那種 cl=socket(n), apply 好像不能讓我指定, 應該是行不通 3.RMPI又太兇狠了...太久沒有寫...連環境都還沒有設定好 4.抱歉沒有sample code 可以跑, 所以大家如果有什麼概念用sudo code 我就很感激了 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.109.73.140 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1427719503.A.944.html

03/30 20:57, , 1F
建議你用Rcpp加速吧,平行效果有限
03/30 20:57, 1F

03/30 21:14, , 2F
這個組合不是可以直接用expand.grid做嗎?
03/30 21:14, 2F

03/30 21:14, , 3F
你把有K以後的做截斷不行嗎?
03/30 21:14, 3F

03/30 21:25, , 4F
as.vector(outer(c("B1","B2"),c("C1","C2"),paste0))
03/30 21:25, 4F

03/30 21:27, , 5F
各種組合出來後, 有K結尾的輸出, 沒有的繼續下一輪
03/30 21:27, 5F

03/30 22:33, , 6F
outer一次只能做兩兩組合...
03/30 22:33, 6F

03/30 22:33, , 7F
會慢不是沒有原因
03/30 22:33, 7F
文章代碼(AID): #1L6KLFb4 (R_Language)
文章代碼(AID): #1L6KLFb4 (R_Language)