说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

Hadoop+GPU强强联手的性能探索

HTML文档下载 WORD文档下载 PDF文档下载
Hadoop并行处理可以成倍地提高性能,GPU也日益成为计算任务的重要分担者,Altoros Systems研发团队一直致力于探索Hadoop+GPU的可能性,以及在实际的大规模系统中的实现,这篇文章就是他们的部分研究成果。

Hadoop并行处理可以成倍地提高性能。现在的问题是如果将一部分计算工作从CPU迁移到GPU会怎么样?能否更快理论上,这些处理如果经过了并行计算的优化,在GPU上执行会比CPU快50-100倍。 作为大数据专家和PaaS的推动者,Altoros Systems研发团队一直致力于探索Hadoop+GPU的可能性,以及在实际的大规模系统中的实现,这篇文章就是他们的部分研究成果。作者 Vladimir Starostenkov是Altoros Systems的资深研发工程师,他在实现复杂软件架构( 包括数据密集型系统和Hadoop驱动的应用程序)方面有五年经验,而且 对人工智能和机器学习算法也很感兴趣。

技术现状:

多年来,有很多将Hadoop或MapReduce应用到GPU的科研项目。 Mars可能是第一个成功的GPU的MapReduce框架。采用Mars技术,分析WEB数据(搜索和日志)和处理WEB文档的性能提高了1.5-1.6倍。 根据Mars的基本原理,很多科研机构都开发了类似的工具,提高自己数据密集型系统的性能。相关案例包括 分子动力学、数学建模(如Monte Carlo)、基于块的 矩阵乘法、财务分析、图像处理等。

还有针对网格计算的 BOING系统,它是一个快速发展、志愿者驱动的中间件系统。尽管没有使用Hadoop,BOINC已经成为许多科研项目加速的基础。例如, GPUGRID是一个基于BOINC的GPU和分布式计算的项目,它通过执行分子模拟,帮助我们了解蛋白质在健康和疾病情况下的不同作用。多数关于医药、物理、数学、生物等的 BOINC项目也可以使用Hadoop+GPU技术。

因此,使用GPU加速并行计算系统的需求是存在的。这些机构会投资GPU的超级计算机或开发自己的解决方案。硬件厂商,如Cray,已经发布了配置GPU和预装了Hadoop的机器。Amazon也推出了 EMR(Amazon Elastic MapReduce),用户可以在其配置了GPU的服务器上使用Hadoop。

超级计算机性能很高,但是成本达数百万美元;Amazon EMR也仅适用于延续几个月的项目。对于一些更大的科研项目(两到三年),投资自己的硬件更划算。即使在Hadoop集群内使用GPU能提高计算速度,数据传输也会造成一定的性能瓶颈。以下会详细介绍相关问题。

工作原理

数据处理过程中,HDD、DRAM、CPU和GPU必然会有数据交换。下图显示了CPU和GPU共同执行计算时,数据的传输。


图:数据处理时,各组件之间的数据交换

  • 箭头A 数据从HDD传输到DRAM(CPU+GPU计算的初始步骤)
  • 箭头B CPU处理数据(数据流:DRAM->chipset->CPU)
  • 箭头C GPU处理数据(数据流:DRAM->chipset->CPU->chipset->GPU->GDRAM->GPU)

完成任何任务所需的时间总量包括:

  • CPU或GPU进行计算所需的时间
  • 数据在各个组件间传输所需的时间

根据Tom’s HARDWARE 2012年的CPU图表,CPU的平均性能在15到130GFLOPS之间,而Nvidia GPU的性能范围在100到3000+ GFLOPS。这些都是统计值,而且很大程度上取决于任务的类型和算法。无论如何,在某些情况下,一个GPU可以使节点速度加快5至25倍。一些开发者声称,如果你的集群包括多个节点,性能可以提高50到200倍。例如,MITHRA项目达到了254倍的性能提升。

性能瓶颈:

那么,GPU对数据传输会有什么影响?不同类型的硬件传输数据的速率不同,超级计算机已经在GPU上做过相关优化,一个普通的计算机或服务器在数据传输时可能会慢得多。 通常在一个CPU和芯片集数据传输速率在10到20GBps之间(图中的Y点),GPU和DRAM间的数据交换速率在1到10GBps之间(图中的X点)。虽然一些系统速率可达10GBps(PCI-E v3),大部分标准配置的GDRAM和DRAM间数据流速率是1GBps。(建议在真实的硬件环境中来测量实际值,因为CPU内存带宽[X和Y]以及对应的数据传输速率[C和B]可能差不多也可能相差10倍)。

虽然GPU提供了更快的计算能力,GPU内存和CPU内存间的数据传输(X点)却带来了性能瓶颈。因此,对于每一个特定的项目,要实际测量消耗在GPU上的数据传输时间(箭头C)以及GPU加速节省的时间。因此,最好的方法是根据一个小集群的实际性能估计更大规模系统的运行情况。

由于数据传输速率可能相当慢,理想的情况是相比执行计算的数目,每个GPU输入/输出数据的量比较小。切记:第一,任务类型要和GPU的能力相匹配,第二任务可以被Hadoop分割为并行独立的子流程。 复杂的数学公式计算(例如矩阵乘法),大量随机值的生成,类似的科学建模任务或其它通用的GPU应用程序都属于这种任务。

可用的技术

  1. JCUDA:JCUDA项目为Nvidia CUDA提供了Java绑定和相关的库,如JCublas、JCusparse(一个矩阵的工作库)、JCufft(通用信号处理的Java绑定)、JCurand(GPU产生随机数的库)等等。但 它只适用于Nvidia GPU。
  2. Java Aparapi。Aparapi在运行时将Java字节码转换为OpenCL,并在GPU上执行。所有的Hadoop+GPU计算系统中,Aparapi和OpenCL的前景最被看好。Aparapi由AMDJava实验室开发,2011年开放源代码,在AMD Fusion开发者峰会的官网上可以看到Aparapi的一些实际应用。OpenCL是一个开源的、跨平台的标准,大量硬件厂商都支持这个标准,并且可以为CPU和GPU编写相同的代码基础。如果一台机器上没有GPU,OpenCL会支持CPU。
  3. 创建访问GPU的本地代码。访问GPU本地代码进行复杂的数学计算,要比使用绑定和连接器性能高很多,但是,如果你需要在尽可能短的时间内提供一个解决方案,就要用类似Aparapi的框架。然后,如果你对它的性能不满意,可以将部分或整个代码改写为本地代码。可以使用C语言的API(使用Nvidia CUDA或OpenCL)创建本地代码,允许Hadoop通过JNA(如果是Java应用程序)或Hadoop Streaming(如果是C语言应用程序)使用GPU。

GPU-Hadoop框架

也可以尝试定制的GPU-Hadoop框架,这个框架启动于Mars之后,包括Grex、Panda、C-MR、GPMR、Shredder、SteamMR等。但是GPU-Hadoop多用于特定的科研项目,并且不再提供支持了,你甚至很难将Monte Carlo模拟框架应用于一个以其它算法为基础的生物信息项目。

处理器技术也在不断发展。在Sony PlayStation 4中出现了革命性的新框架、Adapteva的多核微处理器、ARM的Mali GPU等等。Adapteva和Mali GPU都将兼容OpenCL。

Intel还推出了使用OpenCL的Xeon Phi协同处理器,这是一个60核的协同处理器,架构类似于X86,支持PCI-E标准。双倍精度计算时性能可达1TFLOPS,能耗仅为300Watt。目前最快的超级计算机天河-2就使用了该协同处理器。

很难说以上哪种框架会在高性能和分布式计算领域成为主流。随着它们的不断改善,我们对于大数据处理的理解可能也会改变。(编译:周小璐/审校:仲浩)

原文链接: Hadoop + GPU: Boost performance of your big data project by 50x-200x?

欢迎关注 @CSDN云计算微博,了解更多云信息。 

BDE的替代品大全(按应用类型分)-Delphi资料 bde的组态文件-Delphi资料 DBGrid中的下拉列表和查找字段编程方法-Delphi资料 Delphi 3.0 中 连 接 数 据 库 的 三 种 方 式 Delphi 3.0中连接数据库的三种方式 Delphi 4中开发数据库控件的方法 Delphi:MIDAS中动态强制约束编程 DELPHI 中 自 适 应表 单 的 实 现 Delphi3数据库编程中的查找字段 Delphi3中 连 接 数 据 库 的 三 种 方 法 Delphi编程实现3DS动画的播放 Delphi访问ODBC数据库 Delphi如何实现在一个Dbgrid中显示多数据库 Delphi筛选数据 Delphi数据集过滤技巧 Delphi数据库应用程序开发中图像数据 Delphi下的ADO Delphi在网络数据库中的应用 Delphi中多库关联查询 Delphi中建表 Delphi中数据文件路径的管理 ODBC中的同步与异步执行模式-Delphi资料 SQL编程常见问题-Delphi资料 第11章 中级SQL-Delphi资料 第10章 SQL基础-Delphi资料 SQL语句中的删除和改变-Delphi资料 TDataLink类别的说明-Delphi资料 TDBGrid控件中对多个记录的处理-Delphi资料 安装BDE需要的东东-Delphi资料 保存DBGrid中栏的字段名及尺寸-Delphi资料 动态生成定义数据库-Delphi资料 ******了解WaitCommEvent函数的请帮帮忙?***** 请问前辈哪里有PB 8初学的书籍下载,多谢 100分求助关于几个结构相同的DBF表合并的问题 送大家一礼物,得到ie版本与操作系统的function 从SUN收购事件看IT业的发展。 安装office2k的问题 一个update语句的问题。 jsp和mysql的问题小弟拜求再线等 请大家介绍几种检测内存溢出的软件,谢谢!(各种系统下的都行) 这是如何做的 我发的贴子没人来看呀,解决了,我把自己的分全给你!********** mysql远程连接的问题 为什么国内域名比国际的还贵呢? 是否继续当中型软件公司做程序员还是到小公司独当一面? vc7中的CDHtmlDialog值得用吗?请大家来讨论一下! 为什么国内域名比国际的还贵呢? 急急急,我又碰到大麻烦了!~? 在DOS环境下用什么命令来查看非文本文件内容,如在UNIX下的cat命令的功能,在线急等。。。 ★在软件中提供了自定义热键的功能,但是我如何判断该热键已被占用了呢??? 羽毛球爱好者,请进 入门:关于验证字已失效的问题 blob字段如何存取? 一个编程论坛 那位能给我一个qq号呀,我急用 liangdiantech@163.com 羽毛球爱好者,请进 请问哪里有Microsoft Application Center Test的相关资料?多谢 非常简单的问题!!! 轻松心态,远离非典! 在自己的机器上打不开联接 DataModule的问题(菜鸟级) 怎么把表中的列约束为唯一的? 一个编程论坛 从没见过的问题!!!晕了!! 安装问题,请指教! C++的应用是什么意思呢? 得到上传文件大小的问题,解决高分相送!! R6中的问题!高手请进!高分求救! 一个电子书籍下载和编程论坛 请问怎么在vb中调用纯c接口的api并实现多线程 如何在一个很大的文件中删除一段数据?不用拷贝的方法 the C++ programing language里的两个小问题!!! 找在没行带checkbutton的listbox控件类 我可怜的QQ被盗了~~有什么密码破译软件取回QQ的密码吗 VARIANT结构中,如何通过pvarVal指针来获得串口传来的二进制流?? 天啊,这就是《程序员》? 编译java程序需要哪些工具,菜鸟提问. how to use *.pak?? ★在数据窗口中如何同时实现多行操作,如update或delete多行。 请问oracle8i的下载问题! 请问MSDN.net 中文版光盘出了吗??????????????????????? 关于STRING的问题 新老警务联络官交接 南非侨界寄予厚望各国“吃货”探讨舌尖上的文化 亚洲食接个孩子的功夫 她停在路边的奥迪Q5钱塘江边一工地挖淤泥挖出160多颗炮马云:“闯”就是拆开门,让马儿欢跑萧山机场航班今起开通去大理、常德、拉北京张必清违建假山长廊仍在 称月底拆湖南官员“限宴令”前突击办酒宴 有人日本近海7级地震核电站无异常 测得最中国海军核潜艇部队首次揭秘义乌一小区凌晨发生爆炸 警方侦查后定秋高气爽节奏持续 下一场雨很可能要等浙江艺术将走进卢浮宫 参展作品昨起在国内经济合作洽谈会上 杭州又赚得个盆大腕心声:做让人羡慕的浙商 做让人尊英国调查:1/6妻子不让丈夫看到自己国际新闻早报:捷克议会提前大选结束日本一男子疑因过劳自杀 家属要求赔偿各国宇航员吁国际社会合作防范小行星撞媒体称世贸组织认定美日欧胜诉中国稀土美国人怎么看转基因欧安组织代表已抵达马航MH17坠毁现中国网事:马航MH17航班坠毁一日全全国妇联:发挥维护新疆社会稳定实现长国内首个cosplay动漫航班开飞广西电网发布红色预警 启动Ⅰ级响应防宁铁推“延期退票”人性化退票措施应对广西启动水文测报Ⅰ级应急响应防御“威“威马逊“登陆带来严重风雨天气 广西谁该紧盯“虚假大学排行榜”?“广西特产销全国“活动稳步推进 将建开展批评与自我批评 莫把“点评”变““威马逊”已加强为超强台风 将严重影“黑诊所转正”路难走 浙江探索打击无男子向越南籍女子求婚遭拒 杀死对方自建设美丽乡村 走实群众路线公车改革也是“治治病”的题中之义支教女孩高岑岑用爱和奉献谱写青春之歌中国网事:马航MH17航班坠毁一日全澳总理阿博特会见范长龙男篮顾问姚明随队出征 现身替补席观战目击者称马航MH17搜索行动仍未开始
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘