We introduce a general-purpose framework for interconnecting scientificsimulation programs using a homogeneous, unified interface. Our framework isintrinsically parallel, and conveniently separates all component numericalmodules in memory. This strict separation allows automatic unit conversion,distributed execution of modules on different cores within a cluster or grid,and orderly recovery from errors. The framework can be efficiently implementedand incurs an acceptable overhead. In practice, we measure the time spent inthe framework to be less than 1% of the wall-clock time. Due to the unifiedstructure of the interface, incorporating multiple modules addressing the samephysics in different ways is relatively straightforward. Different modules maybe advanced serially or in parallel. Despite initial concerns, we haveencountered relatively few problems with this strict separation betweenmodules, and the results of our simulations are consistent with earlier resultsusing more traditional monolithic approaches. This framework provides aplatform to combine existing simulation codes or develop new physical solvercodes within a rich "ecosystem" of interchangeable modules.
展开▼