Correctness for Scientific Computing Systems
Posted: May 10, 2024 12:00:00 AM EDT
Closes: 08/11/2026
Funding Information
Estimated Total Funding
$18,000,000
Description
Correctness for Scientific Computing Systems (CS2) is a joint program of the National Science Foundation (NSF) and the Department of Energy (DOE). The program addresses challenges that are both core to DOE’s mission and essential to NSF’s mission of ensuring broad scientific progress. The program’s overarching goal is to elevate correctness as a fundamental requirement for scientific computing tools and tool chains, spanning low-level libraries through complex multi-physics simulations and emerging scientific workflows.
At an elementary level, correctness of a system means that desired behavioral properties will be satisfied during the system’s execution. In the context of scientific computing, correctness can be understood, at both the level of software and hardware, as absence of faulty behaviors such as excessive numerical rounding, floating-point exceptions, data races deadlocks, memory faults, violations of specifications at interfaces of system modules, and so on. The CS2 program puts correctness on an equal footing with performance, the focus of current scientific computing research. This program envisions the necessity of proving correctness even in performant scientific computing systems. Such correctness proofs themselves might rely upon multiple factors, including correctness of static and runtime program analyses. Recognizing that many scientific computing applications are inherently statistical, use probabilistic or randomized algorithms, and/or deal with uncertain data, probabilistic notions of correctness may be needed. It is also critical to realize that correctness guarantees are provided with respect to some pre-defined system model. For many reasons, including misspecification, approximation, and defect, the state space allowed by real systems might depart from that model. When this happens, the ability to probe the system to isolate the discrepancy is a key challenge in many domains.
CS2 requires close and continuous collaboration between researchers in two complementary areas of expertise. One area is scientific computing, which, for this solicitation, is broadly construed to include: models and simulations of scientific theories; management and analysis of data from scientific simulations, observations, and experiments; libraries for numerical computation; and allied topics. The second area is formal reasoning and mechanized proving of properties of programs, which, for this solicitation, is broadly construed to include automatic/interactive/auto-active verification, runtime verification, type systems, abstract interpretation, programming languages, program analysis, program logic, compilers, concurrency, stochastic reasoning, static and dynamic testing, property-based testing, and allied topics.
At an elementary level, correctness of a system means that desired behavioral properties will be satisfied during the system’s execution. In the context of scientific computing, correctness can be understood, at both the level of software and hardware, as absence of faulty behaviors such as excessive numerical rounding, floating-point exceptions, data races deadlocks, memory faults, violations of specifications at interfaces of system modules, and so on. The CS2 program puts correctness on an equal footing with performance, the focus of current scientific computing research. This program envisions the necessity of proving correctness even in performant scientific computing systems. Such correctness proofs themselves might rely upon multiple factors, including correctness of static and runtime program analyses. Recognizing that many scientific computing applications are inherently statistical, use probabilistic or randomized algorithms, and/or deal with uncertain data, probabilistic notions of correctness may be needed. It is also critical to realize that correctness guarantees are provided with respect to some pre-defined system model. For many reasons, including misspecification, approximation, and defect, the state space allowed by real systems might depart from that model. When this happens, the ability to probe the system to isolate the discrepancy is a key challenge in many domains.
CS2 requires close and continuous collaboration between researchers in two complementary areas of expertise. One area is scientific computing, which, for this solicitation, is broadly construed to include: models and simulations of scientific theories; management and analysis of data from scientific simulations, observations, and experiments; libraries for numerical computation; and allied topics. The second area is formal reasoning and mechanized proving of properties of programs, which, for this solicitation, is broadly construed to include automatic/interactive/auto-active verification, runtime verification, type systems, abstract interpretation, programming languages, program analysis, program logic, compilers, concurrency, stochastic reasoning, static and dynamic testing, property-based testing, and allied topics.
Synopsis
Correctness for Scientific Computing Systems (CS2) is a joint program of the National Science Foundation (NSF) and the Department of Energy (DOE). The program addresses challenges that are both core to DOE’s mission and essential to NSF’s mission of ensuring broad scientific progress. The program’s overarching goal is to elevate correctness as a fundamental requirement for scientific computing tools and tool chains, spanning low-level libraries through complex multi-physics simulations and emerging scientific workflows.
At an elementary level, correctness of a system means that desired behavioral properties will be satisfied during the system’s execution. In the context of scientific computing, correctness can be understood, at both the level of software and hardware, as absence of faulty behaviors such as excessive numerical rounding, floating-point exceptions, data races deadlocks, memory faults, violations of specifications at interfaces of system modules, and so on. The CS2 program puts correctness on an equal footing with performance, the focus of current scientific computing research. This program envisions the necessity of proving correctness even in performant scientific computing systems. Such correctness proofs themselves might rely upon multiple factors, including correctness of static and runtime program analyses. Recognizing that many scientific computing applications are inherently statistical, use probabilistic or randomized algorithms, and/or deal with uncertain data, probabilistic notions of correctness may be needed. It is also critical to realize that correctness guarantees are provided with respect to some pre-defined system model. For many reasons, including misspecification, approximation, and defect, the state space allowed by real systems might depart from that model. When this happens, the ability to probe the system to isolate the discrepancy is a key challenge in many domains.
CS2 requires close and continuous collaboration between researchers in two complementary areas of expertise. One area is scientific computing, which, for this solicitation, is broadly construed to include: models and simulations of scientific theories; management and analysis of data from scientific simulations, observations, and experiments; libraries for numerical computation; and allied topics. The second area is formal reasoning and mechanized proving of properties of programs, which, for this solicitation, is broadly construed to include automatic/interactive/auto-active verification, runtime verification, type systems, abstract interpretation, programming languages, program analysis, program logic, compilers, concurrency, stochastic reasoning, static and dynamic testing, property-based testing, and allied topics.
At an elementary level, correctness of a system means that desired behavioral properties will be satisfied during the system’s execution. In the context of scientific computing, correctness can be understood, at both the level of software and hardware, as absence of faulty behaviors such as excessive numerical rounding, floating-point exceptions, data races deadlocks, memory faults, violations of specifications at interfaces of system modules, and so on. The CS2 program puts correctness on an equal footing with performance, the focus of current scientific computing research. This program envisions the necessity of proving correctness even in performant scientific computing systems. Such correctness proofs themselves might rely upon multiple factors, including correctness of static and runtime program analyses. Recognizing that many scientific computing applications are inherently statistical, use probabilistic or randomized algorithms, and/or deal with uncertain data, probabilistic notions of correctness may be needed. It is also critical to realize that correctness guarantees are provided with respect to some pre-defined system model. For many reasons, including misspecification, approximation, and defect, the state space allowed by real systems might depart from that model. When this happens, the ability to probe the system to isolate the discrepancy is a key challenge in many domains.
CS2 requires close and continuous collaboration between researchers in two complementary areas of expertise. One area is scientific computing, which, for this solicitation, is broadly construed to include: models and simulations of scientific theories; management and analysis of data from scientific simulations, observations, and experiments; libraries for numerical computation; and allied topics. The second area is formal reasoning and mechanized proving of properties of programs, which, for this solicitation, is broadly construed to include automatic/interactive/auto-active verification, runtime verification, type systems, abstract interpretation, programming languages, program analysis, program logic, compilers, concurrency, stochastic reasoning, static and dynamic testing, property-based testing, and allied topics.
Eligibility
Eligible Applicants:
*Who May Submit Proposals: Proposals may only be submitted by the following:
-Non-profit, non-academic organizations: Independent museums, observatories, research laboratories, professional societies and similar organizations located in the U.S. that are directly associated with educational or research activities.
-
Institutions of Higher Education (IHEs) - Two- and four-year IHEs (including community colleges) accredited in, and having a campus located in the US, acting on behalf of their faculty members.
*Who May Serve as PI:
By the submission deadline, any PI, co-PI, or other senior/key personnel must:
o be a DOE National Laboratory employee; or
o must hold either:
at a US-based campus of an organization eligible to submit to this solicitation (see above), with exceptions granted for family or medical leave, as determined by the submitting organization. Individuals with primary appointments at for-profit non-academic organizations or at overseas branch campuses of U.S. institutions of higher education are not eligible.
A project must have at least one (co)-PI with expertise in scientific computing and at least one (co)-PI with expertise in formal reasoning and mechanized proving of properties of programs.
-Non-profit, non-academic organizations: Independent museums, observatories, research laboratories, professional societies and similar organizations located in the U.S. that are directly associated with educational or research activities.
-
Institutions of Higher Education (IHEs) - Two- and four-year IHEs (including community colleges) accredited in, and having a campus located in the US, acting on behalf of their faculty members.
- DOE National Laboratories.
*Who May Serve as PI:
By the submission deadline, any PI, co-PI, or other senior/key personnel must:
o be a DOE National Laboratory employee; or
o must hold either:
- a tenured or tenure-track position, or
- a primary, full-time paid appointment in a research or teaching position
at a US-based campus of an organization eligible to submit to this solicitation (see above), with exceptions granted for family or medical leave, as determined by the submitting organization. Individuals with primary appointments at for-profit non-academic organizations or at overseas branch campuses of U.S. institutions of higher education are not eligible.
A project must have at least one (co)-PI with expertise in scientific computing and at least one (co)-PI with expertise in formal reasoning and mechanized proving of properties of programs.
Funding Activity Categories
CFDA Numbers
- 47.070 - Computer and Information Science and Engineering
- 81.049 - Office of Science Financial Assistance Program
Contact Information
Agency: National Science Foundation
Contact: U.S. National Science Foundation
Email: grantsgovsupport@nsf.gov
Phone: 703-292-4203
NSF grants.gov support
grantsgovsupport@nsf.gov
grantsgovsupport@nsf.gov
Additional Information
Document Type: synopsis
Opportunity Category: Discretionary
Version: 3
Last Updated: Aug 20, 2025 11:00:10 PM EDT
Related Opportunities
AI Analysis & Insights
Get AI-powered insights about this grant opportunity
- Can you provide a brief, easy-to-understand summary of this grant opportunity?
- What types of projects or activities would be a good fit for this grant?
- What are the key eligibility requirements and who is most likely to qualify for this grant?
- What are the most important deadlines and timeline considerations for this grant?
- What are the typical costs and budget considerations for projects funded by this grant?
- What are common challenges or pitfalls to avoid when applying for this grant?
- How competitive is this grant and what can improve my chances of success?
- Ask any question...
AI Analysis