Re: [問題] iteration growing parallel

看板R_Language作者 (攸藍)時間9年前 (2015/03/30 22:14), 9年前編輯推噓3(302)
留言5則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《memphis (讓你喜歡這世界~)》之銘言: : 手上有條蛋白質序列, 每個點都會突變, 遇到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 我就很感激了 花了一點時間寫成Rcpp 我認為這樣的做法快又有效。 ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.225.214.51 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1427724883.A.3FD.html

03/30 22:31, , 1F
感恩 讓我copy下來研究修改一下 (因為例子是簡化的XD)
03/30 22:31, 1F
code連結:http://pastebin.com/JfFSYcuj (比較友好的介面) 另外,提醒一件事,combns_f算出來的result是int,所以很省記憶體 你如果轉成character matrix,該矩陣所使用的記憶體會多整數一倍。

03/31 00:56, , 2F
感謝, 在數字上操作才是正確的, 列出所有可能再參照回去
03/31 00:56, 2F

03/31 00:57, , 3F
再問一下 我看了我的資料點 所有可能乘起來約10的11次方
03/31 00:57, 3F

03/31 00:58, , 4F
這是R可以操作的範圍嗎? 還是這宣告了此路不通?
03/31 00:58, 4F
是可以操作的範圍,可是ram要夠大

03/31 01:12, , 5F
好.. Ram有2T 我再拼拼看..
03/31 01:12, 5F
我發現了一點小錯,更正了一下,並且增加一個直接output character matrix的方法 而且省略做轉換、以及產生整數矩陣的時間、記憶體,可以比較有效率。 ※ 編輯: celestialgod (36.225.214.51), 03/31/2015 14:55:21
文章代碼(AID): #1L6LfJFz (R_Language)
文章代碼(AID): #1L6LfJFz (R_Language)