CAREER: A Programming Language for Developing Software to Execute Reliably on Unreliable Hardware

职业:一种用于开发在不可靠的硬件上可靠执行的软件的编程语言

基本信息

  • 批准号:
    1751011
  • 负责人:
  • 金额:
    $ 52.5万
  • 依托单位:
  • 依托单位国家:
    美国
  • 项目类别:
    Continuing Grant
  • 财政年份:
    2018
  • 资助国家:
    美国
  • 起止时间:
    2018-07-01 至 2024-06-30
  • 项目状态:
    已结题

项目摘要

The landscape of software development has changed as computing platforms have reached the end of Moore?s Law. Specifically, the tactic of aggressively shrinking computer processors to yield increased computer performance has been paused as modern processors have -- as a result -- become more vulnerable to errors in their manufacture and operation. As a result, applications executed on many emerging systems need to be specifically designed to execute through faults in the underlying execution platform. This project provides a new programming language with a supporting compiler and verification system that enables developers to work with a model of the execution platform to deliver provably reliable computations even in the presence of faults in the underlying execution platform. The project's intellectual merit is the development of state-of-the-art techniques for reasoning about program behavior that capture the growing availability of soft-computing fabrics, such as unreliable computer processors, energy-harvesting systems, and cyber-physical systems. Moreover, in a society that is increasingly dependent on computing systems, the project?s broader significance is to provide software developers, engineers, and scientists with new tools to build efficient and powerful systems that fully exploit the benefits of new hardware platforms while simultaneously delivering the reliable, resilient execution that society needs.A key idea behind this project is to extend a language, compiler, and verification system to support programmatic, first-class execution models that capture the semantics of execution platforms that deliver alternative results for a given operation. Such execution models are first-class in that the developer can communicate with the verification system to verify correctness properties of the computation that are related to the explicit state of the execution model itself. A key driver behind the feasibility of this approach is that the project leverages relational verification. Specifically, the system can reason about two separate executions of the program: 1) the idealized reliable execution of the program and 2) the actual, faulty execution as specified by the execution model. Such reasoning 1) enables a user to specify properties, such as accuracy, that relate values between the two executions and 2) enables the system and user together efficiently verify programs by, for example, demonstrating that a desired property holds of the faulty execution because faults do not interfere with the property's validity. Building upon these key directions, this project also investigates new mechanisms to build reliability-aware optimizing compilers that still soundly transform the program even in the presence of alternative execution models. Together, the results of this project will enable developers to leverage the wide variety of new computing platforms for which execution models are non-standard, highly configurable, and approximate -- yet still produce an application that has strong guarantees. Moreover, the proposal is to validate the approach by integrating the results into new coursework on programming language design and implementation.This award reflects NSF's statutory mission and has been deemed worthy of support through evaluation using the Foundation's intellectual merit and broader impacts review criteria.
随着计算平台达到摩尔时代的末期,软件开发的前景已经发生了变化。s定律。具体地说,积极缩小计算机处理器以提高计算机性能的策略已经暂停,因为现代处理器因此变得更容易受到制造和操作错误的影响。因此,在许多新兴系统上执行的应用程序需要专门设计为通过底层执行平台中的故障来执行。 该项目提供了一种新的编程语言,支持编译器和验证系统,使开发人员能够使用执行平台的模型,即使在底层执行平台存在故障的情况下,也可以提供可证明可靠的计算。该项目的智力价值是开发了最先进的技术来推理程序行为,这些程序行为捕获了不断增长的软计算结构的可用性,例如不可靠的计算机处理器,能量收集系统和网络物理系统。此外,在一个越来越依赖计算系统的社会,该项目?的更广泛的意义是为软件开发人员,工程师和科学家提供新的工具来构建高效和强大的系统,充分利用新硬件平台的优势,同时提供社会所需的可靠,弹性执行。第一类执行模型,捕获执行平台的语义,为给定操作提供替代结果。这样的执行模型是一流的,因为开发者可以与验证系统通信以验证与执行模型本身的显式状态相关的计算的正确性属性。这种方法可行性背后的一个关键驱动因素是项目利用了关系验证。具体地,系统可以推理程序的两个单独的执行:1)程序的理想化可靠执行和2)如由执行模型指定的实际错误执行。 这样的推理1)使用户能够指定属性,例如准确度,其使两个执行之间的值相关,以及2)使系统和用户能够一起有效地验证程序,例如通过证明所需属性对错误执行有效,因为错误不干扰属性的有效性。在这些关键方向的基础上,该项目还研究了新的机制,以构建可靠性感知的优化编译器,即使在存在替代执行模型的情况下,这些编译器仍然可以正确地转换程序。 总之,这个项目的结果将使开发人员能够利用各种各样的新计算平台,这些平台的执行模型是非标准的、高度可配置的和近似的,但仍然可以生成具有强有力保证的应用程序。此外,该提案是通过将结果整合到编程语言设计和实施的新课程中来验证该方法。该奖项反映了NSF的法定使命,并被认为值得通过使用基金会的智力价值和更广泛的影响审查标准进行评估来支持。

项目成果

期刊论文数量(5)
专著数量(0)
科研奖励数量(0)
会议论文数量(0)
专利数量(0)
DiffTune: Optimizing CPU Simulator Parameters with Learned Differentiable Surrogates
DiffTune:使用学习的可微代理优化 CPU 模拟器参数
Programming with neural surrogates of programs
Ithemal: Accurate, Portable and Fast Basic Block Throughput Estimation using Deep Neural Networks
  • DOI:
  • 发表时间:
    2018-08
  • 期刊:
  • 影响因子:
    0
  • 作者:
    Charith Mendis;Saman P. Amarasinghe;Michael Carbin
  • 通讯作者:
    Charith Mendis;Saman P. Amarasinghe;Michael Carbin
VeGen: a vectorizer generator for SIMD and beyond
Leto: verifying application-specific hardware fault tolerance with programmable execution models
Leto:使用可编程执行模型验证特定于应用程序的硬件容错能力
{{ 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 }}

Michael Carbin其他文献

Reinforcement Learning for General LTL Objectives Is Intractable
针对一般 LTL 目标的强化学习很棘手
  • DOI:
  • 发表时间:
    2021
  • 期刊:
  • 影响因子:
    0
  • 作者:
    Cambridge Yang;Michael S. Littman;Michael Carbin
  • 通讯作者:
    Michael Carbin
Proving acceptability properties of relaxed nondeterministic approximate programs
证明宽松的非确定性近似程序的可接受性
?ₛ: computable semantics for differentiable programming with higher-order functions and datatypes
?ₛ:具有高阶函数和数据类型的可微分编程的可计算语义
  • DOI:
  • 发表时间:
    2020
  • 期刊:
  • 影响因子:
    0
  • 作者:
    Benjamin Sherman;Jesse Michel;Michael Carbin
  • 通讯作者:
    Michael Carbin
( Relative ) Safety Properties for Relaxed Approximate Programs
松弛近似程序的(相对)安全属性
  • DOI:
  • 发表时间:
    2012
  • 期刊:
  • 影响因子:
    0
  • 作者:
    Michael Carbin
  • 通讯作者:
    Michael Carbin
Trace types and denotational semantics for sound programmable inference in probabilistic languages
概率语言中声音可编程推理的跟踪类型和指称语义
  • DOI:
  • 发表时间:
    2019
  • 期刊:
  • 影响因子:
    0
  • 作者:
    Alexander K. Lew;Marco F. Cusumano;Benjamin Sherman;Michael Carbin;Vikash K. Mansinghka
  • 通讯作者:
    Vikash K. Mansinghka

Michael Carbin的其他文献

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

{{ truncateString('Michael Carbin', 18)}}的其他基金

SPX: Collaborative Research: NSF Scalable Parallelism in the Extreme (SPX) Workshop on Future Directions for Parallel and Distributed Computing
SPX:协作研究:NSF 可扩展并行性极限 (SPX) 并行和分布式计算未来方向研讨会
  • 批准号:
    1931313
  • 财政年份:
    2019
  • 资助金额:
    $ 52.5万
  • 项目类别:
    Standard Grant
Programming Languages Mentoring Workshop at ACM SIGPLAN Conference on Programming Language Design and Implementation, 2018
2018 年 ACM SIGPLAN 编程语言设计与实现会议上的编程语言指导研讨会
  • 批准号:
    1832649
  • 财政年份:
    2018
  • 资助金额:
    $ 52.5万
  • 项目类别:
    Standard Grant

相似海外基金

CAREER: The Rational Programmer, An Investigative Method for Programming Language Pragmatics
职业:理性程序员,编程语言语用学的一种研究方法
  • 批准号:
    2237984
  • 财政年份:
    2023
  • 资助金额:
    $ 52.5万
  • 项目类别:
    Continuing Grant
NSF Student Travel Grant for the Programming Languages Mentoring Workshop at ACM SIGPLAN Conference on Programming Language Design and Implementation (PLMW@PLDI), 2023-2025
NSF 学生旅费补助金,用于 ACM SIGPLAN 编程语言设计与实现会议 (PLMW@PLDI) 编程语言指导研讨会,2023-2025 年
  • 批准号:
    2310964
  • 财政年份:
    2023
  • 资助金额:
    $ 52.5万
  • 项目类别:
    Standard Grant
Mutation Analysis for Software Testing of Programs Written in the Rust Programming Language
Rust 编程语言编写的程序软件测试的变异分析
  • 批准号:
    2894791
  • 财政年份:
    2023
  • 资助金额:
    $ 52.5万
  • 项目类别:
    Studentship
Developing a programming language for automatic synthesis of assurance cases
开发用于自动合成保证案例的编程语言
  • 批准号:
    23H03376
  • 财政年份:
    2023
  • 资助金额:
    $ 52.5万
  • 项目类别:
    Grant-in-Aid for Scientific Research (B)
The Game Semantics of the Rust Programming Language
Rust 编程语言的游戏语义
  • 批准号:
    2742896
  • 财政年份:
    2022
  • 资助金额:
    $ 52.5万
  • 项目类别:
    Studentship
Validating the type soundness of a programming language through translation into a logical system
通过翻译成逻辑系统来验证编程语言的类型健全性
  • 批准号:
    22K11902
  • 财政年份:
    2022
  • 资助金额:
    $ 52.5万
  • 项目类别:
    Grant-in-Aid for Scientific Research (C)
Collaborative Research: FMitF: Track I: End-usser Programming for CAD Systems via Language Design and Synthesis
协作研究:FMitF:第一轨:通过语言设计和综合进行 CAD 系统的最终用户编程
  • 批准号:
    2219865
  • 财政年份:
    2022
  • 资助金额:
    $ 52.5万
  • 项目类别:
    Standard Grant
Collaborative Research: FMitF: Track I: End-usser Programming for CAD Systems via Language Design and Synthesis
协作研究:FMitF:第一轨:通过语言设计和综合进行 CAD 系统的最终用户编程
  • 批准号:
    2219864
  • 财政年份:
    2022
  • 资助金额:
    $ 52.5万
  • 项目类别:
    Standard Grant
Programming Language Type Systems and Concurrency
编程语言类型系统和并发性
  • 批准号:
    RGPIN-2020-03908
  • 财政年份:
    2022
  • 资助金额:
    $ 52.5万
  • 项目类别:
    Discovery Grants Program - Individual
New Programming Language and Runtime System
新的编程语言和运行时系统
  • 批准号:
    537903-2018
  • 财政年份:
    2021
  • 资助金额:
    $ 52.5万
  • 项目类别:
    Collaborative Research and Development Grants
{{ showInfoDetail.title }}

作者:{{ showInfoDetail.author }}

知道了