By Johnny Wei-Bing Lin and Tyler Allen Erickson
American Geophysical Union Fall Meeting, 5–9 December 2011, San Francisco, CA. Oral presentation on December 8th.
Historically, the application of high-performance computing (HPC) to the atmospheric sciences has focused on using the increases in processor speed, storage, and parallelization to run longer simulations of larger and more complex models. Such a focus, however, has led to a user culture where code robustness and reusability is ignored or discouraged. Additionally, such a culture works against nurturing and growing connections between high-performance computational earth sciences and scientific users outside of that community. Given the explosion in computational power available to researchers unconnected with the traditional HPC centers, as well as in the number of quality tools available to conduct analysis and visualization, the programming insularity of the earth science modeling and analysis community acts as a formidible barrier to increasing the usefulness and robustness of computational earth science products.
In this talk, we suggest adoption of best practices from the software engineering community, and in particular the open-source community, has the potential to improve the quality of code and increase the impact of earth sciences HPC. In particular, we will discuss the impact of practices such as unit testing and code review, the need and preconditions for code reusability, and the importance of APIs and open frameworks to enable scientific discovery across sub-disciplines. We will present examples of the cross-disciplinary fertilization possible with open APIs. Finally, we will discuss ways funding agencies and the computational earth sciences community can help encourage the adoption of such best practices.
http://packages.python.org/pykml/, http://pyaos.johnny-lin.com/, https://github.com/tylere/OpenClimateGIS
Updated: December 10, 2011. Author: Johnny Lin <email address>. This work is licensed under a Creative Commons Attribution-ShareAlike 2.0 License.