We address the problem of statically checking safety properties (such as assertions or deadlocks) for parameterized phaser programs. Phasers embody a non-trivial and modern synchronization construct used to orchestrate executions of parallel tasks. This generic construct supports dynamic parallelism with runtime registrations and deregistrations of spawned tasks. It generalizes many synchronization patterns such as collective and point-to-point schemes. For instance, phasers can enforce barriers or producer-consumer synchronization patterns among all or subsets of the running tasks. We consider in this work programs that may generate arbitrarily many tasks and phasers. We study different formulations of the verification problem and propose an exact procedure that is guaranteed to terminate for some reachability problems even in the presence of unbounded phases and arbitrarily many spawned tasks. In addition, we prove undecidability results for several problems on which our procedure cannot be guaranteed to terminate.
翻译:我们处理静态检查参数化分级程序的安全特性(如断言或僵局)的问题。 分级器体现了一种非三轨和现代同步结构,用于协调执行平行任务。 这种通用结构支持动态平行,包括运行时间登记和取消产卵任务登记。 它概括了许多同步模式,如集体和点对点计划。 例如, 分级器可以在运行中任务的所有或组别中设置障碍或生产者-消费者同步模式。 我们在这个工作方案中考虑到可能会任意产生许多任务和分级器。 我们研究核查问题的不同公式,并提出一个确切的程序,保证在存在未受限制阶段和任意许多分立任务的情况下,解决某些可达性问题。 此外,我们还证明,对于一些我们的程序无法保证终止的问题,我们无法产生结果。