我有一类计算似乎很自然地采用了图形结构。该图远非线性,因为有多个输入以及扇出的节点和需要其他几个节点结果的节点。在所有这些计算中,也可能有几个接收器。但是,不存在任何周期。输入节点被更新(不一定一次一个),我让它们的值流过(此时纯粹是概念性的)图。随着输入的变化,节点保持状态,并且计算必须相对于输入按顺序运行。
由于我必须非常频繁地编写此类计算并且我不愿意每次都编写临时代码,因此我尝试编写一个小型库,以便通过为各种顶点编写类来轻松地将此类计算拼凑在一起。然而,我的代码相当不优雅,并且没有利用这些计算的并行结构。虽然每个顶点通常都是轻量级的,但计算可能会变得非常复杂和“宽泛”。为了使问题更加复杂,这些计算的输入在循环中非常频繁地更新。幸运的是,这些问题的规模足够小,我可以在单个节点上处理它们。
有没有人处理过类似的事情?你会推荐什么想法/方法/工具?