10

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

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

4

2 回答 2

4

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

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

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

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

  • Akka,还提供了许多额外的功能在演员 + 一些教程的好文档之上
  • 斯卡拉兹的演员
于 2010-07-30T09:55:36.037 回答
2

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

否则,两者就不能很好地结合在一起,OpenCL 可能会使事情运行得更慢而不是更快。

于 2010-07-30T10:50:36.393 回答