Verifying Concurrent Lock-free Algorithms

验证并发无锁算法

基本信息

  • 批准号:
    EP/J003727/1
  • 负责人:
  • 金额:
    $ 48.28万
  • 依托单位:
  • 依托单位国家:
    英国
  • 项目类别:
    Research Grant
  • 财政年份:
    2012
  • 资助国家:
    英国
  • 起止时间:
    2012 至 无数据
  • 项目状态:
    已结题

项目摘要

Software is becoming increasingly complex, and the demand for increased performance is driven by many diverse applications. As a response to this demand, concurrent software that efficiently exploits multi-core architectures is likely to be the norm in many sectors. However, developing correct concurrent algorithms is a difficult task. This is particularly true for a class of concurrent algorithms that fully exploit the potential concurrency by offering the maximum amount of interleavings of different processes working on a shared memory. There is then a real economic imperative to build techniques that can verify as correct such lock-free algorithms as they are known.Testing and simulation, while valuable and automated to a degree, are ultimately limited in the guarantees they can offer for correctness, particularly in the case of concurrent algorithms, where multiple thread interleavings act on data structures potentially unbounded in size. Formal verification of this class of algorithm is becoming tractable and there has been a surge of interest in applying such techniques, and a unique opportunity to verify a class of algorithms before their widespread adoption.This project focusses on lock-free algorithms (also called non-blocking algorithms). Lock-free algorithms have been discovered for many common data structures. Non-blocking algorithms are used extensively at the operating system and JVM level for tasks such as thread and process scheduling. While they are more complicated to implement, they have a number of advantages over lock-based alternatives -- hazards like priority inversion and deadlock are avoided, contention is less expensive, and coordination occurs at a finer level of granularity, enabling a higher degree of parallelism.This project seeks to develop techniques whereby such algorithms can be proved correct. The techniques are based on the notion of refinement which relates an abstract specification with a more detailed concrete implementation. What we will do here is show that a certain type of refinement between an abstract description and a concurrent algorithm implies that the concurrent algorithm is correct. The notion of correctness here being linearizability.Part of the novelty of what we propose to do is in the construction of the right sort of refinement relation - it has to be one that will imply linearizability, yet at the same time give rise to proof obligations that are tractable for specific algorithms, that is, actually make the verification of linearizability easier to achieve. Another part of the novelty is that we will mechanize the whole thing - both the proofs for specific algorithms, but also the proof that our technique is correct, thus giving an extra level of assurance that the techniques really are sound - the details are sufficiently complex and subtle that mechanization really is necessary to be 100% sure of correctness.In addition to these basics we want a proof method that is applicable to a wide range of algorithms, and one that is compositional. To aid applicability we develop two flavours of technique - one based on forward simulation, and another based on backward simulation, as well as specific support for unboundedness and dynamic linearization points. To aid compositionality (so that the proofs can be broken down into smaller local steps rather than undertaking one large global proof) we will develop thread modular simulation conditions, and interference freedom conditions that aid the process.Our work will be evaluated on a number of 'benchmark' algorithms, such as lock-free implementations of stacks, queues, hashtables etc. Finally, we will investigate how our proof methods can be shown to be complete, that is, every algorithm could potentially be verified by using the method. We will also investigate liveness, ie, showing that a concurrent algorithm guarantees various forms of progression.
软件正变得越来越复杂,许多不同的应用程序驱动着对提高性能的需求。作为对这一需求的响应,有效利用多核架构的并发软件很可能成为许多领域的标准。然而,开发正确的并发算法是一项艰巨的任务。对于一类并发算法来说尤其如此,这些算法通过提供在共享内存上工作的不同进程的最大数量的交叉来充分利用潜在的并发性。因此,构建能够验证这种无锁算法是否正确的技术是一种真正的经济需要。测试和模拟虽然在一定程度上是有价值的和自动化的,但它们最终在保证正确性方面受到限制,特别是在并发算法的情况下,其中多个线程交织作用于可能无限大小的数据结构。这类算法的正式验证正在变得容易处理,并且对应用此类技术的兴趣激增,并且在广泛采用之前验证一类算法的独特机会。该项目关注无锁算法(也称为非阻塞算法)。对于许多常见的数据结构,已经发现了无锁算法。非阻塞算法在操作系统和JVM级别广泛用于线程和进程调度等任务。虽然它们的实现更复杂,但与基于锁的替代方案相比,它们有许多优点——避免了优先级反转和死锁等危险,争用成本更低,协调发生在更细的粒度级别,从而实现了更高程度的并行性。该项目旨在开发技术,从而证明这些算法是正确的。这些技术基于细化的概念,将抽象规范与更详细的具体实现联系起来。我们在这里要做的是展示抽象描述和并发算法之间的某种细化意味着并发算法是正确的。正确性的概念是线性化。我们建议做的部分新颖之处在于构建正确的细化关系——它必须是一个暗示线性化的关系,但同时又产生了对特定算法易于处理的证明义务,也就是说,实际上使线性化的验证更容易实现。另一个新奇之处在于,我们将把整个事情机械化——既包括对特定算法的证明,也包括对我们技术正确性的证明,从而为技术确实是合理的提供了额外的保证——细节足够复杂和微妙,机械化对于100%确保正确性是必要的。除了这些基础之外,我们还需要一种适用于各种算法的证明方法,并且是复合的。为了帮助应用,我们开发了两种风格的技术-一种基于前向模拟,另一种基于后向模拟,以及对无界性和动态线性化点的特定支持。为了帮助组合性(这样证明可以被分解成更小的局部步骤,而不是进行一个大的全局证明),我们将开发线程模块化仿真条件,以及帮助该过程的干扰自由条件。我们的工作将在许多“基准”算法上进行评估,例如堆栈、队列、哈希表等的无锁实现。最后,我们将研究如何证明我们的证明方法是完整的,也就是说,每个算法都可以通过使用该方法进行验证。我们还将研究活动性,即显示并发算法保证各种形式的进展。

项目成果

期刊论文数量(10)
专著数量(0)
科研奖励数量(0)
会议论文数量(0)
专利数量(0)
Integrated Formal Methods - 11th International Conference, IFM 2014, Bertinoro, Italy, September 9-11, 2014, Proceedings
综合形式方法 - 第 11 届国际会议,IFM 2014,意大利贝尔蒂诺罗,2014 年 9 月 9-11 日,会议记录
  • DOI:
    10.1007/978-3-319-10181-1_21
  • 发表时间:
    2014
  • 期刊:
  • 影响因子:
    0
  • 作者:
    Derrick J
  • 通讯作者:
    Derrick J
From ODP viewpoint consistency to Integrated Formal Methods
从ODP观点一致性到综合形式方法
Principles for Verification Tools: Separation Logic
验证工具的原则:分离逻辑
  • DOI:
    10.48550/arxiv.1410.4439
  • 发表时间:
    2014
  • 期刊:
  • 影响因子:
    0
  • 作者:
    Dongol B
  • 通讯作者:
    Dongol B
Editorial
社论
  • DOI:
    10.1017/s135577181400003x
  • 发表时间:
    2014
  • 期刊:
  • 影响因子:
    0.6
  • 作者:
    Blackburn M
  • 通讯作者:
    Blackburn M
Relational concurrent refinement part III: traces, partial relations and automata
关系并发细化第三部分:痕迹、部分关系和自动机
  • DOI:
    10.1007/s00165-012-0262-3
  • 发表时间:
    2014
  • 期刊:
  • 影响因子:
    1
  • 作者:
    Derrick J
  • 通讯作者:
    Derrick J
{{ item.title }}
{{ item.translation_title }}
  • DOI:
    {{ item.doi }}
  • 发表时间:
    {{ item.publish_year }}
  • 期刊:
  • 影响因子:
    {{ item.factor }}
  • 作者:
    {{ item.authors }}
  • 通讯作者:
    {{ item.author }}

数据更新时间:{{ journalArticles.updateTime }}

{{ item.title }}
  • 作者:
    {{ item.author }}

数据更新时间:{{ monograph.updateTime }}

{{ item.title }}
  • 作者:
    {{ item.author }}

数据更新时间:{{ sciAawards.updateTime }}

{{ item.title }}
  • 作者:
    {{ item.author }}

数据更新时间:{{ conferencePapers.updateTime }}

{{ item.title }}
  • 作者:
    {{ item.author }}

数据更新时间:{{ patent.updateTime }}

John Derrick其他文献

Proving Opacity of a Pessimistic STM
证明悲观 STM 的不透明性
  • DOI:
    10.4230/lipics.opodis.2016.35
  • 发表时间:
    2016
  • 期刊:
  • 影响因子:
    0
  • 作者:
    Simon Doherty;Brijesh Dongol;John Derrick;Gerhard Schellhorn;Heike Wehrheim
  • 通讯作者:
    Heike Wehrheim
On using data abstractions for model checking refinements
  • DOI:
    10.1007/s00236-007-0042-3
  • 发表时间:
    2007-03-07
  • 期刊:
  • 影响因子:
    0.500
  • 作者:
    John Derrick;Heike Wehrheim
  • 通讯作者:
    Heike Wehrheim
Formally based tool support for model checking Erlang applications

John Derrick的其他文献

{{ item.title }}
{{ item.translation_title }}
  • DOI:
    {{ item.doi }}
  • 发表时间:
    {{ item.publish_year }}
  • 期刊:
  • 影响因子:
    {{ item.factor }}
  • 作者:
    {{ item.authors }}
  • 通讯作者:
    {{ item.author }}

{{ truncateString('John Derrick', 18)}}的其他基金

Safe and secure COncurrent programming for adVancEd aRchiTectures (COVERT)
安全可靠的高级架构并发编程 (COVERT)
  • 批准号:
    EP/X015114/1
  • 财政年份:
    2023
  • 资助金额:
    $ 48.28万
  • 项目类别:
    Research Grant
Verifiably Correct Transactional Memory.
可验证正确的事务内存。
  • 批准号:
    EP/R032351/1
  • 财政年份:
    2018
  • 资助金额:
    $ 48.28万
  • 项目类别:
    Research Grant
Verifiably correct concurrency abstractions
可验证正确的并发抽象
  • 批准号:
    EP/R018936/1
  • 财政年份:
    2018
  • 资助金额:
    $ 48.28万
  • 项目类别:
    Research Grant
Verifying concurrent algorithms on Weak Memory Models
验证弱内存模型上的并发算法
  • 批准号:
    EP/M017044/1
  • 财政年份:
    2015
  • 资助金额:
    $ 48.28万
  • 项目类别:
    Research Grant
Higher-order Refinement Techniques for Model Driven Architecture
模型驱动架构的高阶细化技术
  • 批准号:
    EP/G031711/1
  • 财政年份:
    2009
  • 资助金额:
    $ 48.28万
  • 项目类别:
    Research Grant

相似国自然基金

VLSI并发式(CONCURRENT)阵列声纳信号处理系统
  • 批准号:
    68880207
  • 批准年份:
    1988
  • 资助金额:
    3.0 万元
  • 项目类别:
    专项基金项目

相似海外基金

Collaborative Research: Concurrent Design Integration of Products and Remanufacturing Processes for Sustainability and Life Cycle Resilience
协作研究:产品和再制造流程的并行设计集成,以实现可持续性和生命周期弹性
  • 批准号:
    2348641
  • 财政年份:
    2024
  • 资助金额:
    $ 48.28万
  • 项目类别:
    Standard Grant
Collaborative Research: Concurrent Design Integration of Products and Remanufacturing Processes for Sustainability and Life Cycle Resilience
协作研究:产品和再制造流程的并行设计集成,以实现可持续性和生命周期弹性
  • 批准号:
    2348642
  • 财政年份:
    2024
  • 资助金额:
    $ 48.28万
  • 项目类别:
    Standard Grant
CAREER: Concurrent Robot Learning from Simulation and Real for Closing the Sim-to-real Gap
职业:机器人从模拟和真实中并行学习,以缩小模拟与真实的差距
  • 批准号:
    2339076
  • 财政年份:
    2024
  • 资助金额:
    $ 48.28万
  • 项目类别:
    Continuing Grant
Concurrent multi-organ responses to chronic physical activity and inactivity intervention to increase research discovery in human health and wellbeing
对慢性身体活动和不活动干预的并发多器官反应,以增加人类健康和福祉的研究发现
  • 批准号:
    BB/X015173/1
  • 财政年份:
    2023
  • 资助金额:
    $ 48.28万
  • 项目类别:
    Research Grant
CAREER: Understanding the Relationship of Covert and Overt Attention Using Concurrent EEG and Eye Tracking
职业:使用并发脑电图和眼动追踪了解隐性注意力和显性注意力的关系
  • 批准号:
    2345898
  • 财政年份:
    2023
  • 资助金额:
    $ 48.28万
  • 项目类别:
    Continuing Grant
SBIR Phase I: Re-envisioning alt text for education through concurrent authoring and diagram design
SBIR 第一阶段:通过并行创作和图表设计重新构想教育替代文本
  • 批准号:
    2221722
  • 财政年份:
    2023
  • 资助金额:
    $ 48.28万
  • 项目类别:
    Standard Grant
Concurrent Aerobic Exercise and Cognitive Training to Prevent Alzheimer's in at-risk Older Adults
同时进行有氧运动和认知训练可预防高危老年人的阿尔茨海默病
  • 批准号:
    10696409
  • 财政年份:
    2023
  • 资助金额:
    $ 48.28万
  • 项目类别:
Concurrent volumetric imaging with multimodal optical systems
多模态光学系统的并行体积成像
  • 批准号:
    10727499
  • 财政年份:
    2023
  • 资助金额:
    $ 48.28万
  • 项目类别:
SHF: Small: Modular Automated Verification of Concurrent Data Structures
SHF:小型:并发数据结构的模块化自动验证
  • 批准号:
    2304758
  • 财政年份:
    2023
  • 资助金额:
    $ 48.28万
  • 项目类别:
    Standard Grant
Collaborative Research: Broadening Participation and Building Pathways in Computer Science (CS) through Concurrent Enrollment
合作研究:通过同时注册扩大计算机科学(CS)的参与并建立途径
  • 批准号:
    2401696
  • 财政年份:
    2023
  • 资助金额:
    $ 48.28万
  • 项目类别:
    Standard Grant
{{ showInfoDetail.title }}

作者:{{ showInfoDetail.author }}

知道了