2016-07-06 19 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