SparkCL简介

SparkCL源码链接

Spark + Aparapi = SparkCL

  • 其中Spark都很熟悉了,是云计算框架,将Hadoop 里的Mapreduce优化了。
  • Aparapi 是Java版的Opencl,不用JavaCL的原因是,JavaCL需要更多底层的操作,而我们的目的只是调用一下GPU进行计算,并不管具体GPU并行的事情。另外,Aparapi有一个容错机制,就是如果没有检测到GPU硬件的话,就会返回给JVM来运行(在源码KernelRunner.java 333行)。

SparkCL的改进

经过example里代码的对比,可以发现:SparkCL是通过自定义mapCL函数或者reduceCL函数来实现GPU并行。也就是说,sparkCL通过自定义mapCL/ reduceCL改写transformation。

其中mapCL/ reduceCL 里自定义funcX函数,这个函数在spark kernel实例化的时候,可以动态调用具体的mapParameter函数和mapReturnValue函数。mapParameter主要是set GPU参数,比如Range,mapReturnValue是执行具体的任务。

最后mapCL/ reduceCL 再调用spark的map(funX)和reduce(funX)

以下是mapCL代码:


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值