Supports research focused on correctness as it applies to scientific computing tools and tool chains, spanning low-level libraries through complex multi-physics simulations and emerging scientific workflows.
Supports research focused on correctness as it applies to scientific computing tools and tool chains, spanning low-level libraries through complex multi-physics simulations and emerging scientific workflows.
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.
Program contacts
Name | Phone | Organization | |
---|---|---|---|
Anindya Banerjee
|
cs2@nsf.gov | (703) 292-7885 | CISE/CCF |
Damian Dechev
|
cs2@nsf.gov | (703) 292-8910 | CISE/CCF |
Hal Finkel Program Manager
|
hal.finkel@science.doe.gov | (301) 903-1304 | DOE/SC |