看板 R_Language 關於我們 聯絡資訊
手上有條蛋白質序列, 每個點都會突變, 遇到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
celestialgod: 建議你用Rcpp加速吧,平行效果有限 03/30 20:57
celestialgod: 這個組合不是可以直接用expand.grid做嗎? 03/30 21:14
celestialgod: 你把有K以後的做截斷不行嗎? 03/30 21:14
memphis: as.vector(outer(c("B1","B2"),c("C1","C2"),paste0)) 03/30 21:25
memphis: 各種組合出來後, 有K結尾的輸出, 沒有的繼續下一輪 03/30 21:27
celestialgod: outer一次只能做兩兩組合... 03/30 22:33
celestialgod: 會慢不是沒有原因 03/30 22:33