Cloudera数据平台Spark工作开始支持GPU运算,提高5倍执行效率

企业级Hadoop大数据软件商Cloudera近期在自家的数据平台中(Cloudera Data Platform,CDP),集成了可在GPU上加速Spark的开源函数库RAPIDS。通过这个新功能,原先在CDP平台上,大多以CPU来执行的Spark工作负载,比如资料分析的截取、转换和加载(ETL)作业,就可以搭配GPU来执行,Cloudera宣称,可以提升5倍全端(full stack)执行速度的成效。

RAPIDS是Nvidia开源发布的CUDA加速函数库,可以用来在GPU上执行端对端数据科学和分析工作流程。去年开始也能支持Apache Spark社群发布的Spark 3.0,以Nvidia CUDA和开源框架UCX为基础,来加速Spark SQL、DataFrame及Spark shuffle等功能,让Spark工作能利用GPU平行处理和高带宽内存传输的能力,来执行运算,且不需要改写程序代码。

Nvidia也在自家开发者博客上介绍,在开发ML的工作流程中,数据科学家大约有80%的时间花在资料预处理上,包括要先了解资料集,反复进行资料清整、截取特征等,这个过程通称为ETL,由于Spark是资料预处理和特征工程的常用工具,也常被用于这个环节。不过,因Spark过去的版本不支持GPU运算,所以数据科学家和工程师大多在CPU上执行ETL,再将资料发送至GPU进行模型训练。但随着资料量增加后,这个流程也面临一些挑战。

Nvidia数据科学产品部资深总监Scott McClellan指出,这对企业带来的挑战,一是在资料量不断增长、迭代训练的过程中,会花费大量的时间;二是要创建大规模CPU基础架构,需花费大量金钱;三是在执行大规模资料处理的过程中,需要不断重构程序代码、交接执行运算,会增加从资料工程到模型训练每一次循环的时间成本。为此,Nvidia开源了RAPIDS,试图通过GPU来加速资料处理的执行效率。

去年,Nvidia与Cloudera展开合作,Cloudera更在今年夏天,将RAPIDS集成到自家的CDP产品中,正式在CDP中推出以GPU加速Spark的功能。Cloudera机器学习部门副总裁Sushil Thomas表示,将RAPIDS集成到CDP后,用户执行Spark工作时,完全不需要修改程序代码,Spark核心引擎会在侦测到GPU计算资源后,自动根据工作负载的任务类型,比如是属于列式存储(Row-oriented)或直式存储(Column-oriented)的资料模型,在GPU或CPU上调度执行特定工作。也就是说,Spark核心引擎会自动完成在CPU与GPU之间的运算转换。

Cloudera数据平台结合RAPIDS组件后的架构示意图。

Sushil Thomas更指出,采用GPU来执行Spark之后,可以在同样时间内,增加资料处理迭代循环的次数,来提升模型训练的准确度,更能将全端执行速度提升5倍。

Nvidia也提出一份数据,来比较在CDP上以CPU或GPU来执行数据分析的成效。若分别以现代4节点的CPU集群,以及相同配置的CPU搭上Nvidia A30 GPU来进行运算,后者的执行速度可达前者的5倍,不过搭配GPU的成本会比单纯使用CPU增加30~40%。

目前,这项功能仅限于CDP的私有云产品,Sushil Thomas指出,对于公有云的支持会在近期上线。这项功能主要瞄准采用私有云的大型客户,包括金融、医疗这类具有大量资料工程与数据科学任务需求的产业,目前也已经用于美国国税局(IRS),能在超过300TB的庞大数据库中,找出有助于识别身份盗用或其它欺诈行为的模式。

Cloudera是提供Apache Hadoop商用版本的主要厂商之一,目前有超过2,000家客户,主要产品是数据平台CDP,提供Hadoop、Spark等大数据分析服务。

发表评论