OpenCL适用于基于代理的模拟吗?

10

我正在学习Scala,目的是使用Actor并发编写基于代理的仿真。目前我对OpenCL知之甚少,在深入研究之前,有没有人能告诉我它是否适合/兼容于基于代理的仿真?

如果适用的话,那么ScalaCL看起来很有吸引力。


我发现GPU可以极大地加速事情的进展,但正如建议的那样,编写它们并不容易,而且与演员无关。我想我会坚持使用Scala中的演员,并检查Akka。http://gpgpu.org/index.php?s=agent+based&searchbutton=Search - Pengin
2个回答

4
如果您有一些可以并行计算的重型计算,并且想要使用您的图形卡(或其部分)来完成它,那么您应该使用OpenCL。 OpenCL具有有点奇怪的计算模型(至少如果您只了解“通用”编程而不知道GPU如何工作或者您在某些数学领域具有强大的背景),并且有很多限制,您可以做什么/如何做。

因此,我认为这不太可能是您要寻找的。

演员与OpenCL几乎没有关系,我认为两者唯一的共性是它们都从非常不同的角度解决了并行计算的问题。在我看来,演员模型更容易理解,也可能更易于使用(但这只是一个猜测,因为我到目前为止确实没有任何与OpenCL相关的业务)。

如果您想要实现基于代理的系统,那么演员可能非常有用。您可以查看标准scala演员或替代实现:

  • Akka,还提供许多附加功能+带有一些教程的漂亮文档
  • scalaz中的演员

2

OpenCL通常只适用于加速涉及使用不同数据进行相同操作的程序。如果您的代理将同时执行相同的操作,则可能是合适和兼容的。

否则,它们两者并不很匹配,使用OpenCL可能会使事情变慢而不是更快。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接