2015-07-09 36 views
2

APARAPI project自己描述爲:爪哇並行:OpenCL的/ GPU的與男演員/線程

Aparapi允許Java開發通過執行數據的並行代碼段,以利用GPU和APU設備的計算能力的GPU而不是侷限於本地CPU。它通過在運行Java字節碼轉換爲OpenCL和GPU上執行...

我想知道,這提供了比傳統的並行框架,如gparsAkka什麼好處。

在什麼情況下將JVM字節碼轉換爲OpenCL會比這些替代方案提供的更快或更可取?爲什麼OpenCL/GPU範例比Java/CPU「更快」(至少在某些情況下)?什麼情況下會這樣做?

+0

是的,它有可能會更快。這是一個簡單的差異,真的:APARAPI允許您在GPU上運行並行代碼,而gpars和Akka允許您並行化代碼以在CPU上運行。 –

+0

我在http://stackoverflow.com/questions/22866901/using-java-with-nvidia-gpus-cuda/22868938#22868938中寫了一些關於這個的話(這個問題涉及到CUDA,但我的回答相當一般) – Marco13

+0

如果計算與數據的比例很高,aparapi將根據硬件贏得x2到x100。 CPU核心寬度僅爲16,而gpu計算單元爲64或128,在GPU中可以有多達64個這樣的單元。與cpu相比,還有更多的寄存器用於gpu。 –

回答

1

我會這麼說,akka是併發性的一個非常高層次的抽象,而像CUDA,OpenMP,MPI等等的東西是用於計算昂貴的東西。因此,akka對於執行類似任務調度系統和處理和限制請求的任務非常棒,但如果任務執行本身的計算成本很高並且可以並行處理,那麼對於任務執行本身來說就不那麼好了。但是你有這個非常高的抽象,並可以使用它們的未來,使整個系統反應,以便它不鎖定任何地方。所有的GPU庫都非常適合實現大規模並行任務,在這些任務中,你有大量的無人機都在做幾乎相同的事情。所以這就像BLAS一樣。我認爲最近它們越來越受歡迎了,因爲與CPU相比,顯卡有了更大的進步,但仍然是一個非常專業化的領域,雖然有一個很大的學習曲線恕我直言,就像OpenMP一樣,您可以在其上貼上幾個預處理器衍生物循環,或類似java8新平行集合。無論如何,這是我的2美分。