Library Subscription: Guest
Home Begell Digital Library eBooks Journals References & Proceedings Research Collections
International Journal for Multiscale Computational Engineering

Impact factor: 0.963

ISSN Print: 1543-1649
ISSN Online: 1940-4352

International Journal for Multiscale Computational Engineering

DOI: 10.1615/IntJMultCompEng.v6.i1.40
pages 39-51

A Multilingual Programming Model for Coupled Systems

E. T. Ong
Department of Atmospheric and Oceanic Sciences, University of Wisconsin, Madison, WI, USA
J. Walter Larson
Mathematics & Computer Science Division, Argonne National Laboratory, Argonne, IL, USA; Computation Institute, University of Chicago, Chicago, IL, USA; ANU Supercomputer Facility, The Australian National University, Canberra, Australia
B. Norris
Mathematics & Computer Science Division, Argonne National Laboratory, Argonne, IL, USA; Computation Institute, University of Chicago, Chicago, IL, USA
R. L. Jacob
Mathematics & Computer Science Division, Argonne National Laboratory, Argonne, IL, USA; Computation Institute, University of Chicago, Chicago, IL, USA
M. Tobis
Department of Geophysical Sciences, University of Chicago, Chicago, IL, USA
M. Steder
Department of Geophysical Sciences, University of Chicago, Chicago, IL, USA

ABSTRACT

Multiphysics and multiscale simulation systems share a common software requirement-infrastructure to implement data exchanges between their constituent parts-often called the coupling problem. On distributed-memory parallel platforms, the coupling problem is complicated by the need to describe, transfer, and transform distributed data, known as the parallel coupling problem. Parallel coupling is emerging as a new grand challenge in computational science as scientists attempt to build multiscale and multiphysics systems on parallel platforms. An additional coupling problem in these systems is language interoperability between their constituent codes. We have created a multilingual parallel coupling programming model based on a successful open-source parallel coupling library, the Model Coupling Toolkit (MCT). This programming model's capabilities reach beyond MCT's native Fortran implementation to include bindings for the C++ and Python programming languages. We describe the method used to generate the interlanguage bindings. This approach enables an object-based programming model for implementing parallel couplings in non-Fortran coupled systems and in systems with language heterogeneity. We describe the C++ and Python versions of the MCT programming model and provide short examples. We report preliminary performance results for the MCT interpolation benchmark. We describe a major Python application that uses the MCT Python bindings, a Python implementation of the control and coupling infrastructure for the community climate system model. We conclude with a discussion of the significance of this work to productivity computing in multidisciplinary computational science.