OpportunityTitle: Correctness for Scientific Computing Systems
AdditionalInformationOnEligibility: *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.   - &lt;span&gt;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.&lt;/span&gt;  &lt;ul&gt; &lt;li&gt;DOE National Laboratories.&lt;/li&gt; &lt;/ul&gt;  *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:  &lt;ul&gt; &lt;li&gt; a tenured or tenure-track position, or&lt;/li&gt; &lt;/ul&gt; &lt;ul&gt; &lt;li&gt; a primary, full-time paid appointment in a research or teaching position&lt;/li&gt; &lt;/ul&gt;  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.
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&#8217;s mission and essential to NSF&#8217;s mission of ensuring broad scientific progress. The program&#8217;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&#8217;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.
GrantorContactEmailDescription: If you have any problems linking to this funding announcement, please contact the email address above.
GrantorContactText: NSF grants.gov support&lt;br/&gt;grantsgovsupport@nsf.gov