OpenCL是否适合基于代理的模拟?

Pen*_*gin 10 modeling scala opencl agent-based-modeling scalacl

我正在学习Scala,目的是使用actor并发编写基于代理的模拟.我目前对OpenCL知之甚少,在我潜入之前,有人可以告诉我它是否可能适合/兼容基于代理的模拟?

如果是这样,那么ScalaCL看起来非常有吸引力.

San*_*ozi 4

如果您有一些可以并行化的重量级计算,并且您希望使用显卡来完成它(或其中的一部分),那么您应该使用 OpenCL。
它有一个有点奇怪的计算模型(至少如果你只知道“一般”编程而不知道 GPU 是如何工作的,或者如果你在某些数学领域有很强的背景),并且对你能做什么/如何做有相当多的限制。

所以我认为这不太可能是您正在寻找的。

Actor 与 OpenCL 关系不大,我认为两者唯一的共同点是它们都解决并行计算的问题,但从非常不同的角度来看。在我看来,actor 模型更容易理解,也可能更容易使用它(但这只是一个猜测,因为到目前为止我还没有真正与 OpenCL 发生过任何业务)。

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

  • Akka,还提供了基于 actor + 不错的文档和一些教程的许多附加功能
  • 斯卡拉兹的演员