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

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云计算微博,了解更多云信息。 

Intel收购Basis Science,欲拓展可穿戴设备市场 Facebook以20亿美元收购Oculus:虚拟现实将是未来计算平台又一大事件 基于NodeJS的14款Web框架 Hadoop导航:版本、生态圈及MapReduce模型 把黑匣子送上“云” 失联困境能否不再 看看全球十大电信巨头的大数据玩法 尹绪森:打开圈子拥抱变化,谈Spark玩家的自我修养 从Healthbook看苹果将如何颠覆移动医疗和健身追踪 Google可穿戴:详解Android Wear的十大功能 初创企业非技术人员的迷思 【OSTC讲师专访】王兴博:Genesis-3D,3D开源游戏引擎 Facebook发布开源项目Tweaks,让iOS应用开发更加便捷 移动开发创业团队再下一城!UCloud与飞流战略合作 【走进支付宝】即将开场,问题大征集! 开发者薪资调查:半数开发者工作十年方可迎来好“薪”情 沟通更畅快 HipChat推出1对1视频和屏幕共享功能 AMD宣布支持DirectX 12 为游戏开发者带来更多福利 开发者薪资调查:2013年哪种编程语言最赚钱? 苹果挖墙脚未果,黑莓高管跳槽被起诉 不看不知道:六个超大规模Hadoop部署案例 豌豆荚发布应用内搜索技术协议 兼容App Indexing Oculus 21岁鬼才创始人:收购不等于改变 Unite China 2014课程解析:Unity教育行业专场免费开放 Instagram技术窥探,助你打造响应式App 切勿妄谈Hadoop,以及4个数据管道打造实践 一周消息树:雨果·巴拉与小米的那些事儿 《近匠》轻邮联合创始人Wesley:移动App要有撼动企业服务的野心 Facebook开源MySQL分支,谷歌、LinkedIn、Twitter等大拿捧场 淘宝明风:基于Graphx的图计算实践分享 调查显示:2015年Android将统治全球操作系统 初创公司最爱使用的那些开发工具 如果大家有问题告诉我(anjie@zj.soim.com)一起讨论吗 想跟我交朋友anjie@zj.soim.com tc++3.0如何编写读鼠标程序(急) 都进来看看,程序员的下场... 各位高手,小弟问一个傻问题:怎么在播放一个AVI的时候用自定风格的滑块控制? 我上次在CSDN 上看到有人发贴子说自己写操作系统,我现在有个朋友也在写,想和他联系,但是我现在找不到那个贴子了, 有谁记得那个人的名字或贴子的位置请说.谢谢. 求助:打开网上邻居很慢为什么? 问一个蠢问题:控件何时获得焦点 请问一下哪里再收购软件呢? 请问一下在哪里可以找到收购软件的公司呢? 想作一个DOS程序,实现多台电脑间通过网卡传输文件. 辞职信 application.initialize完成了什么 高手来帮忙啊~ 看看java的魅力 如何通过自制程序的编辑框向现有一般应用程序编辑框传送内容? 窗口执行顺序问题,请多帮助,谢谢 如何自动取得server的日期和时间 怎样让文件指针指到文件末尾,必须skipline一行一行跳吗? 我想在菜单前添加图标,使用Bitmap属性但是为何只能载入*.bmp文件而不能使用*.ico文件,我只有*.ico的图标,请问该如何解决。 有新建一个文本文件并给其命名的函数吗,怎么用 我还真不懂呀? 这个COLTYPE是怎么用的呀?你说它怎么得到表中字段的类型呀? 有关存储器(ram,rom)的编址问题。以及32位或更多位芯片的问题。 一些汇编问题。想来问bcb的兄弟{bcb里好象有不少汇编高手} 救命:在安装了sco openserver之后,系统不能启动,先前安装的win98和win2k也不能。 请问如何进行URL译码??? 请问怎样截取一个string中的一段? 请问delphi做的exe最小可以到多少?怎么做? 我想请问一下WINGATE的具体怎样在WIN2000服务器版中进行设置。 ASP的同志们,能不能留一下QQ号码? 请问何处有破解ACCESS2000的程序或源代码呢? 请问要在TEdit.text组件文本串中找出当前光标在第几个字符上怎么办?谢谢! 请问关于dbImage控件的使用方法? 关于HDC及双缓冲的问题? xxxbird(*说你行,你就行,不行也行*),来领“我遇到几个怪问题。。。。。。”中的分 为什么ASP没法向SQL Server中写入数据?代码什么地方错了 大家帮忙找一下,找到我给50分 exe 捆绑机怎么做? 大家谈谈JSP的设计模式怎末了?我有个题目,设计好的大大有奖! 浏览器下的那个进度条是怎么弄出来的? C中的typedef struct和C++中的 struct有何区别? C中的typedef struct和C++中的 struct有 什么区别?谢谢 lastlove(本栏位广告招商中,欢迎投放!),jjdelphi(我真的不懂),jinesc(杂牌军)-(人民军队为人民) 开利息了 一个网页的原代码可以保存到字符串里吗? 有没有各种C++编译器都支持的字符串类型或字符串类? <@> 关于 ProcessMessages 一个想不如大家想,请各位帮忙想个主页的名字吧。 女友23岁,她会选择前途还是爱情?-----一个VB程序员的痛苦 如何实现应用程序与动态库通信??? ----myxfang----偶来贷款了!!!--- myxfang(大富翁银行~业务员~~),都给你了,我可把赌注都压到你身上了 一个半径10厘米的半圆形花坛.他的周长是几厘米,面积是几平方厘米 一个圆的半径增加3厘米,直径增加________厘米,周长增加________厘米 如右下图,已知三角形ABC面积是12平方厘米,求阴影部分的面积还有,我是小学生,麻烦写能看得懂的, 一个半圆形周长是10.28厘米,这个半圆形的面积是多少? 2.一个圆的半径增加2厘米,它的周长增加()厘米,面积增加()平方厘米.3.大小两个圆的半径比是2:3,面积差是30平方厘米,求两个圆的面积各是多少?4.已知一个圆的面积是62.8平方厘米,求跟它 如图,三角形abc面积是70平方厘米,BD=CD=6厘米,角C=45°.阴影部分面积多少? 一个圆的半径扩大到原来的三倍他的直径扩大到原来的【 】倍周长扩大到原来的【 】倍面积扩大到原来的【 】 一个圆的半径扩大3倍,周长扩大几倍,面积扩大几倍 回答马上采纳 图中三角形ABC的面积是36平方厘米,AC长8厘米,DE长3厘米.求阴影部分的面积(ADFC不是正方形) 一个圆的半径扩大a倍,直径扩大( )倍,周长扩大( )倍,面积扩大( )倍.A.2 B.a C.2a D.pài(3.14) E.2pài(3.14) F.a的平方 我想问的是为什么最后选F 一个圆的半径扩大几倍,直径就扩大几倍,周长就扩大几倍,面积就扩大几倍这类题目该怎么做?明天我就要期末考了,有没有什么公式? 图中ABC的面积是36平方厘米,AC长8厘米,DE长3厘米,求阴影部分的面积(ADFC不是正方形) 一个圆的半径是a厘米,它的直径是几,周长是几,面积是几十万火急 图中梯形的上底是18厘米,高是15厘米,阴影部分面积是54平方厘米,求梯形的面积 如图,扇形AOB的圆心角为60°,半径为6cm,C,D分别是的三等分点,则阴影部分的面积是 . 等腰梯形的周长是48厘米,面积是96平方厘米,高8厘米,则腰长( )厘米? 2、如图,梯形ABCD的上底长5厘米,下底长8厘米,已知三角形ABE的面积是24平方厘米,求梯形的面积.阴影部分是棕色的。 图中扇形半径都是4cm,阴影部分面积是多少? 一个半圆的半径为8厘米,它的周长是( )厘米,面积是( )平方厘米. 如图,梯形ABCD的上底长5厘米,下底长8厘米,已知三角形ABE的面积是24平方厘米,求阴影部分的面积.写出全过程. 图中的扇形半径都是4厘米,求阴影部分面积? 已知一个半圆的直径是8厘米,求它的周长是多少? 如下图,在一个梯形内有两个三角形分别是4平方厘米和6平方厘米,梯形下底的长是上底的2倍,求阴影部分面积?不能上传图就是在那个梯形中任取一点连接四个角上面那个三角形是4平方厘米下 一个圆心角为45度半径为2的扇形和一个等腰直角三角形组成的图形,那么图中的阴影部分面积是多少 一张直径为8厘米的圆形,剪去一半,剩下的半圆周长( ),面积( ) 在如图所示的长方形abcd中,△abd的面积比△bcd的面积大10平方厘米,ab=8厘米,cd=3厘米,求阴影部分的面积急! 圆P与扇形OAB的半径OA、OB分别交于C、D,与弧AB相交于点E,已知OA=15,角AOB=60度,求图中阴影部分的面积圆P在扇形里面,求扇形减去圆形的面积,圆P于弧AB相交 直径是8厘米,求半径,周长,面积π取3.1 已知阴影部分的面积为24平方厘米,求梯形的面积. 如图,这个扇形的圆心角是90度,面积是31.4平方分米,求阴影部分的面积 一个等腰梯形的周长是48厘米,面积是96平方米,告示8厘米,则腰是多少厘米? 六上数学题求阴影部分的面积(空白部分面积为80平方厘米),高是8厘米 如图,这个扇形的圆心角是90度,面积是31.4dm²,求阴影部分的面积 半圆的半径是8厘米,求半圆周长和面积急用 已知梯形上底6厘米,下底8厘米,阴影面积24平方厘米,求梯形面积(需要提供计算方式) 如图,已知扇形OAB的圆心角为90度,分别以OA.OB为直径在扇形内作半圆,P和Q分别表示两个阴影部分的面积,那么P和Q的大小关系是( )A. P=Q B.P>Q C.P画不了图啊,我再试试! 一个圆,半径是5厘米,求出面积和周长怎么算?“ 下面图中三角形ABC的高是6cm,面积是36平方厘米,求阴影部分的面积,······ 如图:ABCD是正方形,扇形半径是60毫米,求阴影部分面积.我知道答案是3600π/4 - 60 x 30 = 900π - 1800为什么这么做啊?扇形里的正方形面积如何求出来的啊? 一个圆的半径扩大3倍,它的周长扩大( )倍,面积扩大( )倍写分析 两条对角线把梯形ABCD分割成四个三角形,如图所示,已知两个三角形的面积,求另两个三角形的面积各是多少已知三角形BOC等于12 三角形AOB等于6 如图,四边形ABCD是菱形,角A=60度,AB=2,扇形BEF的半径为2,圆心角为60度,则图中阴影部分的面积是——三分之二π-根号三 为什么? 一个圆的半径是2厘米,那么它的面积和周长相等这道题对还是错 如下图,BCEF是平行四边形,三角形ABC是直角三角形,BC长8厘米,AC长7厘米,阴影部分的面积比三角形ADG的面积大12平方厘米,求GC的长. 如图,是4个正方形组成的图形,求阴影部分的面积. 一个圆的半径是2厘米,它的周长和面积相等.对还是错. 如下图:四边形BCEF是平行四边形,ABC是直角三角形,BC长8厘米,AC长7厘米,阴影部分的面积比ADH的面积大12平方厘米.求HC的长? 两个正方形组成的1和图形,求图中的阴影面积 当一个圆的半径是几厘米时,他的周长和面积的数值相等 如图,四边形BCEF是平行四边形,三角形ABC是直角三角形,BC长9cm,AC长8cm,阴影部分的面积比三角形ADH的面积大9平方厘米,求HC的长是多少 6张大小不同的正方形纸片拼成的图形,已知最小的正方形面积是1,则图中阴影部分的正方形的面积是多少? 一个圆的半径是5厘米,它的周长=( ),面积=( ) 如右图,已知直角三角形ABC的面积是12平方厘米,求阴影部分的面积 一道图形数学题:下面阴影部分是35cm2,求圆环面积; 一个半圆形铁片的周长是10.28分米,它的半径是( ),面积是( ). 一个圆的直径是5厘米半径是()厘米周长是()厘米面积是()厘米 如图,已知三角形abc面积是12平方厘米,求阴影部分面积? 一个半圆形纸片的直径是10厘米,它的周长是()厘米,面积是()平方厘米 一个圆的半径由2厘米增加到了3厘米,那么,它的周长增加了()厘米,面积增加了()% 已知图中三角形ABC的面积为1998平方厘米,是平行四边形DEFC面积的3倍,那么图中阴影部分的面积是多少?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn