Tag Archives: 集群

1024个CPU核下的测试

  正在单位加班。所里新建的平台上有96小时独占机时,可以跑一些1024个CPU核的测试。机器跑起来了,等结果的空隙就上来敲点BLOG。

  这次测试,对pFind来说只是重复以前在曙光500A和升腾7000上的试验结论。昨天pFind引擎刚启动,系统管理员就报告他那边的性能监控服务里面, 各个节点的CPU占用率都满了。首先跑了一个热身任务,在腾冲嗜热菌数据上,设置了包括磷酸化在内的5个修饰,开300Da的超大误差窗口,跑了4小时,看来很稳定。上次超龙一号超级计算机硬件插电测试,用pFind烤机,随便跑跑,就报警说CPU过热。

  pNovo是第一次走这么大规模并行测试,一开始IO有点阻塞,换了OpenMPI,效果就好起来,1024核情况下加速比甚至超过pFind。

  pLink还没跑,估计比较麻烦,对于这种谱少,搜索量重的情况,负载均衡是个问题。早上开车去NIBS找yb拿pLink测试数据,他也在加班做试验。看到dmq老板也在加班赶deadline。

  前天为试验做准备的时候,发现系统里面现有的MPI库都被损坏了,不得不自己安装;另外发现集群的文件系统句柄数上限只设置为1024个,改为65536个。不禁怀疑此前使用和测试的课题组的测试认真程度,这些基础设施都有问题,能测多大规模的并行任务呢。不管别人如何,我这里不放卫星扯淡。其实吧,技术上到底是不是有货,很容易感受到,例如一起汇报的时候,工程师的气场就不一样。

  感谢各位同志们的帮助。

  最近挺累,但心情不错。上个月有一天晚上疲惫地回到家,吃完饭,抱着女儿哄她睡觉,“等你长大了,会发现世界的不完美,会郁闷,但是要相信,总可以找到值得托付的人和事”。她眼睛瞪得大大的,突然咧开嘴冲我笑。一瞬间,绷得紧紧的神经就放松下来。第二天,接到了纠结期盼已久的重要电话,总算熬过了最低潮的阶段。女儿是我的小福星。

生物数据处理和分布式并行计算

  写一点我对生物信息云计算的粗浅认识。首先,所谓云计算是一个商业模式的概念,其内涵里Saas占很大比重,网络服务代替软件产品。另一方面,技术角度的个人观点,一个Web服务的后台涉及到了大规模分布式并行的基础设施,才有资格被称为“云计算”(当然,这一定义有争议)。这篇Blog先写技术观点,后面再加关于用户和服务的讨论。

  技术上,大规模分布式并行计算被分为计算密集型和数据密集型两类。

  很多物理、地质和气象等领域的科学计算都是典型的计算密集型问题,CPU是瓶颈,涉及到外存I/O量相对不高。对这类问题的解决思路就是传统的“数据找CPU”。具体一点说,目前编程实现的工业标准是MPI,利用MPI提供的Master/Slave模式启动和调度集群上各个节点上的进程,数据传输共享常利用NFS,底层可以用硬件手段提高数据I/O性能。像Fold@home这一类志愿计算项目,往往本质上也是计算密集型的,当然软件架构有所不同。

  而Web领域的计算问题,例如搜索引擎的信息检索,主要是数据密集型问题(或者也称为IO密集型问题),这种情况下,CPU不再稀缺,海量数据的内外存交换的性能成了的焦点。对此MapReduce模式给出了很有效的解决思路,也就是所谓“CPU找数据”。具体来说,Hadoop是目前最热门的主流框架,先对查询对象进行索引,通过分布式文件系统备份到集群各处,再调度相对轻量的进程,分阶段执行查找和归并操作。

  那么有没有这样的需求:输入输出的数据很海量,其处理过程的算法复杂性又很高,很占CPU。有的,例如现代天文学需要对成T甚至成P的哈勃望远镜图片进行搜索过滤……面对这一类的问题,MapReduce模型就不一定适用,其瓶颈出现在海量数据的传输性能上(Web搜索模型里,尽管是数据密集型应用,但被检索的关键词和输出结果是相对很小的,而在很多科学应用里,往集群提交的待查询本身就是海量数据)。Secter/Sphere在其论文和技术报告里总结,它对Hadoop有明显性能优势的原因之一,就是专门开发的底层传输协议UDT比后者使用的通用TCP/IP要高效。

  对Hadoop这个特定产品来说,由于它是Java实现的,相对于C/C++有性能劣势,这个短板对CPU耗费型的应用来说很要命(这也是Secter/Sphere快的另一个原因)。有很多解决方案,例如Yahoo!开发了MPI on Hadoop,用MPI具体负责干活,Hadoop包裹在上层负责宏观调度和容错;而百度实现了Hadoop C++ Extension,把Hadoop里面的关键瓶颈部件都换成了C++的;前不久刚刚发布的Hadoop下一个版本的Roadmap里,也宣布要进行彻底重构,重点解决性能问题。

  生物信息领域,无论是基因测序还是质谱鉴定蛋白,产生出来的数据量巨大,其处理运算又吃CPU。对现有的分布式计算模型是个挑战。其实分布式计算领域,从来都是应用拖着技术走的。例如是物理学家发明了集群运算,是信息检索工业逼出了MapReduce模式。所以,生物领域的挑战也许可以反过来给计算领域一个发展的机会。

断网断电话一段时间,还有pFind的千核并行进展

  从明天开始,我在一段时间内无法上网,也无法接听电话。

  顺便说说pFind Studio进展。最近hf和xs在全力完善pBuild 2.0。稍后我们会向全球用户群发邮件,邀请大家试用最新版本。另外,于上个月在深腾7000超级计算机上刚完成的实验中,pFind千核并行取得了满意的加速比。瓶子哥正在拼搏(站好最后一班岗),在2048核处理器规模下试验更大规模的数据。

  俺们算初步解决了多修饰海量谱图的高效并行加速问题。用户可以选定15种之多的修饰,或者把母离子误差开到500Da之大,pFind百核集群都能在常规时间内完成搜索鉴定。而现有的公开报道中,世界上其他竞争对手超过32核加速效率就会变差。大言不惭地说,俺们在并行加速方面获得领先。

  但仅考虑海量谱图是不够的,如果面对超常的巨型蛋白质序列库(例如直接搜索人类基因组数据,或这两年很热的用恐龙化石中提取的蛋白质搜索全生物库的需求),主流搜素引擎目前还都无法做到有效并行。仔细分析可知,这种情况下搜索引擎的运算特点就从以计算密集型为主,转为计算密集型和I/O密集型兼有,接近Web搜索引擎。也就是说,Google MapReduce那一套有用武之地了。

pFind集群的论文正式发表

  俺和瓶子的pFind集群论文:An efficient parallelization of phosphorylated peptide and protein identification已在英文期刊RAPID COMMUNICATIONS IN MASS SPECTROMETRY (2.772)正式发表。

  论文主要论述了我们在并行加速方面的研究。实验表明:pFind搜索引擎对一个含有100个Raw文件的磷酸化公共数据集进行鉴定,在100个处理器核 上,加速比为83.7;对另一个更大的、共含有1,366,471张质谱的磷酸化数据进行鉴定,在320个核上,加速比为258.9,加速效率达到 80.9%。

  目前pFind并行版已经投入一线分析实用。俺们正在千核条件下继续研发。

pFind并行版论文接收了!

  终于收到编辑的邮件:

  It is a pleasure to accept your manuscript entitled “An efficient parallelization of phosphorylated peptide and protein identification” in its current form for publication in Rapid Communications in Mass Spectrometry.

  从08年10月开始编写pFind集群版,到如今论文发表,好长好累的一段路。这是我从最低潮逐渐挣扎出来的一年半。所以,尽管同样是反复修改30稿,同样是RCMS英文期刊,这次比07年那篇论文,份量重了好多。如今扛过来了,自信暴涨。编辑邮件说:“thanks for your patience
as we worked to improve the manuscript”;不太轻易表扬人的BOSS H邮件说:“值得钦佩。我欣赏目标高远之人”。尽管人家是客气,我照单全收,哈。

  乌龟在兔子后面慢慢爬,感谢不离不弃的后援团。头一个就是老娘。向粉丝们报告一下老太太近况:1月1日飞去海南玩,上个月去上海看京剧(上火车当天上午,去UME看了IMAX《阿凡达》),本月在玩WII游戏,去钱柜唱K,参观城市雕塑展,到798看小剧场电影,最近忙着组织朋友去欧洲旅行(本来打算去非洲看动物大迁移,被胆小的儿子苦劝阻止),还刚去了中关村逛,准备买台新电脑(屋子里已经4台了)接到液晶电视上看高清Big Bang……

论文最终稿submit了!

  刚登录到RCM网站提交了论文的第二次Revision。最终是第29稿,截图纪念。等编辑的最终决定。始终紧绷着,把身体搞垮了。瓶子也在纠结中挣扎。到今天算是告一段落,熬过去了。晚上吃西湖醋鱼,心情不错。回来路上突然有强烈的疲惫感,的确该放松放松了。

  又回来补:原本周末有些私人安排,没想到明天还得面试人。哇哇哭。

  明白三十岁是啥情况了:不会被轻易忽略,也不会被轻易优待,你就是主力、主流、主干……拥有儿童时代梦想的所谓“成人”的自由、地位和资源,但不再拥有借口。

流水帐.2009.11.11

  压力很大,有段时间没有写BLOG的心境。修养不够,乱发火,还需要磨练,还需要反省,还需要成长。

  投稿Journal of Proteome Research,被传说中的副主编不经同行评审直接拒稿。yb打电话聊天,安慰:有些人就是怀疑,认为中国大陆做不出那么出色的科研成果。其实还好,还好。宁愿相信是自己做得还不够牛。即使真涉及技术外的因素,是不是歧视,取决于你最终到底做成什么样。姚明得分超过30,巴克利就该kiss驴屁股,否则人家就是有先见之明。短暂抑郁,转投Rapid Communications in Mass Spectrometry。这次遇到的责任编辑还是06年投稿的那位,很快就进入peer review了。fy老大催着赶紧申请专利,否则文章一发表,就来不及了。

  瓶子哥在曙光5000A上测试,320核条件下,加速效率达到80%。欣慰。这段时间的交流,意识到随着分布式规模的扩大,pFind集群的特点逐渐向I/O密集型靠拢。也就是说越来越像web搜索引擎。明年要搞点MapReduce的尝试。另外购买4000块的昂贵显卡。一直在关注GPU在科学界的应用。生物制药、物理航天、天气地质、游戏娱乐……短时间出现了爆炸性的增长。计算机行业的一个有趣的特点就是,工业界常常跑在前面,搞出一些破坏性创新,给学术界造成了很大的压力。

  雪下得好大,积雪没过了鞋帮,咯吱咯吱的。大家注意身体,别H1N1。今天见到了好久没联系的jw。原来是班车11点还因为大雪堵在路上,他索性下车到我们这里交流。忙过这一阵,要去看看朋友们。当然,还是会逼着大家给pFind引擎提意见。

  在各种场合听到关于创业的讨论。创业当然主要跟钱有关,但是必须有一点钱以外的东西。Boss H说得对,一时的热情最容易消散。必须有点功利以外的理由,让自己在最痛苦时平静下来,坚持下去。

  douban.com在测试“豆瓣电台”,根据你的历史行为推荐音乐。上来就给我推荐了几首没听过的张震岳、周杰伦和涅磐。查了查,豆瓣在招聘“算法和数据挖掘专家”。应聘要求包括:“热爱探索和钻研,相信算法能够改变人们的生活;极佳的逻辑分析能力和学习能力,善于应对各种智力挑战;熟悉海量数据处理和挖掘的基本算法, 或有高性能科学计算的相关经验”。

pFind并行版定型

  里程碑。pFind并行版代码冻结,按期到站。今天彻底休息了一下,睡了一整天,半夜回魂,上网,来随便敲些文字,放松,没逻辑。(瓶子哥被我折磨得快断气了,所以deadline一完,就逃出北京城,找某人疗伤去了)

  最近一个月,除了并行版的研发工作,忽略了所有其他。活在自己的气场里,感觉非常独特。过山车:没进展时,回家的轻轨就显得特别久,疲惫沮丧,手指尖都懒得动;一旦有突破,又好像成了世界之王。

  接下来,做PPT、写技术报告、论文投稿、还想申请发明专利……停,今天不想这些。

  感谢CCTV、感谢MTV……特别赞一下新人,扛起搜索引擎的日常维护,让我省了不少心。组里工程水平已上轨道。每周定期review SVN提交代码,我可改的地方越来越少。

  提到这个,想起BOSS H以前说:“你的最大本事就是那些code style(编程风格)和design patten(设计模式)吧”。这话对也不对,其实关键在于如何培训和实行,让新人遵守规范,习惯双人编程,学会制定Todo List,懂得倾听,整个团队用统一的思路进行编码和架构。

  反过来,也夸夸自己。pFind Studio有十几万行C++,几十个模块。但进组几个月的新人就可以独立调试细节,重构全局流程。干活的人自然是能力出众,也多少显出一点儿我这架构师的本事,哈。

ACE和ICE

  为pFind集群版本的开发做准备,技术调研。

  买了本The ACE Programmer’s Guide: Practical Design Patterns for Network and Systems Programming中文版。Google到Distributed Programming with Ice中文电子版。两本书都是马维达翻译的。翻箱倒柜,找到2004年9月的《程序员》,有ICE的系列专题。

  另外看了看SWT的文档。pFind会向Linux移植。

Google的算法

  开始设计pFind系统的集群版本。今天在读Google的论文:MapReduce: Simplified Data Processing on Large Clusters。之前推荐过The Google File SystemWeb Search for a Planet: The Google Cluster Architecture两篇论文。

  Google的强大不只源于PageRank算法,用普通PC组成的高效集群也是一个杀手锏。李开复就提到过,MapReduce算法和GFS架构才是Google真正的核心竞争力。

  digg上热炒Google购买Orion算法的的事。引出一大堆各式各样的八卦议论,比如有关这个博士生的国籍。有个小伙这么写“After all Israel is just America III. Canada is America II.”,哈哈。

  有趣的是,现在,北京时间2006年4月10日22:30分,用Google Web Search搜索这个新闻,可看的内容很少,但用Google Blog Search搜索,就能找到世界各地用各种语言写的评论,很多都是20分钟前刚写的。