使用Hadoop的OpenCL

使用Hadoop的OpenCL,hadoop,opencl,hadoop-streaming,Hadoop,Opencl,Hadoop Streaming,如何将OpenCL(用于GPU计算)与Hadoop结合使用 我的数据集驻留在HDFS中。 我需要计算5个指标,其中2个是计算密集型指标。 因此,我想使用OpenCL在GPU上计算这2个指标,使用Hadoop上的java map reduce代码计算其余3个指标 如何将数据从HDFS传递到GPU? 或 我的opencl代码如何从HDFS访问数据 如何从Java map reduce代码触发OpenCL代码 如果有人可以共享一个示例代码,那就太好了。可以使用jogamp(jocl)从java调用op

如何将OpenCL(用于GPU计算)与Hadoop结合使用

我的数据集驻留在HDFS中。 我需要计算5个指标,其中2个是计算密集型指标。 因此,我想使用OpenCL在GPU上计算这2个指标,使用Hadoop上的java map reduce代码计算其余3个指标

如何将数据从HDFS传递到GPU? 或 我的opencl代码如何从HDFS访问数据

如何从Java map reduce代码触发OpenCL代码

如果有人可以共享一个示例代码,那就太好了。

可以使用jogamp(jocl)从java调用opencl,它基本上是本地opencl库的包装器。您需要首先使用java/hadoop库访问数据,将它们传输到CLBuffers(这是包含用于与opencl通信的缓冲区的java对象),将它们复制到gpu,调用内核,将结果从gpu复制回缓冲区。检查jocl示例


另一种选择是使用Aparabi库。在这里,数据处理内核是一个简单的java函数(有一些限制),框架从java字节码->opencl转换而来,因此opencl部分对程序员是隐藏的。当然,并不是所有的东西都可以从java->opencl中翻译出来,请查看他们的例子。

正如isti_spl在下面提到的,有很多从java访问GPU的选项(Aparabi、RootBeer、JOCL,或者只是普通的老JNI),尽管它们都有自己的特点。我最近发表了关于将Hadoop与GPU结合使用的工作,并且非常有兴趣了解您正在计算的指标,作为对我工作的评估。以前在GPU上的不同MapReduce框架上也做过其他工作,但大多数都没有与Hadoop/HDFS集成。如果你联系我,我也可以帮助你加速Hadoop的工作jmaxg3@gmail.com.