Uncertainty quantification (UQ) has been widely applied in numerical simulation in recent years. Among different UQ methods, the Monte Carlo (MC) method played an important role in the field of UQ due to its simplicity and robustness. However, MC suffers from a low order convergence rate and low execution efficiency in High Performance Computing (HPC) systems. This study introduces a code intrinsic UQ (CIUQ) framework to optimize the performance of MC methods on HPC systems. The CIUQ employs code to code transformation to produce uncertainty intrinsic code (UIC), which extends the uncertain variables by a stochastic dimension, capturing their uncertainty information. Unlike the standard MC, which evaluates samples one by one, the UIC processes all samples as a single input and thus needs to be executed only once. To explore the positions and interactions of uncertain variables, specific algorithms are developed based on traversing the Abstract Syntax Tree (AST) of the original code. This exploration of uncertainty propagation details leads to a comprehensive understanding of variable dynamics within the UIC. Numerical experiments demonstrate that the UIC can improve the vectorization of recursive loops, and take the advantage of single instruction multiple data schemes on different platforms. Moreover, the UIC framework can further increase the data intensity of computational kernels and thus significantly improve strong scalability. These improvements, when compared to standard MC approaches, showcase the effectiveness of the new framework across various types of parallelism, significantly enhancing both efficiency and scalability.
No takes yet. Share an insight, caveat, or question.
Pan et al. (2024) studied this question.
Synapse has enriched 5 closely related papers on similar clinical questions. Consider them for comparative context: