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

Hadoop+GPU强强联手的性能探索相关推荐

  1. 谷歌、DeepMind强强联手再发布Dreamer:性能远超“前辈”PlaNet

    2020-03-20 10:55:45 文 | 谷歌 AI 译 | 丛末 去年,谷歌.DeepMind联手推出基于模型的强化学习智能体PlaNet,能解决各种基于图像的控制任务,性能可媲美当时最先进的 ...

  2. 强强联手,NVIDIA 与 Ampere Computing 重磅推出云原生服务器平台

    随着 5G.元宇宙的兴起,云游戏再一次迎来爆发.据 IDC 与中国信息通信研究院联合发布的<全球云游戏产业深度观察及趋势研判(2022年)>显示,2021年,中国地区云游戏市场收入已达 4 ...

  3. 又一 5G+AIoT 的强强联手!

    作者 | 伍杏玲 出品 | CSDN(ID:CSDNnews) 据艾瑞咨询与金山云联合发布<2020年中国智能物联网(AIoT)白皮书>显示,2019 年物联网连接量将达 45.7 亿,随 ...

  4. 【观察】联想与华体科技强强联手,“点亮”未来智慧城市之光

    申耀的科技观察 读懂科技,赢取未来! 路灯,是每一座城市中最普遍也最密集的一种基础设施,随着5G时代的到来,每一个路灯未来都有可能融入5G基站.车路协同.视频监控.充电桩.环境监测.灯杆屏等多种模块, ...

  5. 戴尔+VMware:强强联手,共赴“云原生”新征程

    "从混合云基础架构,到现代化多云环境,再到边缘计算以及AI平台.对象存储.数据保护和现代化工作空间等方方面面. 戴尔科技集团与VMware合作的范围实现了跨核心.边缘和云等各个领域,而这种全 ...

  6. 强强联手!这所C9高校与西湖大学签约

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要5分钟 Follow小博主,每天更新前沿干货 本文来源:西安交通大学 应王树国校长邀请,世界著名结构生物学家.西湖大学校长施一公院士一行于20 ...

  7. 强强联手 SAP Ariba与苏宁易购共建中国企业智慧采购

    2019年5月30日,南京讯- SAP Ariba(采购云)联合苏宁易购共同宣布达成战略合作关系,苏宁易购成为SAP Ariba Spot Buy(零星采购)业务在中国大陆地区的合作伙伴.双方将利用S ...

  8. 神经科学界大地震!诺奖级泰斗将携团队移居中国,与蒲慕明院士强强联手

    点击上方"Python高校",关注 文末干货立马到手   本文转载自:新智元   来源:science等  |  编辑:张佳 [导读]德国科学院院士.马克斯·普朗克生物控制论研究所 ...

  9. 强强联手 法大大电子合同金蝶云·苍穹版上线

    △ 法大大电子合同(苍穹版)发布 金蝶中国生态伙伴部联席总经理 张亚朋(右) 法大大副总裁黄炯(左) 2022年11月11日,金蝶软件(中国)有限公司(以下简称"金蝶")举办以&q ...

最新文章

  1. 牛X,试用了下 GitHub 上 2 万 Star 的第一抢票神器,3 秒钟抢到!
  2. 物体掉落速度_俄专家称青海火流星是个“飞船大的物体”,能量堪比万吨炸药爆炸...
  3. 手挽手带你学React:四档(上)一步一步学会react-redux (自己写个Redux)
  4. python爬虫原理-python爬虫原理详细讲解
  5. python右对齐函数_python右对齐的实例方法
  6. 2017可以兼容那些jdk_2019从头跃——核心基础:何为JDK?Java开发工具包须知总览...
  7. android onclick事件和ontouch事件发生先后顺序和关联
  8. GDCM:gdcm::Orientation的测试程序
  9. 全球最优秀的14位程序员
  10. 为什么Python中整型不会溢出
  11. java: 程序包com.alibaba.fastjson不存在_Java开发中的异常
  12. android 桌面视频播放器,ZY-Player ,一款跨平台桌面端视频资源播放器
  13. 终于有人把Docker讲清楚了
  14. 高德百度坐标系转换方法
  15. Debian 10(buster) 更换国内软件源
  16. vue树形权限菜单_Vue.js 递归组件实现树形菜单(实例分享)
  17. 表达式和返回值(JS)
  18. 【bzoj1449/bzoj2895】[JSOI2009]球队收益/球队预算 费用流
  19. 刚刚申请的博客,自己也是新手!
  20. 工控安全| 西门子S7-300攻击分析

热门文章

  1. 【转】C++学习一 结构与结构体
  2. 一步步编写操作系统 58 门、调用门与RPL序 3
  3. Python 数据分析三剑客之 Matplotlib(六):直方图 / 柱状图 / 条形图的绘制
  4. 动手学无人驾驶(3):基于激光雷达3D多目标追踪
  5. 4.深度学习练习:Building your Deep Neural Network: Step by Step(强烈推荐)
  6. spring的beanutils工具类_基于spring-beans实现工具类BeanUtils基于Class实例化注入对象及查找方法、复制属性等操作...
  7. oracle的分支语句,oracle中的分支与循环语句
  8. mysql rand() 子查询_MySQL ------ 子查询(十三)
  9. mysql or全表_mysql or条件可以使用索引而避免全表
  10. linux arch 包管理,Archlinux使用包管理方式安装MyEclipse