我是 Scala 和 Akka 的新手,正在考虑使用它来解决问题。假设我有一个计算引擎(搜索解决方案)。我想通过为每个节点上的每个 cpu 提供自己的引擎实例来并行化跨 cpu 和跨节点的搜索。
引擎输入由少量标量输入和一个非常大的哈希表组成。每个引擎实例将使用其标量输入对哈希表进行一些小的本地更改,计算一个优点,然后丢弃其更改(它们不需要被任何其他引擎实例提交/看到)。善值将返回给将在结果中进行选择的某个协调器。
我正在阅读一些关于 STM TransactionalMap 作为共享状态工具的信息。这似乎很理想,但我并没有真正看到任何完整的示例将其用作共享状态。
问题:
- actor/stm 模型似乎适合这个问题吗?
- 你能举一个具体的例子来说明如何分配共享状态吗?(它是 Ref[TransactionalMap[,]] 作为消息吗?
- 在节点内分配共享状态与在不同节点之间分配共享状态有什么不同吗?
求知之心,
艾伦