In the most basic sense, scientific computing simply refers to the process of organizing, managing, and analyzing scientific data using computers. This process takes place at the interface between several distinct disciplines: Informatics provides both a planning framework and operational rules for acquiring, handling, interpreting, and storing the underlying information in a useful and efficient manner. Computer science and the technologies it produces provide the overarching computational environment, including the core processing “engine” and a means to control it. Relevant branches of mathematics, statistics, and probability arm us with numerical models, algorithms, error representations, and other constructs for describing and solving problems quantitatively. And last but not least, the target science itself (e.g., ecology) provides an overall motivation, research paradigm, and conceptual model to guide the analysis. With these many links to other fields, modern scientific computing is now viewed a field of study unto itself, constantly evolving in step with advances in the disciplines on which it is based.
Collaboration, sharing of expertise, and re-use of information are cornerstones of all NCEAS scientific activities. Our scientific computing solutions must therefore do more than simply generate output. Indeed, we argue that “one-off” solutions are of limited value to the research community, and indeed often of only ephemeral value to the researcher. Whenever possible, we actively seek and strongly advocate computational approaches that (1) can be easily shared among, and repeated by, collaborating scientists who may have different operating systems and limited access to software; (2) are transparent, reliable, and verifiable; (3) have reusable components that future researchers can implement to solve similar computational challenges; and (4) can be easily scaled to handle arbitrarily large problems of similar design.
The analytical software options available at NCEAS follow directly from these considerations. Although occasionally providing specialty programs (upon request) that do not meet all of these criteria, we have otherwise carefully assembled a powerful lineup of scripted, cross-platform, scalable applications that are well-supported, generate robust numerical results, and permit batch processing. Although these packages require an initial learning investment, and may seem intimidating to scientists familiar with only “point-and-click” software, we strongly argue that the long-term payoff is significant.