作者memphis (让你喜欢这世界~)
看板R_Language
标题iteration growing parallel
时间Mon Mar 30 20:45:00 2015
手上有条蛋白质序列, 每个点都会突变, 遇到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://webptt.com/cn.aspx?n=bbs/R_Language/M.1427719503.A.944.html
1F:→ celestialgod: 建议你用Rcpp加速吧,平行效果有限 03/30 20:57
2F:→ celestialgod: 这个组合不是可以直接用expand.grid做吗? 03/30 21:14
3F:→ celestialgod: 你把有K以後的做截断不行吗? 03/30 21:14
4F:→ memphis: as.vector(outer(c("B1","B2"),c("C1","C2"),paste0)) 03/30 21:25
5F:→ memphis: 各种组合出来後, 有K结尾的输出, 没有的继续下一轮 03/30 21:27
6F:→ celestialgod: outer一次只能做两两组合... 03/30 22:33
7F:→ celestialgod: 会慢不是没有原因 03/30 22:33