【问题标题】:Is OpenCL good for agent based simulation?OpenCL 是否适合基于代理的模拟?
【发布时间】:2010-07-30 07:59:41
【问题描述】:
我正在学习 Scala,目的是使用 Actor 并发编写基于代理的模拟。我目前对 OpenCL 知之甚少,在我深入研究之前,谁能告诉我它是否适合/兼容基于代理的模拟?
如果是这样,那么ScalaCL 看起来很有吸引力。
【问题讨论】:
标签:
scala
opencl
modeling
agent-based-modeling
scalacl
【解决方案1】:
如果您有一些可以并行化的重量级计算并且您想使用您的显卡来完成(或其中的一部分),您应该使用 OpenCL。
它有一个有点奇怪的计算模型(至少如果你只知道“一般”编程而不知道 GPU 是如何工作的,或者如果你在某些数学领域有很强的背景),并且你可以做什么/如何做相当多的限制。
所以我认为这不太可能是您正在寻找的。p>
Actor 与 OpenCL 关系不大,我认为两者的唯一共同点是它们都解决了并行计算的问题,但是从一个非常不同的角度来看。 IMO 演员模型更容易理解并且可能也更容易使用(但这只是一个猜测,因为到目前为止我还没有真正与 OpenCL 有任何业务往来)。
如果你想实现一个基于代理的系统,那么 Actor 会非常有用。你可以看看标准的 scala 演员,或替代实现:
【解决方案2】:
OpenCL 通常只适用于加速涉及对不同数据多次执行相同操作的程序。如果您的代理都将同时做同样的事情,那么是的,它可能是合适且兼容的。
否则,两者不能很好地结合在一起,OpenCL 可能会让事情运行得更慢而不是更快。