34
www.cea.fr The Uranie platform J-B. Blanchard, F. Gaudier, J-M. Martinez, G. Arnaud [email protected] SIAM-UQ 2018 – 2018/04/18 –

The Uranie platform · The Uranie platform Developed at CEA/DEN to help partners handling sensitivity, meta-modelling and optimisation problems. Written in C++ (˘2 releases a year),

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: The Uranie platform · The Uranie platform Developed at CEA/DEN to help partners handling sensitivity, meta-modelling and optimisation problems. Written in C++ (˘2 releases a year),

www.cea.fr

The Uranie platform

J-B. Blanchard, F. Gaudier, J-M. Martinez, G. [email protected]

SIAM-UQ 2018 – 2018/04/18 –

Page 2: The Uranie platform · The Uranie platform Developed at CEA/DEN to help partners handling sensitivity, meta-modelling and optimisation problems. Written in C++ (˘2 releases a year),

Outline

In a nutshellROOTUranie

The Uranie projectGlobal overviewSchematic workflow examplesThe modular organisation

Tools for interoperabilityDealing with external pieces of codeCommunication with other platforms

Available methodologiesFocus on some modulesEyes-on a simple script

Development and future plans

CEA-DEN/DANS/DM2S/STMF/LGLS | 2018/04/18 | PAGE 2/24

Page 3: The Uranie platform · The Uranie platform Developed at CEA/DEN to help partners handling sensitivity, meta-modelling and optimisation problems. Written in C++ (˘2 releases a year),

The ROOT platform

Developed at CERN to help analyse the huge amount of data deliveredby the successive particle accelerators

Written in C++ (3/4 releases a year)

Multi platform (Unix/Windows/Mac OSX)Started and maintained over more than 20 yearsIt brings:Ù a C++ interpreter, but also Python and Ruby interfaceÙ a hierarchical object-oriented database (machine independent and highly compressed)Ù advanced visualisation tool (graphics are very important in High energy physics)Ù statistical analysis tools (RooStats, RooFit . . . )Ù and many more (3D object modelling, distributed computing interface. . . )LGPL

CEA-DEN/DANS/DM2S/STMF/LGLS | 2018/04/18 | PAGE 3/24

Page 4: The Uranie platform · The Uranie platform Developed at CEA/DEN to help partners handling sensitivity, meta-modelling and optimisation problems. Written in C++ (˘2 releases a year),

The Uranie platform

Developed at CEA/DEN to help partners handling sensitivity,meta-modelling and optimisation problems.

Written in C++ (∼2 releases a year), based on ROOTMulti platform (developed on Unix and tested on Windows)It brings simple data access:Ù Flat ASCII file, XML, JSON . . .Ù TTree (internal ROOT format)Ù SQL database accessProvides advanced visualisation tools (on top of ROOT’s one)Allows some analysis to be run in parallel through various mechanismÙ simple fork processingÙ shared-memory distribution (pthread)Ù split-memory distribution (mpirun)Ù through graphical card (GPU)Main purpose is tools for:Ù construction of design-of-experimentÙ uncertainty propagationÙ surrogate models generationÙ sensitivity analysisÙ optimisation problemÙ reliability analysisLGPL CEA-DEN/DANS/DM2S/STMF/LGLS | 2018/04/18 | PAGE 4/24

Page 5: The Uranie platform · The Uranie platform Developed at CEA/DEN to help partners handling sensitivity, meta-modelling and optimisation problems. Written in C++ (˘2 releases a year),

The Uranie project

Page 6: The Uranie platform · The Uranie platform Developed at CEA/DEN to help partners handling sensitivity, meta-modelling and optimisation problems. Written in C++ (˘2 releases a year),

General organisation: version 3.12 (1/2)

General description:ROOT version: 5.34.3611 modules / 246 classes∼ 134 000 lines of codeCompilation using CMAKE

Regularly tested:7 Linux platforms and Windows 7 every night∼ 1500 unitary tests with CPPUNIT

∼ 83% coverage with GCOV (without logs)Memory leak check with VALGRIND

Documentation: 3 different levels2 using DOCBOOK, generating both PDF and HTML formats.

Methodological reference (∼ 60 pages)User manual: ∼ 550 pages∼ 250 pages: describing methods and their options.∼ 250 pages: use-case macros (∼ 100 examples)

Developer’s guide using DOXYGEN (HTML only)describing methods from comments in the code

CEA-DEN/DANS/DM2S/STMF/LGLS | 2018/04/18 | PAGE 6/24

Page 7: The Uranie platform · The Uranie platform Developed at CEA/DEN to help partners handling sensitivity, meta-modelling and optimisation problems. Written in C++ (˘2 releases a year),

General organisation: version 3.12 (2/2)

Developed in C++ on Linux, butCan be compiled on Windows as well

Ù We provide (on-demand) a self-consistent binaryarchive to be put anywhere one needs (recommended).Very few “#ifdef WIN32”

Ù Same macro can be run both on Linux and WindowsEvery macro in C++ can be written in PYTHON as well

Linu

xW

indows

CEA-DEN/DANS/DM2S/STMF/LGLS | 2018/04/18 | PAGE 7/24

Page 8: The Uranie platform · The Uranie platform Developed at CEA/DEN to help partners handling sensitivity, meta-modelling and optimisation problems. Written in C++ (˘2 releases a year),

Workflow: breakdown into steps

Main steps:A: problem definition

Ù Uncertain input variablesÙ Variable/quantity of interestÙ Model construction

B: uncertainty quantificationÙ Choice of pdfsÙ Choice of correlations

B’: quantification of sourcesÙ Inverse methods using data

to constrain input values anduncertaintiesC: uncertainty propagation

Ù Evolution of output variabilityw.r.t input uncertaintyC’: sensitivity analysis

Ù Uncertainty source sorting

These steps are usually model dependent, it might be useful to iterateto help converging to proper conclusions

CEA-DEN/DANS/DM2S/STMF/LGLS | 2018/04/18 | PAGE 8/24

Page 9: The Uranie platform · The Uranie platform Developed at CEA/DEN to help partners handling sensitivity, meta-modelling and optimisation problems. Written in C++ (˘2 releases a year),

Workflow: breakdown into steps

Main steps:A: problem definition

Ù Uncertain input variablesÙ Variable/quantity of interestÙ Model construction

B: uncertainty quantificationÙ Choice of pdfsÙ Choice of correlations

B’: quantification of sourcesÙ Inverse methods using data

to constrain input values anduncertaintiesC: uncertainty propagation

Ù Evolution of output variabilityw.r.t input uncertaintyC’: sensitivity analysis

Ù Uncertainty source sorting

These steps are usually model dependent, it might be useful to iterateto help converging to proper conclusions

CEA-DEN/DANS/DM2S/STMF/LGLS | 2018/04/18 | PAGE 8/24

Page 10: The Uranie platform · The Uranie platform Developed at CEA/DEN to help partners handling sensitivity, meta-modelling and optimisation problems. Written in C++ (˘2 releases a year),

Workflow: breakdown into steps

Main steps:A: problem definition

Ù Uncertain input variablesÙ Variable/quantity of interestÙ Model construction

B: uncertainty quantificationÙ Choice of pdfsÙ Choice of correlations

B’: quantification of sourcesÙ Inverse methods using data

to constrain input values anduncertaintiesC: uncertainty propagation

Ù Evolution of output variabilityw.r.t input uncertaintyC’: sensitivity analysis

Ù Uncertainty source sorting

These steps are usually model dependent, it might be useful to iterateto help converging to proper conclusions

CEA-DEN/DANS/DM2S/STMF/LGLS | 2018/04/18 | PAGE 8/24

Page 11: The Uranie platform · The Uranie platform Developed at CEA/DEN to help partners handling sensitivity, meta-modelling and optimisation problems. Written in C++ (˘2 releases a year),

Workflow: breakdown into steps

Main steps:A: problem definition

Ù Uncertain input variablesÙ Variable/quantity of interestÙ Model construction

B: uncertainty quantificationÙ Choice of pdfsÙ Choice of correlations

B’: quantification of sourcesÙ Inverse methods using data

to constrain input values anduncertaintiesC: uncertainty propagation

Ù Evolution of output variabilityw.r.t input uncertaintyC’: sensitivity analysis

Ù Uncertainty source sorting

These steps are usually model dependent, it might be useful to iterateto help converging to proper conclusions

CEA-DEN/DANS/DM2S/STMF/LGLS | 2018/04/18 | PAGE 8/24

Page 12: The Uranie platform · The Uranie platform Developed at CEA/DEN to help partners handling sensitivity, meta-modelling and optimisation problems. Written in C++ (˘2 releases a year),

Workflow: breakdown into steps

Main steps:A: problem definition

Ù Uncertain input variablesÙ Variable/quantity of interestÙ Model construction

B: uncertainty quantificationÙ Choice of pdfsÙ Choice of correlations

B’: quantification of sourcesÙ Inverse methods using data

to constrain input values anduncertaintiesC: uncertainty propagation

Ù Evolution of output variabilityw.r.t input uncertaintyC’: sensitivity analysis

Ù Uncertainty source sorting

These steps are usually model dependent, it might be useful to iterateto help converging to proper conclusions

CEA-DEN/DANS/DM2S/STMF/LGLS | 2018/04/18 | PAGE 8/24

Page 13: The Uranie platform · The Uranie platform Developed at CEA/DEN to help partners handling sensitivity, meta-modelling and optimisation problems. Written in C++ (˘2 releases a year),

Workflow: breakdown into steps

Main steps:A: problem definition

Ù Uncertain input variablesÙ Variable/quantity of interestÙ Model construction

B: uncertainty quantificationÙ Choice of pdfsÙ Choice of correlations

B’: quantification of sourcesÙ Inverse methods using data

to constrain input values anduncertaintiesC: uncertainty propagation

Ù Evolution of output variabilityw.r.t input uncertaintyC’: sensitivity analysis

Ù Uncertainty source sorting

These steps are usually model dependent, it might be useful to iterateto help converging to proper conclusions

CEA-DEN/DANS/DM2S/STMF/LGLS | 2018/04/18 | PAGE 8/24

Page 14: The Uranie platform · The Uranie platform Developed at CEA/DEN to help partners handling sensitivity, meta-modelling and optimisation problems. Written in C++ (˘2 releases a year),

The module point of view

Few dependencies:Compulsory: ROOT, CPPUNIT, CMAKE

Optional: PCL, NLOPT, OPT++*, MPI, FFTW, CUDA

(*) a patched version of OPT++ is brought along in the archive

Organised in modules:Some are more technical ones:

Ù DataServer: data handling and first statistical treatmentÙ (Re)Launcher: interfaces to code/function handling.

Can deal with code, PYTHON-function, C++-interpretedand compiled functionsMany are dedicated ones:

Ù Sampler: creation of design-of-experimentsÙ Modeler: surrogate-model generationÙ (Re)Optimizer: mono/multi criteria optimisationÙ Sensitivity: ranking inputs w.r.t impact on the output

DataServer

Optimizer

Modeler

ReOptimizer

UncertModeler

Sampler

Sensitivity

ReLauncher

Launcher

Reliability

FFTW

MPI

Opt++

NLopt

PCL

CUDA+boost

1

Uranie’s module Uranie’s dependence

The next following slides will discuss the content of the main dedicatedmodules

CEA-DEN/DANS/DM2S/STMF/LGLS | 2018/04/18 | PAGE 9/24

Page 15: The Uranie platform · The Uranie platform Developed at CEA/DEN to help partners handling sensitivity, meta-modelling and optimisation problems. Written in C++ (˘2 releases a year),

Tools for interoperability

Page 16: The Uranie platform · The Uranie platform Developed at CEA/DEN to help partners handling sensitivity, meta-modelling and optimisation problems. Written in C++ (˘2 releases a year),

Submitting code computations

Launching functions:Analytic C++ functions: myFunction (double *x, double *y)

Ù inputs/outputs are double-precision.Analytic PYTHON functions and compiled C++ functions

Ù inputs/outputs are double-precision, strings or varying-size vectors of double.

Launching external codes (considering them as black boxes):Ù inputs/outputs are double-precision, strings or varying-size vectors of double.Non-intrusive approach: communication is done through input/output file with many possible formats

line format: every input/output has its own linecolumn format: every input/output has its own columnXML format:key=value: every input/output has its own key and corresponding value is separated by “=”flag format: input file is modified to put specific flags in the text (“@rw@” in next slide)

Ù Can specify boundaries (vectors and string) and delimiters for two elements (vectors).

Distributing the computationssimple fork processingshared-memory distribution: using pthreadsplit-memory distribution: using mpirun

CEA-DEN/DANS/DM2S/STMF/LGLS | 2018/04/18 | PAGE 11/24

Page 17: The Uranie platform · The Uranie platform Developed at CEA/DEN to help partners handling sensitivity, meta-modelling and optimisation problems. Written in C++ (˘2 releases a year),

Example of flag format

AdvantageAllow to keep a complicated input file, as long as its structure does not change

File containing flags Modified file

CEA-DEN/DANS/DM2S/STMF/LGLS | 2018/04/18 | PAGE 12/24

Page 18: The Uranie platform · The Uranie platform Developed at CEA/DEN to help partners handling sensitivity, meta-modelling and optimisation problems. Written in C++ (˘2 releases a year),

Example of flag format

AdvantageAllow to keep a complicated input file, as long as its structure does not change

File containing flags Modified file

CEA-DEN/DANS/DM2S/STMF/LGLS | 2018/04/18 | PAGE 12/24

Page 19: The Uranie platform · The Uranie platform Developed at CEA/DEN to help partners handling sensitivity, meta-modelling and optimisation problems. Written in C++ (˘2 releases a year),

Communication with other platforms

Use standard input/output language to import/export data and models, to helpcommunicate with other platforms (XML, PMML, JSON. . . )

"DataServer" library - JSON format

{"_metadata" : {

"table_name" : "IRIS_Fisher","table_description" : "Fisher Iris Data Set","short_names" : [

"SepalLength", "SepalWidth","PetalLength", "PetalWidth", "Species" ],

"date" : "Thu Mar 17 11:40:48 2016"}"items" : [ {"PetalLength" : 14, "PetalWidth" : 2,"SepalLength" : 50, "SepalWidth" : 33, "Species" : 1}, "items" : { ...

Import/Export data in Json format in order to :

• Benefit the features of D3 (D3js.org)− Interactive visualisation into a browser− Several available graphics (Cobweb, Sun-

Burst, Treemap,..)• Visualize the same data file in ParaView / Paravis

module of Salomé• Proposal as a common format for data with OpenTURNS

CEA-DEN/DANS/DM2S/STMF/LGLS | 2018/04/18 | PAGE 13/24

Page 20: The Uranie platform · The Uranie platform Developed at CEA/DEN to help partners handling sensitivity, meta-modelling and optimisation problems. Written in C++ (˘2 releases a year),

A glimpse at the main modules

Page 21: The Uranie platform · The Uranie platform Developed at CEA/DEN to help partners handling sensitivity, meta-modelling and optimisation problems. Written in C++ (˘2 releases a year),

Dataserver module: create and handling variables

With the DataServer module, one can:create new variables from existing onescompute first statistical

Mean, standard deviation, minimum, maximumNormalisationCorrelation matricesQuantile (various definition, among which Wilks’ ones)

define variables using pre-defined statistical laws among:uniform, gaussian, exponential, triangular, beta, weibull. . .create plots and import/export data (ASCII, XML, JSON. . . )Ù See next slide.

x1− 0.5− 0 0.5 1

PD

F

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

Uniform Normal GumbelMax

x1− 0.5− 0 0.5 1

CD

F

0

0.2

0.4

0.6

0.8

1

Uniform Normal GumbelMax

p(x)0 0.2 0.4 0.6 0.8 1

InvC

DF

1.5−

1−

0.5−

0

0.5

1

1.5

2

Uniform Normal GumbelMax

CEA-DEN/DANS/DM2S/STMF/LGLS | 2018/04/18 | PAGE 15/24

Page 22: The Uranie platform · The Uranie platform Developed at CEA/DEN to help partners handling sensitivity, meta-modelling and optimisation problems. Written in C++ (˘2 releases a year),

Dataserver module: import/export/represent data

// Loading namespaces to get rid of complicated namesusing namespace URANIE :: DataServer;

// Create dataserver and fill if with data fileTDataServer * tds = new TDataServer("Name", "Titre");tds ->fileDataRead("geyser.dat");

// Create the canvas on which plots will be laidTCanvas *Can = new TCanvas("Can1","Can1" ,10 ,32 ,800 ,1200);Can ->Divide (2,3);// Divide the canvas into 6 pads

//2-dimensionnal plots with iso -level as colorCan ->cd(1); tds ->drawScatterplot("x2:x1");//2-dimensionnal plots with average of x2 vs x1Can ->cd(2); tds ->drawProfile("x2:x1","","same");

//2-dimensionnal plot with projection onto both axisCan ->cd(3); tds ->drawTufte("x2:x1");//All variables two -by-two and 1-dimensionnal plot in diagonalCan ->cd(4); tds ->drawPairs ();

//Plot CDF and CCDF curve for x2 variableCan ->cd(5); tds ->drawCDF("x2","","ccdf");//Plot BoxPlot (mean , standard deviation , mediane , quantiles ...)Can ->cd(6); tds ->drawBoxPlot("x2");

Can be used eitherinteractively: (%) root File.C

compiled:(%) g++ -o Exec File.C ` echo $URANIECPPFLAG $URANIELDFLAG`(%) ./Exec

interactively in PYTHON: (%) python -i File.py

[Sec]1 x1.5 2 2.5 3 3.5 4 4.5 5

2 xδ

40

50

60

70

80

90

100

0

1

2

3

4

5

6

Scatterplot x2:x1

[Sec]1 x1.5 2 2.5 3 3.5 4 4.5 5

2 xδ

40

50

60

70

80

90

100

Scatterplot x2:x1

[Sec]1 x1.5 2 2.5 3 3.5 4 4.5 5

2 xδ

40

50

60

70

80

90

100

[Sec]1

x1.5 2 2.5 3 3.5 4 4.5 5

2 xδ

40

50

60

70

80

90

100

Tufte graph x2:x1 htempEntries 272Mean 3.488

RMS 1.139

[Sec]1 x1.5 2 2.5 3 3.5 4 4.5 50

2

4

6

8

10

12

14

htempEntries 272Mean 3.488

RMS 1.139

Histogram x1

2 xδ

40 50 60 70 80 90 100

[Sec

]1

x

1.5

2

2.5

3

3.5

4

4.5

5

Scatterplot x1:x2

[Sec]1 x1.5 2 2.5 3 3.5 4 4.5 5

2 xδ

40

50

60

70

80

90

100

Scatterplot x2:x1 htemp

Entries 272Mean 70.9

RMS 13.57

2 xδ

40 50 60 70 80 90 1000

2

4

6

8

10

12

14

htempEntries 272Mean 70.9

RMS 13.57

Histogram x2

2 xδ 40 50 60 70 80 90 100

0

0.2

0.4

0.6

0.8

1

CDF & CCDF x2

2 xδAttribute :

CDF

CCDF

CDF & CCDF x2 x2

40 50 60 70 80 90 100

CEA-DEN/DANS/DM2S/STMF/LGLS | 2018/04/18 | PAGE 16/24

Page 23: The Uranie platform · The Uranie platform Developed at CEA/DEN to help partners handling sensitivity, meta-modelling and optimisation problems. Written in C++ (˘2 releases a year),

Dataserver module: import/export/represent data

import ROOTfrom ROOT.URANIE import DataServer as DS

## Create dataserver and fill if with data filetds = DS.TDataServer("Name", "Titre");tds.fileDataRead("geyser.dat");

## Create the canvas on which plots will be laidCan = ROOT.TCanvas("Can1","Can1" ,10 ,32 ,800 ,1200);Can.Divide (2,3);## Divide the canvas into 6 pads

## 2-dimensionnal plots with iso -level as colorCan.cd(1); tds.drawScatterplot("x2:x1");## 2-dimensionnal plots with average of x2 vs x1Can.cd(2); tds.drawProfile("x2:x1","","same");

## 2-dimensionnal plot with projection onto both axisCan.cd(3); tds.drawTufte("x2:x1");## All variables two -by -two and 1-dimensionnal plot in diagonalCan.cd(4); tds.drawPairs ();

## Plot CDF and CCDF curve for x2 variableCan.cd(5); tds.drawCDF("x2","","ccdf");## Plot BoxPlot (mean , standard deviation , mediane , quantiles ...)Can.cd(6); tds.drawBoxPlot("x2");

Can be used eitherinteractively: (%) root File.C

compiled:(%) g++ -o Exec File.C ` echo $URANIECPPFLAG $URANIELDFLAG`(%) ./Exec

interactively in PYTHON: (%) python -i File.py

[Sec]1 x1.5 2 2.5 3 3.5 4 4.5 5

2 xδ

40

50

60

70

80

90

100

0

1

2

3

4

5

6

Scatterplot x2:x1

[Sec]1 x1.5 2 2.5 3 3.5 4 4.5 5

2 xδ

40

50

60

70

80

90

100

Scatterplot x2:x1

[Sec]1 x1.5 2 2.5 3 3.5 4 4.5 5

2 xδ

40

50

60

70

80

90

100

[Sec]1

x1.5 2 2.5 3 3.5 4 4.5 5

2 xδ

40

50

60

70

80

90

100

Tufte graph x2:x1 htempEntries 272Mean 3.488

RMS 1.139

[Sec]1 x1.5 2 2.5 3 3.5 4 4.5 50

2

4

6

8

10

12

14

htempEntries 272Mean 3.488

RMS 1.139

Histogram x1

2 xδ

40 50 60 70 80 90 100

[Sec

]1

x

1.5

2

2.5

3

3.5

4

4.5

5

Scatterplot x1:x2

[Sec]1 x1.5 2 2.5 3 3.5 4 4.5 5

2 xδ

40

50

60

70

80

90

100

Scatterplot x2:x1 htemp

Entries 272Mean 70.9

RMS 13.57

2 xδ

40 50 60 70 80 90 1000

2

4

6

8

10

12

14

htempEntries 272Mean 70.9

RMS 13.57

Histogram x2

2 xδ 40 50 60 70 80 90 100

0

0.2

0.4

0.6

0.8

1

CDF & CCDF x2

2 xδAttribute :

CDF

CCDF

CDF & CCDF x2 x2

40 50 60 70 80 90 100

CEA-DEN/DANS/DM2S/STMF/LGLS | 2018/04/18 | PAGE 16/24

Page 24: The Uranie platform · The Uranie platform Developed at CEA/DEN to help partners handling sensitivity, meta-modelling and optimisation problems. Written in C++ (˘2 releases a year),

Sampler module

Used to generate the design-of-experiments, basis of many analysis.Some methods can deal with correlation as well.

Two main categoriesStochastic designs:Ù Simple Random Sampling (SRS)Ù Latin Hypercube Sampling (LHS), MaximLHS. . .Ù One-At-a-Time Sampling (OAT)Ù Archimedian copulasÙ Random fields...Deterministic designs:Ù Regular quasi Monte-Carlo: Halton/Sobol sequenceÙ Sparce grid sampling: PetrasÙ Space filling design

CEA-DEN/DANS/DM2S/STMF/LGLS | 2018/04/18 | PAGE 17/24

Page 25: The Uranie platform · The Uranie platform Developed at CEA/DEN to help partners handling sensitivity, meta-modelling and optimisation problems. Written in C++ (˘2 releases a year),

Modeler module

Create a surrogate-model to reproduce the behaviour of provided dataSeveral possible models to be chosen:

Polynomial regressionsGeneralised linear modelsk-Nearest neighbourKernel methodsArtificial Neural Networks (ANN/MLP)Chaos polynomial expansionGaussian process (kriging with gpLib)

Ù Models can be exported in different format (C++,fortran, PMML) in order to be re-used later on.

CEA-DEN/DANS/DM2S/STMF/LGLS | 2018/04/18 | PAGE 18/24

Page 26: The Uranie platform · The Uranie platform Developed at CEA/DEN to help partners handling sensitivity, meta-modelling and optimisation problems. Written in C++ (˘2 releases a year),

Optimizer module

Dealing with optimisation problem usually means:Single Objective (SO) or Multi Objectives (MO) to beminimisedparameters that have an impact on objectivepossible constraint on these parameters

Many possible implementation for this, based on:Minuit: ROOT’s SO optimisation library without constraintOpt++: SO optimisation library with/without constraintNLopt: SO optimisation library with/without constraintVizir: CEA’s MO optimisation library with/without constraint,based on stochastic algorithms (e.g. genetic algorithms)

crit1

1.1−

1−

0.9−

0.8−

0.7−

0.6−

0.5−

0.4−

0.3−

x1− 0.5− 0 0.5 1

y

0.8−

0.6−

0.4−

0.2−

0

0.2

0.4

0.6

0.8

crit2

0.8−

0.7−

0.6−

0.5−

0.4−

0.3−

0.2−

0.1−

x1− 0.5− 0 0.5 1

y

0.8−

0.6−

0.4−

0.2−

0

0.2

0.4

0.6

0.8

x1− 0.5− 0 0.5 1

y

0.8−

0.6−

0.4−

0.2−

0

0.2

0.4

0.6

0.8

Parameters spaceFirst familyPareto set

crit11.2− 1− 0.8− 0.6− 0.4− 0.2−

crit2

0.9−

0.8−

0.7−

0.6−

0.5−

0.4−

0.3−

0.2−

0.1−

0

Objectives spaceFirst familyPareto front

CEA-DEN/DANS/DM2S/STMF/LGLS | 2018/04/18 | PAGE 19/24

Page 27: The Uranie platform · The Uranie platform Developed at CEA/DEN to help partners handling sensitivity, meta-modelling and optimisation problems. Written in C++ (˘2 releases a year),

Sensitivity module

Tools to evaluate the sensitivity of theoutputs of a code/function to its inputs.

Several kinds of methods available:Local: finite differences (δYi

δXj(x0))

Regression:Ù Pearson (values)Ù Spearman (ranks)Screening: OAT, Morris. . .Sobol indexes:Ù FAST (Fourier Amplitude Sensitivity Test)Ù RBD (Random Balance Design)Ù Sobol/Saltelli Methods

Time

510 610

1S

0

0.05

0.1

0.15

tkl

kcv1

l1r1

rc1v2

l2r2

rc2w

Time

510 610

TS

0

0.2

0.4

0.6

0.8

Time510 610

1S

obol

0

0.05

0.1

0.15

0.2

0.25

0.3

0.35

tkl

kcv1

l1r1

rc1v2

l2r2

rc2w

Time510 610

TS

obol

0

0.5

1

1.5

2

2.5

3

3.5

4

4.5

tkl

kcv1

l1r1

rc1v2

l2r2

rc2w

CEA-DEN/DANS/DM2S/STMF/LGLS | 2018/04/18 | PAGE 20/24

Page 28: The Uranie platform · The Uranie platform Developed at CEA/DEN to help partners handling sensitivity, meta-modelling and optimisation problems. Written in C++ (˘2 releases a year),

Eyes-on: a simple example

x10 0.2 0.4 0.6 0.8 1

0.5−

0

0.5

1

1.5

2

2.5

Kriging example

Training valuesReal test valuesEstimated test valuesUncertainty

called by

gives

CEA-DEN/DANS/DM2S/STMF/LGLS | 2018/04/18 | PAGE 21/24

Page 29: The Uranie platform · The Uranie platform Developed at CEA/DEN to help partners handling sensitivity, meta-modelling and optimisation problems. Written in C++ (˘2 releases a year),

Combining techniques

Blocks as introduced previously can be combined to get newtechniques.

Efficient Global Optimisation (EGO)From a small database (here 8 points)

Construct a kriging modelCompute the Expected Improvement with thekriging model

Ù using genetic algorithm to get the minimum t∗

Compute the real new value with the code at t∗

Reconstruct the kriging on the database + t∗

Continue this process iteratively. . .

Ongoing work to parallelise this processTypically used for very time/cpu consuming code.Investigating different approaches to estimate the newpoints.

x10 5 10 15 20

200−

0

200

400

DatabaseNew point in databaseReal unknown valuesEstimated values and uncertainties

time0 5 10 15 20

EI

50−40−30−20−10−0

CEA-DEN/DANS/DM2S/STMF/LGLS | 2018/04/18 | PAGE 22/24

Page 30: The Uranie platform · The Uranie platform Developed at CEA/DEN to help partners handling sensitivity, meta-modelling and optimisation problems. Written in C++ (˘2 releases a year),

Combining techniques

Blocks as introduced previously can be combined to get newtechniques.

Efficient Global Optimisation (EGO)From a small database (here 8 points)

Construct a kriging modelCompute the Expected Improvement with thekriging model

Ù using genetic algorithm to get the minimum t∗

Compute the real new value with the code at t∗

Reconstruct the kriging on the database + t∗

Continue this process iteratively. . .

Ongoing work to parallelise this processTypically used for very time/cpu consuming code.Investigating different approaches to estimate the newpoints.

x10 5 10 15 20

200−

0

200

400

DatabaseNew point in databaseReal unknown valuesEstimated values and uncertainties

time0 5 10 15 20

EI

4−3−2−1−0

O

CEA-DEN/DANS/DM2S/STMF/LGLS | 2018/04/18 | PAGE 22/24

Page 31: The Uranie platform · The Uranie platform Developed at CEA/DEN to help partners handling sensitivity, meta-modelling and optimisation problems. Written in C++ (˘2 releases a year),

Combining techniques

Blocks as introduced previously can be combined to get newtechniques.

Efficient Global Optimisation (EGO)From a small database (here 8 points)

Construct a kriging modelCompute the Expected Improvement with thekriging model

Ù using genetic algorithm to get the minimum t∗

Compute the real new value with the code at t∗

Reconstruct the kriging on the database + t∗

Continue this process iteratively. . .

Ongoing work to parallelise this processTypically used for very time/cpu consuming code.Investigating different approaches to estimate the newpoints.

x10 5 10 15 20

200−

0

200

400

DatabaseNew point in databaseReal unknown valuesEstimated values and uncertainties

time0 5 10 15 20

EI

4−

2−

0

O

CEA-DEN/DANS/DM2S/STMF/LGLS | 2018/04/18 | PAGE 22/24

Page 32: The Uranie platform · The Uranie platform Developed at CEA/DEN to help partners handling sensitivity, meta-modelling and optimisation problems. Written in C++ (˘2 releases a year),

Combining techniques

Blocks as introduced previously can be combined to get newtechniques.

Efficient Global Optimisation (EGO)From a small database (here 8 points)

Construct a kriging modelCompute the Expected Improvement with thekriging model

Ù using genetic algorithm to get the minimum t∗

Compute the real new value with the code at t∗

Reconstruct the kriging on the database + t∗

Continue this process iteratively. . .

Ongoing work to parallelise this processTypically used for very time/cpu consuming code.Investigating different approaches to estimate the newpoints.

x10 5 10 15 20

200−

0

200

400

DatabaseNew point in databaseReal unknown valuesEstimated values and uncertainties

time0 5 10 15 20

EI

0.6−

0.4−

0.2−

0

O

CEA-DEN/DANS/DM2S/STMF/LGLS | 2018/04/18 | PAGE 22/24

Page 33: The Uranie platform · The Uranie platform Developed at CEA/DEN to help partners handling sensitivity, meta-modelling and optimisation problems. Written in C++ (˘2 releases a year),

Plans for the future

Technical improvementsParallelise the EGO estimationPorting more methods on GPU (kNN and ANN so far)Move to ROOT v6, to get the new C++ on the flight-compiler

Methodological improvementsCombine Hamiltonian Markov-chain and ANNGet new sensitivity indexes (Shapeley)Bayesian calibration (through MCMC algorithms in non linear settings)Test and improve many-criteria algorithms from VIZIR

Feel free to test the platformThe code is available here: http://sourceforge.net/projects/uranie

All documentations are embedded in the archiveWe give 2-3 formation sessions a year (in France)

More information can be found in our recent paper (submitted to CPC):http://arxiv.org/abs/1803.10656

CEA-DEN/DANS/DM2S/STMF/LGLS | 2018/04/18 | PAGE 23/24

Page 34: The Uranie platform · The Uranie platform Developed at CEA/DEN to help partners handling sensitivity, meta-modelling and optimisation problems. Written in C++ (˘2 releases a year),

Commissariat à l’énergie atomique et aux énergies alternatives Direction de l’énergie nucléaire

Centre de Saclay 91191 Gif-sur-Yvette Cedex Département de modélisation des systèmes et structures

T. +33 (0)1 69 08 73 20 F. +33 (0)1 69 08 68 86 Service de Thermohydraulique et de mécanique des fluides

Etablissement public à caractère industriel et commercial R.C.S Paris B 775 685 019