7C00.ME/houmu 2014-11-10

HPC China 2014 参会记录

题记:上周参加了HPC China 2014,感觉还是小有收获,现把我上交的参会报告的部分内容贴出来,以飨读者。

第一天参加了“大数据系统评测与优化研究案例”论坛。

第一个报告是Ohio State University的Panda教授的《Accelerating Big Data Processing on Modern HPC Clusters》,报告说目前流行的大数据计算框架(如Hadoop、Spark等)都是采用SOCKET编程来完成集群节点间的通信,而SOCKET通信的效率差,所以在实际应用中网络通信很容易成为系统性能的主要瓶颈。Panda的做法是,改写Hadoop、Spark等框架的网络通信层,使用效率更高的InfiniBand Verbs通信方式取代Sockets。测试结果表明,他们的做法大幅提高了系统的性能。在Panda的报告中还提到了RDMA(Remote Direct Memory Access)的技术。这是为了克服在传统TCP/IP协议网络中无法解决的问题而提出的一套比较新的技术,它包括了一系列新的标准、协议、硬件接口和软件。RDMA值得关注!

第二个报告是中科院计算所的詹剑锋的《大数据基准测试程序的挑战和进展》,他首先阐述了为big data做benchmark的意义和困难,然后介绍了下他们目前在做的工作BigDataBench (http://prof.ict.ac.cn/BigDataBench/),一个面向大数据的通用benchmark软件套件。BigDataBench的主要困难是如何做到通用性,詹剑锋等人为此做了很多工作,BigDataBench也仍然还在逐渐完善中。为程序设计benchmark是软件在开发过程中必不可少的,对学术研究而言benchmark的结果也能使得研究结果更有说服力。如果条件允许的话,我考虑在毕业设计论文中使用BigDataBench来进行benchmark测试。

第三个报告是中科院计算所的查礼的《大数据高性能查询统计技术及应用》,主要讲的是为HBase设计更好的索引来提高HBase的查询效率。第4个报告是新加坡南洋理工大学何丙胜的《When HPC Meets Big Data: Emerging HPC Technologies for Real-Time Data Analystics》,主要讲的内容是利用GPU加速计算实现大数据的实时数据分析。最后一个报告是柏睿数据科技公司的刘睿民的《海量并行(MPP)内存数据仓库的发展阶段及实现探讨》。后面这几个报告,由于我在HBase、GPU编程等方面的了解甚少,没有获得太多有价值的信息。

大数据系统评测与优化论坛由中科院计算所举办,从2013年开始已经举办过多场活动,大多作为一些会议的网站子单元进行。论坛网站地址是 http://prof.ict.ac.cn/bpoe/ 。这个论坛值得关注!

第二天参加了“大数据”论坛。

第一个报告是哈尔滨工业大学的李建中的《大数据计算的研究问题和部分解》,对大数据计算可能遇到的问题和解决办法进行了比较系统性的总结,强调了部分解的概念,不过(或许是我的理解水平的缘故)我感觉没有听出实质性的内容。

第二个报告是清华大学的陈文光的《大规模社交网络的交互式分析系统与初步结果》。陈文光介绍他们做了一套针对微博数据的社交网络分析系统(Acolyte),支持常见的图计算算法,且性能很好。陈文光他们的工作有两个地方值得学习和借鉴。其一,采用内存计算而非分布式来加速计算。和Giraph等分布式多机计算系统不同,acolyte用的是单个服务器。大图(Big Graph)问题也是大数据问题中的一种常见类型,其计算困难主要在于数据图本身的复杂性(即点和边的复杂关系),而数据规模相对而言对计算困难的影响较小。Acolyte处理的数据规模对约200GB,而其计算用的服务器内存有2T,把数据完全加载到内存中是绰绰有余了。通过利用内存计算,Acolyte性能比其他社交网络分析系统要快很多。现在越来越多的数据处理程序都通过大量使用内存来提高性能并取得了不错的结果,比如Spark、MongoDB等。这类实践告诉我们以后也可以更加大胆的使用内存来提高系统的性能。其二是,Acolyte使用C++编写核心代码来保证运行速度,而为了提高系统的交互性(毕竟要做一个交互式分析系统)则使用了Python实现用户接口,为了方便地同时使用两种语言编程,使用了SWIG的工具。SWIG(http://www.swig.org)可以方便的实现多语言编程,支持的语言包括C/C++、Python、Java、R等,这套工具先记住,以后或许用得着。

第三个报告是《图像视频大数据及大规模视觉计算》,第四个报告是《HPC ROI(Return of Investment) from perspective of scientific big-data》,第五个报告是《SKA科学数据处理的挑战与对策》,主要讨论的是图像处理、工程管理、天文数据处理等问题,由于所涉及的学科我了解甚少,没有获得太多有价值的信息。

最后一个演讲是Intel大数据研究中心首席架构师戴金权的《基于Apache Spark的大规模分布式机器学习和图计算平台》,主要是对Spark和GraphX的基础性的介绍,大部分内容我是知道的。不过,我在会后,和戴先生进行简单的交流,提了几个问题。第一个问题:Intel在Spark项目投入很大,贡献了很多代码,这么做的动因是什么?回答:Intel在许多开源项目上都有巨大的投入,比如Linux内核(Intel是第二大代码贡献者),比如Hadoop项目及其子项目。Intel对Hadoop和Spark等项目的投入,是因为Intel的合作伙伴们在用这些软件。第二个问题:Intel在Spark的研发上是怎样分工的,各组件都是由多少人在负责?回答:Intel在全球有超过一百人的团队在做Spark等大数据项目,而在上海紫竹园区聚集了大部分的研发工程师。戴所在的团队主要在做Spark Streaming的相关工作。(没有回答具体的分工。)第三个问题:怎么看SparkR这个项目?回答:Intel内部也还在评估这个项目,现在的看法是这个项目还比较初级。

最后一天参加论文交流,上台念了PPT :)