New Directions in Uncertainty Quantification Using Task-based Programming - Papadakis, Manolis (ProQuest Dissertations & Theses, 2019)
Many problems of interest in modern computational science and engineering involve multiple interacting physical processes. To properly simulate such problems computational scientists must combine multiple physics solvers in a tightly-coupled environment. Mainstream low-level HPC programming frameworks are a poor match for the complexities of such applications, especially given the need to adapt to rapidly-changing hardware platforms, that are becoming increasingly heterogeneous. Moreover, the predictive power of such complex applications is hindered by their large number of uncertain inputs, making Uncertainty Quantification (UQ) a critical feature of any multi-physics solver. However, the current practice of UQ involves a high degree of manual effort, and current tools do not take full advantage of the available parallelism.We believe that Task-Based Programming, a distributed programming approach that has gained popularity in recent years, can significantly improve multiple aspects of building multi-physics applications. Task-based systems, with their higher level of abstraction, are simpler to program than traditional HPC frameworks like MPI, and the final code is easier to tune, port and maintain. Additionally, such systems have the potential to significantly improve the time required to perform UQ studies, not just by improving how efficiently ensembles can be executed, but also by automating many aspects of UQ that are currently performed by hand, and possibly even enable new UQ algorithms.In this dissertation we report on our experience developing Soleil-X, a multi-physics solver supporting coupled simulations of fluid, particles and radiation, in the Legion task-based programming system. We discuss how to design and optimize such an application, and evaluate our solver's scalability on Sierra, a leadership-class supercomputer. We implement UQ support for Soleil-X and use it to prototype a framework for automatically constructing an optimal low-fidelity model for use in UQ studies. We apply this framework on a medium-size simulation and compare its performance against human experts. Finally, we discuss the problem of optimizing the execution of UQ ensembles.