Java并行性:OpenCL / GPU与actor / threads

时间:2015-07-09 21:07:27

标签: java akka opencl gpu aparapi

APARAPI project将自己描述为:

  

Aparapi允许Java开发人员通过在GPU上执行数据并行代码片段而不是局限于本地CPU来利用GPU和APU设备的计算能力。它通过在运行时将Java字节码转换为OpenCL并在GPU上执行来实现这一点......

我想知道它比gparsAkka等传统并发框架带来的好处。

在什么情况下将JVM字节码转换为OpenCL比这些替代品提供的更快或更可取?为什么OpenCL / GPU范例比Java / CPU“更快”(至少在某些情况下)?什么情况可以保证这样做?

1 个答案:

答案 0 :(得分:1)

我想说的是,akka是一种非常高级的并发抽象,而像CUDA,OpenMP,MPI等东西则是计算成本高昂的东西。所以akka非常适合实现类似任务调度系统和处理和限制请求之类的东西,但如果它们计算成本高并且可以并行化,那么任务执行本身就没那么好。但是你有这个非常高的抽象,并且可以使用它们的期货来使整个系统反应,以便它不会锁定任何地方。所有的GPU库都非常适合实现大规模并行任务,在这些任务中你有大量的无人机都在做同样的事情。这就是BLAS之类的东西。最近我认为它们变得越来越受欢迎,因为与CPU相比,图形卡有了更大的进步,但仍然是一个非常专业的领域虽然有很大的学习曲线恕我直言,因为你可以在你的操作系统中使用一些预处理器衍生产品。循环,或类似java8新并行集合。无论如何,这是我的2美分。