PyCCSM: Prototyping a python-based community climate system model


  • Michael Tobis
  • Michael Steder
  • Robert Jacob
  • Raymond Pierrehumbert
  • Jay Walter Larson
  • Everest Ong



Coupled climate models are multiphysics models comprising multiple separately developed codes that are combined into a single physical system. This composition of codes is amenable to a scripting solution, and Python is a language that offers many desirable properties for this task. We have prototyped a Python coupling and control infrastructure for version 3.0 of the Community Climate System Model (CCSM3). Our objective was to improve dramatically CCSM3's already flexible coupling facilities to enable research uses of the model not currently supported. We report the progress in the first steps in this effort: the construction of Python bindings for the Model Coupling Toolkit, a key piece of third-party coupling middleware used in CCSM3, and a Python-based CCSM3 coupler (PyPCL) application. We report preliminary performance results for this new system, which we call PyCCSM. We find PyCCSM is significantly slower than its Fortran counterpart, and explain how PyPCL's performance may be improved to support production runs. We believe our results augur well for the use of Python in the top-level coupling and organisation of large parallel multiphysics and multiscale applications. References
  • Mohamed E. Fayad, Douglas C. Schmidt, and Ralph E. Johnson. Building Application Frameworks: Object-Oriented Foundations of Framework Design. John Wiley and Sons, New York, 1999.
  • Ian Foster. Designing and Building Parallel Programs: Concepts and Tools for Parallel Software Engineering. Addison Wesley, Reading, Massachusetts, 1995.
  • Helen He and Chris Ding. Coupling multi-component models by mph on distributed memory computer architectures. Int. J. High Perf. Comp. App., 19(3):329--240, 2005. doi:10.1177/1094342005056118
  • Robert Jacob, Jay Larson, and Everest Ong. $M\times N$ communication and parallel interpolation in {CCSM3} using the Model Coupling Tookit. Int. J. High Perf. Comp. App., 19(3):293--308, 2005. doi:10.1177/1094342005056116
  • J. Walter Larson. Ten organising principles for coupling in multiphysics and multiscale models. In Wayne Read, Jay W. Larson, and A. J. Roberts, editors, {Proceedings of the 13th Biennial Computational Techniques and Applications Conference, CTAC-2006}, volume 48 of ANZIAM J., pages C1090--C1111, February 2009.[February 20, 2009].
  • Jay Larson, Robert Jacob, and Everest Ong. The Model Coupling Toolkit: A new {Fortran90} toolkit for building multi-physics parallel coupled models. Int. J. High Perf. Comp. App., 19(3):277--292, 2005. doi:10.1177/1094342005056115
  • Intergovernmental Panel on Climate Change. Climate Change 2007---The Physical Science Basis: Working Group I Contribution to the Fourth Assessment Report of the IPCC. Cambridge University Press, Cambridge, 2007.
  • Everest T. Ong, J. Walter Larson, Boyana Norris, Robert L. Jacob, Michael Tobis, and Michael Steder. A multilingual programming model for coupled systems. International Journal for Multiscale Computational Engineering, 6(1):39--51, 2008. doi:10.1615/IntJMultCompEng.v6.i1.40
  • Craig E. Rasmussen, Matt J. Sottile, Sameer S. Shende, and Allen D. Malony. Bridging the language gap in scientific computing: The CHASM approach. Concurrency and Computation: Practice and Experience, 18(2):151--162, 2006. doi:10.1002/cpe.909
  • Ian D. Chivers and Jane Sleightholme. Compiler support for the fortran 2003 standard. SIGPLAN Fortran Forum, 28(1):26--28, 2009. doi:10.1145/1520752.1520755
  • Anthony P. Craig, Brian Kaufmann, Robert Jacob, Tom Bettge, Jay Larson, Everest Ong, Chris Ding, and Helen He. CPL6: The new extensible high-performance parallel coupler for the Community Climate System Model. Int. J. High Perf. Comp. App., 19(3):309--327, 2005. doi:10.1177/1094342005056117
  • Viktor K. Decyk, Charles D. Norton, and Boleslaw K. Syzmanski. Expressing object-oriented concepts in Fortran90. SIGPLAN Fortran Forum, 16(1):13--18, 1997. doi:10.1145/263877.263880
  • Viktor K. Decyk, Charles D. Norton, and Boleslaw K. Syzmanski. How to support inheritance and run-time polymorphism in fortran 90. Computer Physics Communications, 115(1):9--17, 1998. doi:10.1016/S0010-4655(98)00101-5





Proceedings Computational Techniques and Applications Conference