我们有一个单线程应用程序,它使用共享内存模型模拟了数十万个对象之间的交互。显然,它无法在多CPU硬件上进行扩展。
阅读了一些有关基于代理的建模和函数式编程/actor模型的内容后,我考虑使用消息传递范式进行重写。
这个想法非常简单 - 每个对象将作为一个actor,它们的交互将是消息,以便模拟可以并行进行。给定某个时间点上的对象配置 - 可以轻松地计算出其未来的结果。
问题是如何对时间进行建模:
例如,假设X对象的行为取决于A和B,由于演员和消息计算的顺序不保证,可能当要计算X时,A已经向X发送了消息,但是B没有。 如何确保计算正确进行?
希望问题清楚了
提前感谢。
阅读了一些有关基于代理的建模和函数式编程/actor模型的内容后,我考虑使用消息传递范式进行重写。
这个想法非常简单 - 每个对象将作为一个actor,它们的交互将是消息,以便模拟可以并行进行。给定某个时间点上的对象配置 - 可以轻松地计算出其未来的结果。
问题是如何对时间进行建模:
例如,假设X对象的行为取决于A和B,由于演员和消息计算的顺序不保证,可能当要计算X时,A已经向X发送了消息,但是B没有。 如何确保计算正确进行?
希望问题清楚了
提前感谢。