2016-10-05 72 views
1

我想建立一个完全专用于Z3的系统。假设它有4个内核,我想使用机器的所有功能。在多核服务器中使用Z3

我将解决大约1000个增量断言的大公式。

我想以平行的方式解决公式。我读过this question,我发现应该为解决公式的每个实例创建一个独特的Context

我的问题是,使用完整系统资源(4个核心)和解决增量断言的公式的最佳方式是什么?我应该为每个核心创建一个上下文,并以某种方式同步推送和弹出来逐步解决公式?经由一个上下文中创建

由于

+0

我不认为有一个“最优化”的方式,它取决于你想解决的问题。如果您使用API​​,则必须为每个线程/进程使用不同的上下文。我不认为每个线程/进程拥有多个上下文都有很好的理由。 –

+0

所以你会创建一个上下文每核心?每个环境会使用不同的核心吗?由于将有1000个断言将逐步解决,有4个上下文意味着重复信息4次(每个核心1个)。我说得对吗?有没有更好的方法来做到这一点,而不仅仅是在每个环境中都有每个断言?谢谢@ChristophWintersteiger – user1618465

回答

1

表达式不能在另一个上下文中使用。所以,是的,如果这些内核/上下文需要相同的表达式,则它们将不得不被复制和/或翻译(另请参阅Z3_translate)。