Enhancing multiscale computing with sensitivity and uncertainty quantification
19 Mar 2020 - 6 min
Many of the quantitative research and engineering challenges in contemporary science, such as climate, energy, health and disease, are essentially multiscale system problems. Progress in most of these societal grand challenges is determined by our ability to design and implement multiscale models and simulations of the particular systems under study.
In the e-MUSC project, led by Prof. Alfons Hoekstra from the UvA and supported by the Netherlands eScience Center, the aim is to develop generic methods and efficient algorithms for uncertainty quantification and sensitivity analysis for multiscale modelling and simulation, and to implement these as high-quality modules of the publicly available Multi Scale Modelling and Simulation Framework. These methods are accordingly tested, validated and applied on various multiscale applications.
In the following interview, eScience research engineer Lourens Veen, who is involved in e-MUSC, discusses the project and the progress that has been made thus far.
What are multiscale models?
Multiscale models are models of physical systems in which multiple processes at different scales in time and space interact. For example, a commonly used treatment for atherosclerosis involves implanting a stent, which causes some damage to the artery and triggers a healing reaction that involves an interaction between growing cells and blood flow. A human cell takes about a day to grow and reproduce, while a heart beat takes less than a second to complete, so these processes occur on very different temporal scales. A model of this healing process will therefore consist of a cell growth submodel and a blood flow submodel, coupled together in a particular way that takes into account this difference in scale. Other examples of multiscale systems are found in astronomy, materials science, climate science, nuclear physics and many other fields.
Could you briefly explain how Uncertainty Quantification is used in multiscale modelling?
Uncertainty Quantification (UQ) is a process for measuring our level of certainty about a model’s results, taking into account the imprecision in the model’s inputs and inherent randomness in the system. With UQ, we can find out which predictions are possible or likely given what we know and how well we know it. Without UQ, we only get one model result, with no idea if that’s a certain outcome, or only one of many possibilities. Current UQ methods involve either rewriting the model to take uncertainty into account (intrusive UQ), which is time-consuming and not always possible, or running many copies of the unchanged model (non-intrusive UQ), which is computationally very expensive.
In the e-MUSC project, novel semi-intrusive methods have been developed to carry out UQ on multiscale models. These take advantage of the coupled-submodels nature of the multiscale model, and involve adding some components to the model and rewiring it, but without changing the individual submodels. Performance improvements are achieved through the use of surrogate models, which may be trained dynamically while the simulation is running. The error introduced by the use of the surrogate, which is an approximation, is dynamically controlled in order to ensure that the result is sufficiently accurate.
One of the tools you developed is MUSCLE 3. Could you briefly explain what it is and what it does?
MUSCLE 3 is a system for connecting submodels together to simulate multiscale processes. The submodels are connected to MUSCLE 3 via an easy-to-use library (currently available in Python, C++ or Fortran), following which a configuration file describes how many instances of each model there should be, and how they should connect together. The submodels then exchange information via peer-to-peer network connections.
If you use MUSCLE 3, rewiring the model becomes as easy as changing the configuration file and re-running. This lets you easily test different versions of a submodel, modify or save the data being exchanged, or add components for (semi-intrusive) UQ, which will also be included. Moreover, MUSCLE 3 lets you configure the submodels’ settings from the central configuration file, and allows adding components that modify settings on-the-fly, so that ensembles can be set up for UQ, or submodel parameters can be set based on output of another submodel.
When will e-MUSC be completed? And are you planning to make MUSCLE 3 available for use across other research domains?
The e-MUSC project will finish this summer. MUSCLE 3 is research-domain agnostic and can be used for multiscale models in any domain, as can the semi-intrusive Uncertainty Quantification algorithms developed by the project. MUSCLE 3 is publicly available on GitHub, comes with extensive documentation, a unit and integration test suite, and a well-defined process for community contributions. At the Computational Science Lab, MUSCLE 3 will be used in further research on cardiovascular health, and through CSL we collaborate with the EU VECMA project which has applications in nuclear fusion, materials science and refugee modelling.
Will you be doing any further work on MUSCLE?
Yes, in the coming months we will be working on more easily starting MUSCLE-enabled models on clusters and supercomputers (also in collaboration with VECMA), on a generic implementation of the more advanced semi-intrusive UQ method, and on getting the fusion reactor simulation use-case up and running.