我正在学习Scala,目的是使用actor并发编写基于代理的模拟。我目前对OpenCL知之甚少,在我潜入之前,有人可以告诉我它是否可能适合/兼容基于代理的模拟?
如果是这样,那么ScalaCL看起来非常有吸引力。
答案 0 :(得分:4)
如果您有一些可以并行化的重量级计算并且您想使用图形卡(或部分卡),则应该使用OpenCL。
它有一个奇怪的计算模型(至少如果你只知道“通用”编程,而不是GPU如何工作,或者你在某些数学领域有强大的背景),并且你可以做什么/怎么做。 / p>
所以我认为这不太可能是你想要的。
演员与OpenCL几乎没什么关系,我认为两者的唯一共性是它们都解决了并行计算的问题,但是从非常不同的角度来看。 IMO演员模型更容易理解,也可能使用它(但这只是猜测,因为到目前为止我还没有与OpenCL有任何业务。)
如果要实现基于代理的系统,那么actor就非常有用。您可以查看标准的scala actor或替代实现:
答案 1 :(得分:2)
OpenCL通常只适用于加速涉及使用不同数据多次执行相同操作的程序。如果你的代理人都会同时做同样的事情,那么是的,它可能是适当的和兼容的。
否则,两者不能很好地融合在一起,OpenCL可能会让事情变慢而不是更快。