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

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

VB使用 WIN95 的选择目录对话框 使指定窗口总处于其他窗口之上 -VB资料 通用对话框专辑(全) -VB资料 透明的Form上显示背景透通图 -VB资料 图像在图片框中的滚动 -VB资料 拖动无标题窗口-VB资料 拖动无系统标准标题栏的窗口-VB资料 文本框中光标位置的获得-VB资料 无关联程序时开启“打开方式”窗口 -VB资料 显示 Combo 的下拉条 -VB资料 显示Windows系统的标准ABOUT窗口-VB资料 显示程序的版本 -VB资料 显示窗口的水平和垂直滚动条-VB资料 一劳永逸让VB自动改变控件大小 移动没有标题栏的窗口 -VB资料 隐藏Win95任务栏 -VB资料 VB用API函数打开 MS CommonDialog对话框 VB用MSGBOX函数设计版权信息: 用VB5 制作“闪烁标题栏”窗体 用VB5.0获取正在系统中运行的窗口标题 用VB实现浮动按钮 用VB5实现窗口图象缩放、滚动技巧 用VB6建立带光栅的超级开始菜单 用VB尝试新的界面风格 用VB建立字符界面的控制台程序 用VB快速读取TextBox第N行的数据 用VB 设计VCD播放器 用VB设计更好的用户界面 用VB设计聚焦框程序 用VB实现“ICQ”式的启动欢迎画面 用VB实现全屏幕图形界面及动态功能提示 关于专用打印机指令问题!!! 候捷和候俊杰是什么关系?? Crystal Reports的问题 什么是命名空间? 请问怎样订阅google上的新闻组?? 浏览器中的时间选择 谁知道程序员大本营2001光盘那个EXE文件的制作方法吗? 为什么没有actionscript的论坛?那个可是前沿啊/ 错误类型:Microsoft JET Database Engine (0x80040E09)是什么错误啊?请大虾们帮忙! 紧急:请问怎样在windows me中添加、设置并使用传真机 有谁有字节序转换的c代码?现在我要将网络字节序和主机字节序相互转换,但又不能调用api,不知那位大侠可以帮忙?先谢了! 用.NET制作安装盘的一些问题 有谁有字节序转换的c代码?现在我要将网络字节序和主机字节序相互转换,但又不能调用api,不知那位大侠可以帮忙?先谢了! 不能访问asp文件了?? 能做到让页面不刷新吗? 请教一个算法,有关数学的 FastReoprt 要!要!要!要!要!要!要!要! 《C++ Primer》 中文版怎么还不出啊! 重庆高程报名时间 怎样用NMFTP象网络蚂蚁那样自动获得下载文件的地址 特酷的串口通讯调试工具,有其它工具... 有没有win32版的mysql JDBC驱动? 郁闷!菜鸟的“关于数据库订购与发布的问题” :( 如何使子类的属性不可见 我想画曲线,类似log曲线的样子,不知道vc里面怎样才能方便的实现,有源码最好 特酷的串口通讯调试工具,有其它工具... 请问如何用电话线将各分公司连网,并实现数据上传功能,以保证总公司的数据汇总,CSDN的高手到那里去了,我已经第二次提了,没有一个人回 请指教! 特酷的串口通讯调试工具,有其它工具... 菜得不得了的 问题,从SQL SERVER中导入一个表(如表名QK)到ORACLE后,不知表名变成什么? 怎样看到PowerBuilder User’s Guide使用手冊。Application Techniques使用手冊呀? 一直想看古天乐的《创世纪》,请哪位提供一下网上哪里有它下载或在线看网址,不甚感激! 为什么一执行文件ss.txt得内容就清空了??? 中文问题 特酷的串口通讯调试工具,有其它工具... sos sos 求,向access2000中写数据的asp代码?和用asp连接access有几种方法? 如何保存xml的网页,谢谢! 如何声明一个变量,可在整个程序内调用,并其生命周期和程序一样长??? 请推荐一本数据结构的书,最好是大学教材,c++描叙,写了 求助:vc++ 6.0中,用向导生成了一个windows程序, 我又新加了一个工具条,怎样让它和以前的工具条在同一行上? 请问VIA VT82C686A芯片的主板最大支持的CPU是多少?? 怎样看vb中控件的代码?如:from,command... 大家帮我看看这段代码哪里错了???? 在jbuilder6下如何存取中文数据库,内码的转换如何实现?高手请进,100分奉上 请问如何在dbgrid控件中 第3列=第2列×第1列 有什么方法可以获得页面信息 菜鸟请教一个复杂结构类型结构体成员变量初始化赋值出错的问题。 CDC实现图片运动问题,请大家多多帮忙?如何擦掉已经画出的图片 那里有Delphi函数表?API的个人理解,希望修正!(新人学习在过程中的问题) 鲁迅写的《故乡》的感受怎样写?例如,写出来给我! 欧洲是伸向欧亚大陆的一个半岛,为什么说澳大利亚更像一个大半岛 你整么看? 一个碟子一段铁丝一勺洗衣粉怎么证明声音声波的形式传到远方 性生活是什么意思 世界最典型的季风气候分布在哪里它们是怎么形成的 近腊月下,夜登华子冈,辋水①沦涟,与月上下;寒山远火,明灭林外.深巷寒犬,吠声如豹;村墟夜舂,复与疏钟相间.此时独坐,僮仆静默,多思曩者②,携手赋诗,步仄迳③,临清流也.当待春中,草木蔓 养鸡场共养母鸡和小鸡2456只,小鸡的只数比母鸡的2.5倍多15只,两种鸡各样了多少只? 欧洲西部的三大半岛是什么?在地图上的位置是?学哥学姐们帮帮忙,马上就要结业考试了 英语翻译近腊月下,夜登华子冈,辋水①沦涟,与月上下;寒山远火,明灭林外.深巷寒犬,吠声如豹;村墟夜舂,复与疏钟相间.此时独坐,僮仆静默,多思曩者②,携手赋诗,步仄迳③,临清流也.当待春 读鲁迅《故乡》有感 200字的是感受的 世界上最典型的季风气候区在什么地方? 自吸泵的吸程跟扬程都是什么意思?另外:矿洞垂直深度为约33米,里面进水深约17米,有没有什么型号的自吸泵可以把水抽出来?什么牌子的水泵? 性感,性交分别是什么意思?最好有图片 欧洲南部的三大半岛中,面积最大,气候最复杂的是( )半岛形状像长筒皮靴的是( )半岛,该半岛以( )气候为主,岛上主要的国家是( ). 怎样鉴别自吸泵的扬程7.5KW电机自吸泵,参数是扬程55米,流量60立方米.怎么能够知道是否能到达它所说的参数.以前用的是离心泵,平面距离30米,垂直高度3米.电机7.5KW,扬程32米,流量50立方米.24个 养鸡场共养母鸡和小鸡2465只,小鸡的只数比母鸡的2.5倍多15只,两种鸡各样了多少只?着是小学5年的题不要用方程解答 欧洲西部的四大半岛,三大岛屿,两大内海 分别是谁? 在国际单位制中,功率的单位是“瓦”它用基本单位表示是什么? 读鲁迅故乡有感600字左右 怎么让母鸡生小鸡?公鸡和母鸡交配后才能生小鸡,交配后的母鸡生出的所有蛋都能生出小鸡吗?还是不一定哪一次生出的蛋才能孵出小鸡?怎么才能让母鸡生出的所有的蛋都能孵出小鸡? 用一个碟子,一段铁丝和一勺洗衣粉如何做实验?小明在家中打开音响听音乐,忽然想起课本上说声音能使空气形成疏密相间的波动并以此把声音传到远处,他找来一个碟子,一段铁丝和一勺洗衣 我国是世界上季风气候最明显的国家之一,其原因是什么? 750瓦的带压力罐自吸泵最大压力能达到几个压力? 小明在家中听音响时,忽然想到课本上说声音能使空气形成疏密相间的波动,...写不下了,下面继续:并通过空气将声音传到远方.小明想:“声音的波动我为什么看不见?这种说法到底对不对” 为什么我国成为世界上季风气候最显著的国家之一? 《华歆王朗》文言文翻译题华歆,王朗俱乘船避难·······世以比定华,王之劣.(1)解释下列括号中词语歆辄难之(难) 既以纳其自托(以)(2)用现代汉语解释下列句子王欲舍所携人既 盐水蒸发是分解反应吗? 我国是世界上季风气候最曲典型的国家之一,其主要原因是 亚洲南部的三大半岛自西向东依次是? 窑洞的特点是什么 Mg+O2点燃成为MgO出现的现象? 为什么我国会成为世界上季风气候最显著的国家之一? 华歆王朗俱乘船避难中王朗表现出怎样的性格? 计算一个较大城市的面积时,一般用什么单位 饲养场养小鸡400只,比母鸡只数的3/5少80只,饲养场养的母鸡和小鸡共有多少只? 欧洲南部的三大半岛自西向东分别是?rt 还是高数啊,说明反常积分的敛散性求[+无穷,a(a>0) dx/x^p的敛散性,应该要分类讨论的吧? 养鸡场养母鸡和小鸡共225只,其中小鸡的只数是母鸡的8倍,母鸡养了多少只 我找不到华歆王朗的介绍! 事件性消息是什么?与新闻方面有关的... 饲养场养小鸡400只,比母鸡只数的1/2少100只母鸡和小鸡共有多少只? 欧洲南部三大半岛自西向东依次为? 以制造企业为例,详细解释会计账户的阶段性特点 这是欧洲西部 B和D是那个半岛 华歆...华歆、王朗的(品质)好坏.的原文和题目十分钟内 我要读完鲁迅的《故乡》之后的感受kuai! 欧洲西部包括国家最多的是哪个半岛最好讲一下为什么 亚洲南部三大半岛的气候类型自西向东分别为 写一写你对鲁迅先生品格的感悟,可适当引用鲁迅说过的话或文章中的语句如题 欧洲西部亚平宁半岛上的国家是____ 华歆和王朗谁更好? 数学计算单位有哪些 四年级 快啊啊! 小鸡要养多久才能变成母鸡 用一个碟子、一段铁丝和一勺洗衣粉做实验.证明声音能使空气形成疏密相同的波动.请写出实验过程. 分解性构思是什么意思 欧洲其实是亚欧大陆伸向大西洋的一个大半岛;澳大利亚大陆像一座大岛屿, 一个碟子 一段铁丝 一勺洗衣粉做一个试验证明声音能使空气形成波动并以次把声音播到远处? 饲养员养了一些母鸡和480只小鸡.母鸡只数的1/4等于小鸡只数的5/8.母鸡有多少只? 根据半岛,岛屿的特点,有人认为:欧洲其实是欧亚大陆伸向大西洋的一个大半岛;澳大根据半岛、岛屿的特点,有人认为:欧洲其实是欧亚大陆伸向大西洋的一个大半岛;澳大利亚大陆更像一座 用碟子、铁丝、牛奶证明声波存在小宇在家听广播时,想起课本上说:“声音能使空气形成疏密相间的波动并以此把声音传播开来”这种说法到底对不对呢?于是他找来了一个碟子、一段铁丝
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘