hadoop并行处理可以成倍地提高性能。当初的问题是如果将一部门计算工作从cpu迁徙到gpu会怎么样是否更快实践上虚拟服务器是什么,这些处理假如经由了并行计算的优化,在gpu上执行会比cpu快50-100倍。作为大数据专家和paas的推进者,altoros
systems研发团队始终致力于摸索hadoop+gpu的可能性,以及在实际的大范围系统中的实现,这篇就是他们的局部研讨结果。作者 vladimir
starostenkov是altoros systems的资深研发工程师,他在实现庞杂软件架构方面有五年教训,而且
对人工智能和机器学习算法也很感兴致。
技巧现状:
多年来,有许多将hadoop或mapreduce利用到gpu的科研名目。
mars可能是第一个胜利的gpu的mapreduce框架。采取mars技巧,剖析web协作产品数据和处理web文档的机能进步了1.5-1.6倍。
依据mars的基础原理,良多科研机构都开发了相似的工具,进步本人数据密集型体系的机能。相干案例包含 分子能源学、数学建模、基于块的
矩阵乘法、财务剖析、图像处置等。
还有针对网格计算的 boing系统,它是网络接入点一个疾速发展、意愿者驱动的旁边件系统。只管不使用hadoop,boinc已经成为很多科研项目加速的基本。例如,
gpugrid是一个基于boinc的gpu和散布式计算的项目,它通过履行分子模仿,辅助咱们懂得蛋白质在健康和疾病情形下的不同作用。多数对于医药、物理、数学、生物等的
boinc项目也能够使用hadoop+gpu技术。
因而,应用gpu加速并行计算体系的需要是存在的。这些机构会投资gpu的超级盘算机或开发本人的解决计划。硬件厂商,如cray,已经宣布了配置gpu和预装了hadoop的机器。amazon也推出了emr,用户能够在其配置了gpu的服务器上应用hadoop。
超级计算机性能很高,然而本钱达数百万美元amazon
emr也仅实用于连续多少个月的名目。对一些更大的科研项目,投资自己的硬件更划算。即便在hadoop集群内使用gpu能提高计算速度,数据传输也会造成必定的性能瓶颈。以下会具体先容相干问题。
工作原理
数据处置进程中,hdd、dram、cpu跟gpu必定会有数据交流。下图显示了cpu跟gpu独特履行盘算时,数据的传输。
箭头a :数据从hdd传输到dram
箭头b :cpu处理数据
箭头c :gpu移动办公应用处理数据
实现任何义务所需的时光总量包括:
cpu或gpu进行计算所需的时光
数据在各个组件间传输所需的时间
依据toms hardware 2012年的cpu图表,cpu的均匀性能在15到130gflops之间,而nvidia gpu的性能范畴在100到vpn解决方案3000+ gflops。这些都是统计值,而且很大水平上取决于义务的类型和算法。无论如何,在某些情形下,一个gpu可以使节点速度加快5至25倍。一些开发者宣称,假如你的集群包括多个节点,性能可以提高50到200倍。例如,mithra项目到达了254倍的性能晋升。