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

时间:2010-07-30 07:59:42

标签: scala opencl modeling agent-based-modeling scalacl

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

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

2 个答案:

答案 0 :(得分:4)

如果您有一些可以并行化的重量级计算并且您想使用图形卡(或部分卡),则应该使用OpenCL。
它有一个奇怪的计算模型(至少如果你只知道“通用”编程,而不是GPU如何工作,或者你在某些数学领域有强大的背景),并且你可以做什么/怎么做。 / p>

所以我认为这不太可能是你想要的。

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

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

  • Akka,还提供了许多附加功能,包括演员+精彩文档和一些教程
  • 演员scalaz

答案 1 :(得分:2)

OpenCL通常只适用于加速涉及使用不同数据多次执行相同操作的程序。如果你的代理人都会同时做同样的事情,那么是的,它可能是适当的和兼容的。

否则,两者不能很好地融合在一起,OpenCL可能会让事情变慢而不是更快。