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

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

在delhpi程序中获取网络资源信息-Delphi资料 在Delphi中操作快捷方式 在DLL中实现文件的拷贝-Delphi资料 在Report Builder中增加自定义函数-Delphi资料 在Win2000 Beta下安装Delphi 在Word插入字符-Delphi资料 注册表中几个对编程特别有用的地方-Delphi资料 资源文件在DELPHI中的使用 自制替换指定串函数-Delphi资料 API函数快速入门API函数简介-VB资料 API函数快速入门怎样在VB中声明和使用API函数 API函数在VB开发中的应用 API函数在VB中的应用 API实现完美的图片出现效果-VB资料 ListView控件特效-VB资料 Office 95 API 的企业开发者指南-VB资料 SENDMESSAGE函数巧应用 -VB资料 VB 与Windows API 讲座(五) VB5 未公开的函数 VB5.0与Windows API 间的呼叫技巧 VB5中回调函数的使用方法 VB的API编程精粹(二) VB的API编程精粹(一) VB调用API函数技巧快速选择全部项目 VB调用API函数使窗口保持在最上层 VB中调用Windows API的注意事项 VB中访问API函数之防错技巧 VB中利用API函数实现特殊窗体的两种方法 VB中用API函数实现文件夹列表 WIN32 API-VB资料 WIN32 API的分类介绍 -VB资料 ╬╬╬ 有没有人比较过ASP和ISAPI在COM+环境,并发情况下的效率?? ╬╬╬ 菜鸟问题 :oracle可不可以修改表中的字段名称 急急急!!!请教大家最后一个问题? 如何实现禁止文件被拷贝、删除? 怎样在vc中使用嵌入式SQL 为什么已指向一个窗体的指针还是空指针!!!!!!!!!急 怎么样安装Exchange Server 2000的SP 学习JAVA,可以?????????? 解释脚本,(百分向送!)急急急!!!!!!!!!!!!! 请教,如何将英文IE改为中文的 masm的版本是6.11是不是就是masm32v6之类的东西呀?还有一个masm32v7,想学汇编是不是有了一个就可以了呀? 高分救命啊[急]200分在线等待 请你帮帮忙 如何设定属性页的大小? EXCHANGE 2000 SERVER的怪问题?! 等值线算法及源程序 如何使用VB访问MySQL数据库? 哪位大哥帮帮忙(跟贴有分),小问题,vb里怎样调用vc的动态库,还有为什么vc生成的Dll文件不好用regsvr32注册 急需解决的问题!一个向数据库写入时间数据的问题!多谢高手指教!100分! @@@谁有我郁闷???@@@ 应用cdo编程,怎样获得任意公用文件夹的FolderID 移动文件 DataSource的问题 cookie的问题 我学C语言有一段时间了但我发现没有什么成果?? 我想做一个象MSN类似的界面,请教各位应该怎么整啊? 简单的textbox控件问题,再次散分了! 有一个1024K*32位的存储器,由128K*8位的DRAM芯片构成,看下面对吗? colordialog的问题 win98窗口上的最大化最小化按钮变成了数字 请问,如何以编程的方式创建SQL server的实例的? 请问“[System.ComponentModel.DesignerCategory("Code")]的意义? table1.FieldbyName('Company').asstring:= ExpandFileName (filelistbox1.filename); 网卡使用的问题!在线等候 会c/s的高手请帮忙! 为什么我的winme关机后在开机总是要检查磁盘,可是我是正常关机呀,烦死我了。谁能解决给100分。 各位高高手,有没有MS SQLServer6.5的JDBC驱动?救人一命胜造十级**,忘了咋说的了. 大家给我解答我不会用,请再帮帮忙(前后贴200分一起结,谢谢) 在一个dataset中,对于不是主键的列中的值如何进行查询? 星球大战前传2:美国人全面攻击 有谁知道在哪有IIS6.0下载呢 请问在mysql中怎么建立自动增加的字段呢 , 好想在mysql中没有那么强大的工具。 请问哪里可以下载中文的windows Media Player SDK? 高分求助 数据备份 为什么Access中排序顺序不正确?<在线等待> 在菜单中增加CIMAGELIST中的位图,这样写对吗? 为什么受伤的总是我?只因为我是菜鸟??? 寻一个asp.net(codebehind)实现的数据库访问的demo sybase事务处理的问题 我的程序用的Access,,运行时出现“无法为更新引集定位:一些值可能已在最后读取后改变”什么原因? 怎样加大在sql server中存储图片字段的大小 这回真的是“高手请进”了!!!! 我有一台08年买的福田麦客小麦联合收割机82马力的,现在能卖多少钱 蔗糖与甘蔗有何区别 白菜、甘蓝均为二倍体,体细胞染色体数目分别为20、18.二倍体“白菜-甘蓝”的染色体数为为什么 福田麦客联合收割机92马力,割一亩小麦要用多少升油?一亩=多少平方米?我的发动机是雷沃1004-TRC 68千瓦的,请问你是哪的 下列涉及化学变化的是 房屋倒塌 山体滑坡 树林失火 树枝折断 萝卜的体细胞内有9对染色体,白菜的体细胞有9对染色体,现将萝卜和白菜杂交,培育出能 开花结籽的新作物,这种作物最少应有多少染色体?A.9 B.18C.36D.72我的问题是:为什么不是同源染色体联会 碳原子间以单键相连的烃是烷烃这句话怎么错了,举个反例 森林起火是物理变化还是化学变化 判断有机物的碳原子是否共面,老师说可以把一些类比成甲烷,乙稀,笨那些,但是怎样类比啊,字数有限制,写在这里,我的疑问是,就好像2个碳原子是碳碳双键的,他们是共面,那碳原子再连接的其 酸性氧化物,碱性氧化物,盐的概念还有例子 下列属干化学变化的是A粗盐提纯B葡萄酿酒C冰雪融化D酒精挥发 有机物中碳、氢原子个数比为1:4,则该有机物为CH4这句话怎么错了 酸性氧化物与碱性氧化物的定义 铁与稀硫酸化学方程式 什么和碘气反应会形成氧气不知道有没有这种反应- - 三聚磷酸纳对鱼肉的作用? 我国正值隆冬季节,巴西高原是 A、干季 B、湿季 C、春季 D、冬季 有机化合物中碳原子的成键特点它的特点是什么,谁能给我总结一下 硝亚硫酸纳能在蛋糕里使用吗? 体细胞杂交获得的“白菜-甘蓝”可育, 碘气的化学性质是什么?它是否有毒?是否易燃?使用的时候都应该注意什么? 亚硫磷酸氢氟酸,亚硝甲酸冰醋酸,碳酸氢硫次氯酸,最弱氢氰和硅酸. 白菜-甘蓝杂交细胞可育否有人说联会紊乱不可育(此版本我觉得很有理的呀)可还有人说有同源染色体,所以可育,求解啊 低盐时为什么能提高蛋白质的溶解度 任何生态系统都需人工投入能量吗 电单车铅酸电池充电出了问题今天给电单车电池充电,可能是在把电池提出来的时候 把电池前后倾斜了一下,等到插上充电器的时候,充电器就显示已经充满了,无奈,就把电池前后晃了一下,发现 蛋白质在氯化钠中的溶解度 氧化铁(Fe2O3)和氧化硅(SiO2)是酸性还是碱性呢?就是说它们的ph值是多少呢?比如将氧化铁和氧化硅置入戊烷(C5H12)pentane的溶液中,它们会是酸性还是碱性界面呢?但是个人认为氧化铁应该 某碱性氧化物的化学式为XmOn 该氧化物与适量稀盐酸完全反应后 生成盐的化学式为 48v铅酸电池充电时能开关(电动车上的电源)吗 如何通过二氧化硅含量确定石料是酸性或者碱性 燃油打火机打不着买了个普通的燃油打火机有时候打得着,有时候打半天都不着、但过了一会就能着了,反正就是十打九不着那样、求解决方法.是不是中间那棉花部分油渗不进去啊?怎么解决呢 三种化合物:CH4 C2H6 C2H2若碳的质量相同时,则氢元素的质量比是? 酸性氧化物和碱性氧化物是不是盐 酸性氧化物与碱性氧化物能反应生成盐和水吗 电动车铅酸电池充电时间问题刚买了辆电动车,第一次充电要充多久?是不是要等完全没电了才充电?在日后的充电中,勤充电对电池的影响大还是等电用完了再充电? 能量传递效率低于10%高于20%哪个更影响生态平衡 燃油打火机和充气打火机哪个好? 电动车铅酸电池充电问题新车显示满电,骑了之后剩80%的时候我充电,这是第一次充电,充了大概8个小时,不知道有没有充满,别人帮我拔下充电器的.有几个问题:我在电量剩下80%的时候充电 为什么能量传递效率大于百分之二十,生态系统会崩溃如题 若A是相对分子质量为128的烃,1:则其分子式只可能是 2:若A不能使溴水褪色,且分子中所有原子都在同一个面内.则其结构简式是 听说铅酸电池充电时会产生酸雾.我现在用的电动车是铅酸电池.在家里充电.会产生酸雾吗.我怕影响健康是电动自行车 在生态系统的能量流动过程中,营养级越多,传递效率越低 这句话对么?在生态系统的能量流动过程中,营养级越多,传递效率越低这句话的说法对么?... 下雪后天气变暖雪融化是化学变化,还是物理变化 请大家帮帮看看,我这老款的立马电动车的电机这里加什么油? 用胆矾配制0.2mol/L的硫酸铜溶液,下列操作正确的是A.取50克胆矾溶于1L水中 B.取50克胆矾溶于水配成1L溶液C.取32克胆矾溶于水配成1L溶液 D.将胆矾加热除去水结晶,再取无水硫酸铜32克溶于1L水中 如何判断某金属是否与某酸反应?抱歉没有说清楚。我指的是,只是看到两种物质的化学式(如Cu和H2SO4),就能判断出是否反应。不进行实际的实验和观察。 植物体细胞杂交得出的融合细胞为什么是四倍体 请问 硝水 在食物制作当中起什么作用呢?是不是起到 晶莹剔透 的作用啊,因为我看到捆蹄 还有 肴肉 就用这个? 如何判断金属与酸反应后质量是否增加 由乙烯和乙醇组成的混合气体中,若碳元素质量分数为60%,则氧元素的质量分数为?A、15.6% B、26.7% C、30% D、无法确定 替硝锉注射液作用我在的这个科注射青霉素之前都要给病人输替硝唑,请问这样有什么作用? 【求助】甘蔗中含蔗糖多少啊? 由乙烯和乙醇组成的混合气体,经测定其中碳元素的质量分数为72%,则氧元素的质量分数为? 精硝有什么作用 用15吨甘蔗可以制成1.9吨蔗糖.制一吨蔗糖要多少吨甘蔗? 什么是温度和溶解度之间的关系? 为什么使用硫酸铜沉淀蛋白质时不可以过量,否则会引起沉淀再溶解,为什么? 用15吨甘蔗能做1.9吨蔗糖,每吨甘蔗可以做几吨蔗糖?几除几? 用甘蔗榨糖,7.5吨甘蔗榨出0.9吨糖,要榨12吨糖需要多少甘蔗?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘