最新消息

ppfolio的两个版本(顺序和并行)出乎意料地完成了在2011年SAT竞赛中表现出色。ppfolio平行赛获得11枚奖牌ppfolio sequential获得了5枚奖牌,这非常令人惊讶。应该记住,ppfolio只是一个运行并行求解器,为它们分配一组给定的核心。这是本质上等同于键入以下命令行:
求解器1、求解器2、求解器3、求解器4、求解器5&
因此,该投资组合所获得的结果只是由于选定的基本解算器,它们是应获得奖牌。以下是ppfolio欠个人解决者的奖牌:

重要的是要强调这一点,因为ppfolio正在运行plingeling除了4个核心之外,柱基在本质上与自身竞争32核轨道。

我们从这些结果中吸取的教训如下:

ppfolio的描述


ppfolio(Pico PortFOLIO或Parallel PortFOLIO)是一个非常天真的软件平行投资组合。这意味着确定可以可以通过投资组合或并行求解器来实现。

ppfolio的目标是提供虚拟可以在单个主机上运行的最佳解算器(VBS)。如果你有无限的计算资源,只想尽快解决SAT实例可能(在挂钟时间内),你最好的选择是运行每个在其自己的计算机上并行提供SAT解算器。当解算器答案是,其他解决者被杀。根据定义,此VBS位于与每个单独的解算器相比,其功能最差(实际上是明显优于每个单独的解算器)。如果你有足够的计算机来运行每个可用的SAT解算器,VBS代表了最好的这可以通过当前的SAT技术实现。一切都需要达到这个最佳状态就是拥有尽可能多的可用计算机SAT解算器。这并不难,但也不常见。

然而,如今,拥有8个逻辑处理器(带超线程的4核)和带8核的计算机实际的内核也不太昂贵。因此,它非常尝试在每个可用的逻辑处理器上运行解算器。这是正是ppfolio所做的。这只是VBS的近似值在单个主机上运行。

ppfolio本身只是一个启动SAT解题器的程序平行。它只涉及系统编程,对SAT问题。可以选择可使用的芯数在命令行上。

ppfolio并没有试图以任何方式变得聪明。它的作用就是跑步并行求解器。有几个明显的改进是可能的(检测SAT实例的类型并选择适当的求解器,改进求解器的调度,共享公式…)但未被考虑,因为该求解器的目标是唯一地确定性能的下限使用几行简单的系统编程实现。当然是这样预计对主内存的访问将是一个瓶颈显著影响每个解算器的性能。

重要的是要强调ppfolio
当挂钟时间是唯一重要的事情时,表演ppfolio是识别优秀和较差解决者的阈值。事实上,如果并行求解器或投资组合没有执行明显好于ppfolio,那么它可能不值得花费大量时间开发这个并行求解器或投资组合。

提交2011年SAT竞赛


提交给2011年SAT竞赛的版本使用了以下内容解算器:

这些解算器是根据它们在2009年竞争基准。在每个类别中(精心制作的应用程序,随机),选择最佳解算器。第二个解算器也是如果第一个解算器可以解算至少十个实例,则选择此选项没有。

改进提交给竞争将是提交三个版本的ppfolio,每个版本专门针对特定类别(应用、工艺、随机)。这通常通过选择每个目标中的顶级解算器来完成类别。虽然这通常由一些解算器完成(尤其是投资组合,尽管他们应该能够识别实例功能),这不是为ppfolio做的,因为它是看一个单一版本能实现什么更有趣每个类别。

提交给竞赛的两个版本的ppfolio是平行的一个(par)和一个后续的(seq)。并行版本使用每个可用核心。如果有5个以上的可用内核在剩余的核心上启动解算器plingeling。顺序该版本仅使用1个内核,这意味着CPU时间几乎等于挂钟时间。在此仅启动了三个解算器版本。将CPU使用率授予一个解算器的任务留给系统进程调度程序。这意味着每个解算器将运行1/3分配给投资组合的时间。显然,这不是ppfolio的正常使用,我们不能期望从中获得好的表现顺序版本,但这并不重要,因为它只是为了确定其他解算器的下限。