G. Geeraerts, Alexander Heußner, Jean-François Raskin
{"title":"Queue-Dispatch Asynchronous Systems","authors":"G. Geeraerts, Alexander Heußner, Jean-François Raskin","doi":"10.1109/ACSD.2013.18","DOIUrl":null,"url":null,"abstract":"To make the development of efficient multi-core applications easier, libraries, such as Grand Central Dispatch (GCD), have been proposed. When using such a library, the programmer writes so-called blocks, which are chunks of codes, and dispatches them, using synchronous or asynchronous calls, to several types of waiting queues. A scheduler is then responsible for dispatching those blocks on the available cores. Blocks can synchronize via a global memory. In this paper, we propose Queue-Dispatch Asynchronous Systems as a mathematical model that faithfully formalizes the synchronization mechanisms and the behavior of the scheduler in those systems. We study in detail their relationships to classical formalisms such as pushdown systems, Petri nets, fifo systems, and counter systems. Our main technical contributions are precise worst-case complexity results for the Parikh coverability problem and the termination question for several subclasses of our model. We give an outlook on extending our model towards verifying input-parametrized fork- join behaviour with the help of abstractions, and conclude with a hands-on approach for verifying GCD programs in practice.","PeriodicalId":166715,"journal":{"name":"2013 13th International Conference on Application of Concurrency to System Design","volume":"13 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2012-01-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"10","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2013 13th International Conference on Application of Concurrency to System Design","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ACSD.2013.18","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 10
Abstract
To make the development of efficient multi-core applications easier, libraries, such as Grand Central Dispatch (GCD), have been proposed. When using such a library, the programmer writes so-called blocks, which are chunks of codes, and dispatches them, using synchronous or asynchronous calls, to several types of waiting queues. A scheduler is then responsible for dispatching those blocks on the available cores. Blocks can synchronize via a global memory. In this paper, we propose Queue-Dispatch Asynchronous Systems as a mathematical model that faithfully formalizes the synchronization mechanisms and the behavior of the scheduler in those systems. We study in detail their relationships to classical formalisms such as pushdown systems, Petri nets, fifo systems, and counter systems. Our main technical contributions are precise worst-case complexity results for the Parikh coverability problem and the termination question for several subclasses of our model. We give an outlook on extending our model towards verifying input-parametrized fork- join behaviour with the help of abstractions, and conclude with a hands-on approach for verifying GCD programs in practice.
为了使高效的多核应用程序的开发更加容易,人们提出了一些库,如Grand Central Dispatch (GCD)。当使用这样的库时,程序员编写所谓的块,即代码块,并使用同步或异步调用将它们分派给几种类型的等待队列。然后,调度程序负责将这些块分派到可用的内核上。块可以通过全局内存同步。在本文中,我们提出了队列调度异步系统作为一个数学模型,忠实地形式化了这些系统中的同步机制和调度程序的行为。我们详细研究了它们与经典形式化的关系,如下推系统、Petri网、fifo系统和计数器系统。我们的主要技术贡献是精确的最坏情况复杂性结果的Parikh可覆盖性问题和终止问题的几个子类的模型。我们展望了在抽象的帮助下扩展我们的模型以验证输入参数化的fork- join行为,并总结了在实践中验证GCD程序的实际方法。