The field of complex computational modeling involves the use of advanced hardware and software environments, and the issues faced in the combination of these areas are quite daunting. This paper provides a detailed study of developing software for multiphysics partial differential equation (PDE) applications to produce efficient concurrent implementations that are also accessible in portable environments. To accomplish this task, the authors use graph-based design tools to deal with the modeling as well as the lower-level computational issues.
Frequently, a rigid implementation is developed to achieve high performance for a particular application and hardware. In this paper, to achieve portability, the authors do not concentrate on the usual higher-level algorithms, but instead focus on the lower-level data dependencies using graph-theoretic methods. By focusing on this lower-level approach, the authors localize code changes, which complements high-level tools such as a message passing interface (MPI) and enables the use of threading.
The paper begins with an introduction to the history of software design and the tools and approaches discussed above. Section 2 is the primary theoretical core of the paper, in which the authors discuss their paradigm for software design. This begins with the role of the dependency graph and several figures supporting this approach. The third section focuses on an example of computational fluid dynamics (CFD) with a detailed example of the dependency graph. Section 4 describes a number of advanced capabilities using graphic information developed in this approach. In particular, sensitivity analysis can be accomplished via graph traversal. In another subsection, there is a detailed treatment of thread parallelism, algorithm decomposition, and scheduling approaches, which are exposed via the graphing approach.
This is a well-done paper that is important for the interesting combination of computer and computational science tools, and for the choice of an important complex application (CFD) to demonstrate the nontrivial utility of the proposed approach.