Monthly Archives: December 2011

列书单.2011.12.31

  最近买了松本行弘的《松本行弘的程序世界》,克莱·舍基的《认知盈余》,米达斯·德克思的《健身狂想曲》,阿德里安·范迪斯的《遇上一只狗》,安妮宝贝的《大方2》

        

  最近看的电影包括《空房间》《我们来自未来2》《源代码》《失恋33天》

      

离职

  大家都知道了,所以就提前在BLOG上写一下。

  我将于今年12月底从中科院计算所生物信息研究组离职。到阿里云计算公司任产品经理。

  2003年5月,人脸识别课题组招聘软件工程师。当时正值非典,面试当天只有我一个人到场,其他应聘者都被隔离了。于是幸运地得到了这份工作。此后2005年6月调入生物信息研究组负责pFind引擎的产品和架构。算起来,在计算所服务了8年多,做pFind超过了6年。这期间,读取了在职学位,发表了两篇SCI论文,申请了若干发明专利、软件著作权和商标,还成了计算所内部培训师,买了房,买了车,结婚生子,交了一大堆朋友,由生涩的毛头小伙儿变成了三十岁大叔。

  我进入pFind组的时候,pFind还是一个学术demo,BOSS H对我的要求很明确:让它能真正在生物研究一线用起来。经过pFind Team这些年的努力,pFind Studio共发布6个重要版本,累计开发20万以上C++代码和10万行的python或Java代码,申请10项发明专利。到2011年年初,pFind引擎已经在国内外63所大学、研究机构和公司安装,其中包括Duke University, MIT, NIH, UCSF, LICR, Thermo等。在此基础上构建了“哪吒”云计算平台,为多家生物研究机构提供在线服务。在pFind组的大多数日子里,我都是“跳着踢踏舞去上班”的。不是所有人都能把兴趣作为职业,拥有pFind这样一个平台去施展才干,我对此心怀感激。

  另一方面,从2000年本科时代参加创业大赛接触风投开始,始终怀有创业理想。很早前就在pFind团队里明言:“如果pFind失去了创业可能,我会在第一时间离开”。最近两年pFind在学术领域进展顺利,我与BOSS H进行了坦诚交流。由于pFind在接下来几年内肯定不会创办公司,所以我选择重回工业界。

  我可能在阿里云参与研发离线计算平台,和科学计算有关联。所以还有机会与生物信息的朋友们继续合作。

  工作地点还在北京,手机和私人邮箱等联系方式都不变。祝大家新年快乐。我会继续写BLOG。

Do it yourself

  正在指导zk和wl在超龙一号超级计算机上安装配置pFind集群版。打算在960核情况下做一些加速比试验。和上次1024核试验很类似。很遗憾不能在龙芯CPU的节点上玩玩。

  哪吒系统在集群上全流程各环节并行。我一开始指望用点python有关的分布式并行框架,最后还是DIY。小马过河,有些地方挺困难(例如对虚拟机的管理和通讯),但总体来看,其实比想象简单。

  前几天提到,新版pFind核心使用了二级离子索引,但引入HBase不顺利。又发了些邮件开了些会,终于下定决心对查询部分推倒重来,抛开Hadoop等现有框架从头实现。方案确定,大家恍然大悟:原本就该这样做,花了半年证明HBase不行啊。

  上次BLOG最后写:“Java和C#逐渐不那么招人喜欢”,还链接了“Why do some people hate Java?"“Why we don’t hire .NET programmers”两篇文字,引来不少邮件和评论。俺的不少好友是Java和C#高手,并不想挑起语言口水战。那段文字也只是描述现象。具体从风格而言,这两种语言都是以“减少新手犯愚蠢错误”作为第一原则的,对初学者相当友好。不过也有点像乐高玩具,常规情况下简单易用,但面对更高的要求时(运行效率、开发效率等等方面),就不得不去了解大量水面以下的细节。相比起来,开源界的技术栈常常是哭着进去笑着出来。

探访42区

  一直想去看看教主的老巢。昨天他邀请老同事、豆瓣算法组的大牛蒋长生同学指导下一版的推荐功能的开发。俺就借着旁听大牛技术讲座的机会探访42qu办公现场。

  描述一下看到的吧:屏幕、键盘、鼠标、饮料、零食、睡床、沙发、桌上足球台……杂乱地混在一起。大概前一晚编程熬夜,到的时候,教主还缩在沙发上的被窝里(长生就这样直接开始讲ppt了)。几个年轻人给我演示了准备上线的新版界面。真谛还让我看了传说中的god.42qu.com,网站的管理仪表板。真是俺梦寐以求的车库创业场景呀。

  推荐算法现在是创业圈的热点。每次公开聚会(例如这个这个这个),参加的人都很多。这种小范围交流,可以放大胆多问些外行的傻问题。具体内容不多说了,工业应用更多采用经典算法,关键是各种细节和平衡取舍。

  42qu很缺人,缺靠谱的python程序员。有创业热情的资深程序员,或者想找实习机会的同学,可以考虑考虑。不由想起自己大一去创业公司打工(那时候只有17个人的小软件公司,后来创业板上市了),这段经历对我而言非常重要。

从卫生巾说到生物云计算

  写一些技术感想,意识流,没中心,想到哪里写到哪里。

  12月12日,淘宝又一次大促销。一天时间不到,卖出去了三亿片苏菲。这是一个很恐怖的数字。随着淘宝占全中国零售额的比例一路超过5%,电子商务已经开始影响传统主体经济。

  体量足够大,就有数据可供挖掘了。

  例子一,去年到上海参加软件开发SD2.0大会,淘宝的数据可视化讲座,给出了女性内衣的尺码数据统计,平均值从前几年的A罩,迅速增大,目前居然达到了C罩杯。因此得到两个结论:<1>中国人的营养水平和肥胖率不断上升,<2>上淘宝买东西的女性年龄在增大,已经越过了婚育年龄均值点。

  例子二,2010年温总理去淘宝视察,马云的报告里说,由于阿里巴巴有真实的外贸订单数据,淘宝有真实的国内零售数据,所以可以据此预测未来半年的全国经济走势。那时候马云PPT里的预测,现在印证起来,相当准确。

  屁股决定上层建筑,有了数据金矿挖掘的利益驱动,相关的技术投资就会被重视,然后就构建出新的技术平台和商业模式来。Amazon的营业收入中,越来越大的比例源于计算和存储能力的对外租用,也就是云计算。它已经不知不觉变成了云计算市场的领袖,甚至威胁到了伟大的Google。

  回来再说我们pFind的事情。最近半年多lyz美女一直在开发pFind@hadoop。此前也讨论过生物信息云计算。

  首先用MapReduce创建离子索引还挺顺利,然后就开始写查询这一块。方案是利用HBase进行存储,利用Thrift进行结构化和远程调用传输。但性能一直是问题,hchi用C++写的单进程处理程序(把数据索引分块,逐个载入查询),居然和Hadoop版的64核集群的速度差不多。进行了大量的优化,并请教了在搜索引擎公司的Hadoop牛人,依然达不到期望。

  在很小的质谱数据集上,pFind就要发起接近百万次的离子查询,这种规模的并发,已经远远超出了HBase常见的应用方式。于是反思方案本身。HBase的特点是支持随机写入,引入了并发事务性管理机制。因此,它更合适需要增删改的online实时处理,其替代对象是传统的SQL关系型数据库。

  而对于全文搜索类的应用场景而言,其预计算索引一般只需要顺序批量写入,不必支持随机改和删除。所以可以直接把索引存入HDFS,自己实现查询。由于不用支持随机写入和删除。也就是几千行代码而已。最新2011.12期的《程序员》刊登了推特Nathan Marz的文章《如何打败CAP定理》,他们的方案是采用Elephant和Voldemort read-only这一类可以直接从Hadoop MapReduce中导出key/value的数据库。这些数据库都不支持随机写入,简洁使其鲁棒性特别好。这种方式不能更新数据,每次都需要全局重做。但生物数据库对实时更新并没有太高要求。

  (补:Guancheng大虾提示说,把Hadoop实现的版本跑在512甚至1024核上会不会比C++单线程版本快?把input size增加几倍的话Hadoop版本的Scalability会不会更好?)

  再记录一件事。大红大紫的redis的维护者刚刚拒绝了微软提交的补丁。补丁的目的是让redis可以在Windows系统下运行。拒绝的原因是Linux completely won as a platform to deploy software(作为工作软件的部署平台,Linux已经完胜win32)。维护者认为应该把精力集中在真正重要的问题上。

  这一期《程序员》杂志的企业软件专题里面,主编表达了与此相关的一些观点。最近五年以来,Java和C#这些语言逐渐不那么招人喜欢(看这个链接这个链接)。企业级开发、Windows开发的形象变得过时。像我这种有点年纪的程序员,难免总会有点三十年水流东三十年水流西的感慨。

  云计算是现在最热的buzzwords,小心,IT领域的大词,总会很快过时。

列书单.2011.12.05

  最近三四个月公私两边事情都很多,几乎没去过书店,也不太有整块时间读书。零零散散买到了梁文道的《访问》,安东尼·刘易斯的《批评官员的尺度》,Michael Milton的《深入浅出数据分析》,Paul Graham的《黑客与画家》,黄仁宇的《赫逊河畔谈中国历史》,保罗.福塞尔的《格调》

    
    

  最后这本《格调》是昨天到亲戚家做客,一口气看完的。书很老了,老婆说她是大学本科的时候看的,我是2005年通过天涯上北纬周公子和易烨卿的论战得知这本书的。

  书里用相当辛辣的语气讽刺了上层社会的冷漠麻木,中产阶级的势利虚荣,贫民阶层的粗鲁低俗。其实作者真正意思是:顶层和底层的人都不太关心别人怎么看自己,只有中产阶级特别装13,买他这本书来读的一定就是中产阶级,您读了也没用,还是爬不上去……嗯,颇有些请君入瓮的意思。

  悲剧的是,网上评论来看,似乎还真有不少人傻乎乎把这本书当时尚参考手册用了。