利用最大割预测BDD操作的内存需求及改进交换性合成的研究
1. BDD操作相关工作及现状
在大规模BDD(Binary Decision Diagram,二元决策图)操作方面,许多方法尝试使用分布式内存算法来实现,部分基于广度优先算法。然而,这些方法都未能取得令人满意的性能。例如,多核实现的加速依赖于使用并发哈希表的并行深度优先算法,但这种方法无法扩展到外部内存。
CAL是另一个用于在单台机器上处理大型BDD的工具,它基于广度优先方法,在假设单个BDD层能装入主内存的情况下具有较高的I/O效率,而Adiar的I/O效率并不依赖这一假设。不过,CAL和Adiar在处理小实例时性能都不佳。CAL在输入的BDD节点少于219个(15 MiB)时会切换到经典的递归深度优先算法,但其阈值仅基于性能实验结果,缺乏可靠性保证,可能导致输出超出主内存,从而因随机访问而显著减慢速度。对于小于CAL阈值的BDD,Adiar 1.2结合i - 层割可以使几乎所有实验的辅助数据结构完全在内部内存中运行。
但当处理节点少于44,000个(1 MiB)的决策图时,Adiar的性能与传统基于深度优先的BDD包之间仍存在显著差距。这表明对于外部内存的时间前向处理,BDD大小存在一个下限,要解决这个问题,需要一种能有效无缝结合内部和外部内存中BDD的新方法。
2. 决策图之外的适用性
时间前向处理算法具有一定的通用性。优先队列的内容在任何时间点都是相对于输入和/或输出DAG(Directed Acyclic Graph,有向无环图)的2 - 层割。因此,如果能计算输入的分层函数和1 - 层割,就可以限制算法的内存使用。分层函数可通过特定的预处理步骤推导得出,割的大小可以
BDD内存预测与交换性合成研究
超级会员免费看
订阅专栏 解锁全文
1579

被折叠的 条评论
为什么被折叠?



