java - Apache Spark - 本地 CUDA GPU 的优化和利用

标签 java optimization apache-spark cuda

我目前正在 JAVA 中开发 Spark,在发布到我们的 Amazon 集群之前,我正在使用 Spark 在本地测试我的代码。我的问题是是否有任何解决方案可以利用我的 GPU?目前我可以通过sparkConf.setMaster("local[4]");分配我的CPU的多个核心,或者使用 sparkConf.set("spark.executor.memory", "8g"); 将更多 RAM 留给执行器和驱动程序或--driver-memory 4g转变。但显然使用 GPU 来执行计算任务是非常有效的。有没有办法让本地运行的 Spark 使用我的 GPU? CUDA 似乎是一个流行词,但我找不到任何有关如何为 Spark 设置它的信息。

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

关于优化本地 Spark,您还有更多技巧吗?

谢谢!

最佳答案

目前有许多项目专注于利用 GPGPU 编程进行 Spark 应用程序。它们中的大多数实际上与 AMD Aparapi 或 OpenCL 一起使用,因为这提供了更多的可移植性(因为 CUDA 仅适用于 NVidia GPU)。

看一下这两个项目,它们允许您在传统核心(CPU)和非常规核心(GPU、FPGA)上运行 Spark 应用程序:

1.0 SparkCL :我最近在一个项目中使用了这个,并写了一份报告,你可以找到 here .

2.0 HeteroSpark :相当新且有前途。

关于java - Apache Spark - 本地 CUDA GPU 的优化和利用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38232800/

相关文章:

java - 2d platformer - 只移动当前在屏幕上的对象?

java - 未找到类 Spark Streaming 和 kafka

c++ - 我如何在 std::atomic<T> 上实现一个简单的自旋锁,以便编译器不会优化它?

android cursor movetofirst 性能问题

hadoop - 如何在 Apache Spark 中重新分区压缩文件?

hadoop - 将作业提交到 YARN 集群的正确方法,其中作业依赖于外部 jar?

java - 如何在java中创建抗锯齿文本图像

java - Java 默认为 BufferedReader 使用什么编码/字符集?

java - 仅用一个 Iterator Java 迭代两个列表

java - 创建文件并写入(空指针)