2016-07-06 84 views
0

我目前正在为JAVA中的Spark开发,在发布到我们的Amazon集群之前,我使用Spark在本地测试我的代码。我的问题是如果有任何解决方案来利用我的GPU?目前我可以通过​​分配我的CPU的多个内核,或者将更多的RAM设置在sparkConf.set("spark.executor.memory", "8g");--driver-memory 4g开关的执行器和驱动程序旁边。但显然使用GPU进行计算任务是非常有效的。有没有办法让我的本地运行Spark使用我的GPU? CUDA似乎是流行语,但我无法找到关于如何为Spark设置的任何内容。Apache Spark - 本地优化和利用CUDA GPU

另外,什么是RAM分配的最佳设置?我有16GB可用,我应该分配给驱动程序多少以及执行多少?

你有关于优化本地Spark的更多提示吗?

谢谢!

回答

1

作品中有许多项目着重利用GPGPU编程实现Spark应用程序。他们中的大多数实际上与AMD Aparapi或OpenCL一起工作,因为它提供了更多的便携性(因为CUDA仅适用于NVidia GPU)。

看看这两个项目,让你可以同时运行现有的铁芯(CPU)和非传统的内核(图形处理器,FPGA)的在星火应用:

1.0 SparkCL:我在一个项目中使用此最近写了一篇关于它的报告,你可以找到here

2.0 HeteroSpark:相当新和有前途。

+0

太棒了!谢谢!你知道关于最佳RAM分配的一切吗?我想知道司机或执行者是否需要更多。 –

+0

另外,有没有办法让我的SparkCL在Windows下运行?如果我只是在Windows上获得Git,按照指示克隆这些东西并开始运行(目录已更改),它会运行吗? –

+0

SparkCL有一个视频教程,它们在Windows机器上执行https://www.youtube.com/watch?v=Na6GeOttZhA&index=5&list=PLOJY6HSc6DWnpPSmLKmr4GzkRv11QjdXw。我使用OSx和Ubuntu。这些说明也工作得很好。 –

0

单独Spark不能使用GPU。您可以使用可在Spark上对GPU(启用GPU的线性代数工具)执行操作的库,但它不涉及核心Spark,并且您需要一个可从此类加速中受益的用例。 GPU在加载数据方面的成本很高,而且在一般的计算任务中性能较低。

+0

谢谢!那么关于“GPGPU是计算的未来”的热门话题是什么?或者GPU更适合哪种类型的任务? –

+0

功能强大但不是一般的处理工具。就像FPGA给你多少次比CPU更多的回报,但它不是通用的。如果任务类似于渲染(许多具有同步的小任务),那么它是GPU的良好候选者。 – 2016-07-06 21:37:23