Every computational science application requires supporting software (code libraries, data files, other programs) to run properly. However, the computer systems that complex scientific applications run on are continuously updated by administrators to add new capabilities, fix bugs, and plug security holes. These are necessary changes, but a user needs to know if "something changed in the system that will break his/her code". A similar question arises when running a code on a different computer from which it was compiled or developed: "does the new system have all the necessary support software to run my applications?" This proposal describes a plan for developing the software capability to both statically and dynamically "fingerprint" a scientific application to answer those two questions and therefore test for compatibility of new system or determine if a new update could have deleterious effects. Our proposed software system will have five major components: fingerprint format, static analysis of an application to create one type of fingerprint, a system verifier that checks if a system satisfies the needs defined in a fingerprint, dynamic analysis to find applications dependencies only detectable at run time, and a composer capability to automatically define a Rocks cluster managed system that will fulfill the requirements of a specific fingerprint. All software developed will be open-source and freely available.

Nearly every person who uses a computer has seen messages similar to "new updates have been installed, you must restart your computer." Sometimes, applications break because of these updates. This proposal's broader impact is that, for a wide variety of scientific applications, we will be able to determine if a new system or an existing system is compatible by verifying the code's fingerprint. Since, scientific applications can be very sensitive to underlying software changes, it will be possible to detect incompatibility before wasting time and energy to run a large-scale application on an production systems. When these applications are used as the basis of scientific discovery, it becomes even more imperative that we view the computing environment and application together as an experimental apparatus whose configuration we need to better understand. We believe that the composer capability of this proposal can have the transformational impact by developing fully- descriptive catalogs of what an application needs to function properly. In the era in which simulation output is being used to drive policy, this kind of scientific reproducibility has impact well beyond the notions of academic completeness.

Agency
National Science Foundation (NSF)
Institute
Division of Advanced CyberInfrastructure (ACI)
Type
Standard Grant (Standard)
Application #
1148473
Program Officer
Rajiv Ramnath
Project Start
Project End
Budget Start
2012-04-01
Budget End
2017-03-31
Support Year
Fiscal Year
2011
Total Cost
$500,000
Indirect Cost
Name
University of California San Diego
Department
Type
DUNS #
City
La Jolla
State
CA
Country
United States
Zip Code
92093