From ae9939423fd64523cf984ef4979d6fc58f613362 Mon Sep 17 00:00:00 2001 From: Christophe Prud'homme Date: Fri, 13 Sep 2024 09:08:38 +0200 Subject: [PATCH] Updates from Overleaf --- software/uranie/WP6/WP6.tex | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/software/uranie/WP6/WP6.tex b/software/uranie/WP6/WP6.tex index cf7457d..3c379c2 100644 --- a/software/uranie/WP6/WP6.tex +++ b/software/uranie/WP6/WP6.tex @@ -3,14 +3,32 @@ \section{Software: Uranie} \begin{itemize} \item \textbf{Contact Email(s):} rudy.chocat@cea.fr, jean-baptiste.blanchard@cea.fr - \item \textbf{Supported Architecture(s):} CPU - \item \textbf{Repository Link:} \href{https://sourceforge.net/projects/uranie/}{https://sourceforge.net/projects/uranie/} + \item \textbf{Supported Architecture(s):} CPU, GPU + \item \textbf{Repository Link:} \href{https://uranie.cea.fr/}{https://uranie.cea.fr/} \end{itemize} \subsection{Software Overview} \label{sec:WP6:Uranie:summary} -Provide a brief overview of the software with respect to WP6. +Uranie platform is based on ROOT and has by cosnequence a lot of ROOT characteristics such as: +\begin{itemize} + \item interactive C++ interpreter (Cling) based on LLVM and Clang + \item Python interface (PyROOT) + \item SQL database access +\end{itemize} +Uranie is organized in different modules, each devoted to a specific task in the Uncertainty Quantification (UQ) framework. +\begin{itemize} + \item \textbf{DataServer module:} The DataServer module is the heart of the Uranie platform, and contains the DataServer class. It contains all the necessary information on the variables in a problem (names, units, probability distributions, data files, etc.) and enables basic statistical operations to be performed. + \item \textbf{Sampler module:} This module contains sampling algorithms, such as Monte Carlo or Latin Hypercube Sampling. + \item \textbf{Launcher \& Relauncher modules:} The Launcher and Relauncher module apply an analytical function (python or C++), external simulation code or any combination of these to the contents of a DataServer. The contents of the DataServer can result from a design of experiments generated using one of the sampling techniques, or can be loaded from an external source (ASCII file, SQL database, etc.). Calculations can be easily launched on a cluster or parallelized using different paradigms: fork, shared memory (thread), separate memory (MPI)... + \item \textbf{Modeler module:} The Modeler module can be used to build a surrogate model linking the output(s) and input factors (polynomial models, neural networks, etc.) as closely as possible to the results contained in a set of supplied points serving as a train sample. + \item \textbf{Sensitivity module:} The Sensitivity module is used to perform a sensitivity analysis of one of the output responses in relation to the input factors. Estimation of Sobol' indices and HSIC indices are implemented in this module. + \item \textbf{Optimizer \& Reoptimizer module:} The Optimizer and Reoptimizer libraries are dedicated to model optimization and calibration. Model calibration consists in defining a model's “degrees of freedom” so that future simulations can be optimally adapted to an experimental database. Optimization is a complex procedure, and several techniques are available to perform it with single- or multi-criteria objectives, with or without constraints. + \item \textbf{MeteModelOptim module:} The MetaModelOptim library is a module dedicated to optimizations where it is necessary to couple the generation of surrogate models (and more precisely kriging techniques) to genetic algorithms in an EGO-type approach. + \item \textbf{Calibration module:} The Calibration module is a dedicated module for obtaining the best estimates of some of the parameters of a specific model under consideration. Optimization algorithms and Metropolis-Hastings MCMC sampler are available in this module. + \item \textbf{Reliability module:} The Reliability module is dedicated to reliability analysis, i.e. the determination of the low probabilities characterizing rare events, such as failures. +\end{itemize} + \subsection{Parallel Capabilities} \label{sec:WP6:Uranie:performances} @@ -43,4 +61,4 @@ \subsubsection{Benchmark \#1} \subsection{12 months roadmap} \label{sec:WP6:Uranie:roadmap} -Describe the planned improvements for the software in the context of WP6 and Exa-MA for the year to come that will be adressed in the next version of this deliverable. \ No newline at end of file +In the context of exascale computation, Uranie will have to perform uncertainty quantification on more complex simulation softwares, that will be heavily parallelized using for instance MPI or OpenMP, and run on supercomputers. For the specific case of uncertainty propagation. Ensemble-runs of a simulation software has to be performed, and this can be tricky when the software is parallelized. Memory storage will also be challenging in the exascale era and "on the fly" handling of the output data generated by the simulation software has to be performed by Uranie. In the next deliverable, an adaptation of the Relauncher module using the ICoCo API (\url{https://github.com/cea-trust-platform/icoco-coupling}) will be proposed and illustrated on an uncertainty propagation task using TRUST software, with on the fly processing of the data generated using TRUST Python API. \ No newline at end of file