2009年1月14日星期三

[PerlChina] Re: 问一个perl在双核机器或者并行机器上运行的问题

2009/1/14 空格 <ribozyme2004@gmail.com>
多谢楼上几位的回复。
我想做的事是这样的:我的程序要独立进行四次调用外部程序的计算。就是BLAST,做生物信息的会知道,全基因组的BLAST会很花时间。目前的程序是
只能在一个CPU上依次跑完这四个blast程序。所以我想把原来的程序改进成能同时进行这四个BLAST。这样可以大大节省计算时间。也许开多线程是
比较合适的方法。。。
谢谢诸位。我再去看看讲多线程的东西吧。呵呵。

Perl 5 的多线程不够稳定,不推荐使用。我前面说的不是针对 Perl 的,呵呵。

如果你这里的 4 个调用彼此不怎么依赖,可以并行的话,可以考虑使用 fork 从一个父进程派生出多个子进程,或者利用 CPAN 上的 Proc::Simple 模块来做异步进程派生。我感觉你可以对序列文件进行预分割,然后"同时"喂给 4 个 BLAST,呵呵。多进程方式算是 Perl 中的 Best Practice 了 ;)

-agentzh


--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina 论坛"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

没有评论: