• Aucun résultat trouvé

Efficient parametric computations using ensemble propagation for high dimensional finite element models

N/A
N/A
Protected

Academic year: 2021

Partager "Efficient parametric computations using ensemble propagation for high dimensional finite element models"

Copied!
18
0
0

Texte intégral

(1)

Efficient parametric computations using ensemble propagation for high dimensional finite element models

K. Liegeois1, R. Boman1, E. T. Phipps2and M. Arnst1 1Aerospace and Mechanical Engineering, Universit´e de Li`ege, Belgium

2Sandia National Laboratories, USA

11th C ´ECI Scientific Meeting Universit´e Libre de Bruxelles

April 25, 2019

(2)

Ongoing PhD:New methods for parametric computations with multiphysics models on HPC architectures with applications to design of opto-mechanical systems

ITER

Ph. Mertens, A. Panin, FZ. J¨ulich

High performance computing library

(3)

Parametric computations

Sampling-based parametric computations typically require numerous calls of potentially costly models.

Example: Monte Carlo for uncertainty quantification.

Parameters

Model . . .

Model

Quantity of interest

Goal of the work: toreduce the CPU cost to evaluate a given set of samples orincrease the number of evaluated samples for a given CPU cost.

(4)

Ensemble propagation

In sampling-based parametric computation, instead of individually evaluating each instance of the model, Ensemble propagation (EP) consists of simultaneously evaluating a subset of samples of the model.

Model Model

EP was introduced by [Phipps, 2017], made available in Stokhos a package of Trilinos, and implemented using a template-based generic-programming approach:

template <typename T, int ensemble_size>

class Ensemble{

T data[ensemble_size];

Ensemble<T,ensemble_size> operator+ (const Ensemble<T,ensemble_size> &v); Ensemble<T,ensemble_size> operator- (const Ensemble<T,ensemble_size> &v); Ensemble<T,ensemble_size> operator* (const Ensemble<T,ensemble_size> &v); Ensemble<T,ensemble_size> operator/ (const Ensemble<T,ensemble_size> &v);

//...

(5)

Ensemble propagation

Advantagesof the EP:

I Reuse of common variables,

I More opportunities for SIMD (more data parallelism), I Improved memory usage,

I Reduction of Message Passing Interface (MPI) latency per sample. Challenges of the EP:

I Increased memory usage, I Ensemble divergence:

I control flow divergence: if-then-else divergence and loop divergence,

A B If End Inactive Active If End

(6)

Parametric linear systems

We want to solve a parametric linear system for a subset of s samples of the parameters together:

A::`x:`= b:` for all ` = 1, . . . , s,

where matrices A::1, . . . , A::s are not necessarily symmetric positive definite (SPD).

Representationof a system for s = 4:

=

A X B

(7)

GMRES and ensemble divergence

r(0)=b − A x(0) β = kr(0)k v: 1=r(0)/β for j = 1, . . . , m do w = AM−1v: j h(1:j )j=VT:(1:j )w v:(j +1)=w − V:(1:j )h(1:j )j h(j +1) j = kv: (j +1)k if h(j +1) j6= 0 then v: (j +1)=v: (j +1)/h(j +1) j else m = j break ifqT :(j +1)e1≤ ε then m = j break y = arg minzkβ e1− H(1:m+1)(1:m)y k x(m)=x(0)+M−1V :(1:m)y

Ensemble divergence in the GMRES: 1. an Arnoldi vector can require a

normalization or not: if-then-else divergence,

2. different samples may require different numbers of iterations to converge: loop divergence,

3. called BLAS functions, such as GEMV for the dense matrix-vector operations, may not support ensemble-typed inputs, leading tofunction call divergence.

(8)

Reduced and ensemble-typed inner products used in CG

I Reduced inner productand its associated norm were the first ones introduced, implemented, and tested in the EP [Phipps, 2017]:

= + + +

Fully remove every ensemble divergence couplingthe samples together.

I Ensemble-typed inner productwas first introduced for grouping purpose [D’Elia, 2017]:

=

(9)

Advantages and challenges of both approaches

Reduced inner product: Advantages:

I No control flow divergence. I Use of standard librariessuch as

MKL.

Challenges:

I Convergence in the least-squares sense.

I The spectrum of the ensemble matrixis the union of the spectra of the sample matrices: having a good preconditioner is more complex. I Increased number of iterations.

Ensemble-typed inner product: Advantages:

I Convergence for every sample. I The spectraare not gathered. I Convergence ratescontrolled by the

slowest sample.

Challenges:

I Control flow divergencehas to be treated explicitly.

I No current implementation of the needed BLAS routines in the MKL.

(10)

Control flow divergence

The control flow divergence, both the if-then-else divergenceand theloop divergence, has been solved by defining a Mask class equivalent to:

template <int ensemble_size>

class Mask{

bool data[ensemble_size];

//...

}

which is returned by any comparison of ensembles.

This mask is then used for masked assignments and logical reductions:

Ensemble<double,8> a,b;

b = 3.; b[3] = -5.; b[7] = 5.; mask_assign(b>=0.,a) = {b,1.};

cout << a << endl; // Print: [3.,3.,3.,1.,3.,3.,3.,5.]

mask_assign(a>=5.,a) /= {a, 5.,-1.};

cout << a << endl; // Print: [-1.,-1.,-1.,-1.,-1.,-1.,-1.,1.] bool test_a = AND(a==1.);

cout << test_a << endl; // Print: 0 bool test_a = OR(a==1.);

cout << test_a << endl; // Print: 1

(11)

GEMV with Ensemble propagation

TheGEMV with EP takes the form of atensors contraction as follows:

y:`= β`y:`+ α`A::`x:` for all ` = 1, . . . , s,

Such an operation has a low arithmetic intensity as, for every aij ` loaded from memory only two operations

are performed.

Interleaved memory layoutof the m × n × s third-order tensor A:

aij `←[ a [(i − 1) s + (j − 1) m s + (` − 1)] .

Tall skinny matrices A::` with left

layout and row stride of s

m

n

(12)

GEMV with Ensemble propagation

Challenge: the memory layoutand the fact that the operation is memory bound prevent us from using efficiently a scalar-typed GEMVimplementation sequentially s times.

How should we implement the contraction such that theoretical performance is achieved?

In order to use efficiently thememory bandwidth here, it is important to: I Reuse reusable data from cache,

I Use all the physical cores, I Load data with unit stride,

(13)

GEMV with Ensemble propagation

parfor t = 1 to m − mc+ 1 by mc do for i = t, . . . , t + mc− 1 do yi ` = β`yi ` for all ` = 1, . . . , s for j = 1, . . . , n do γ` = α`xj ` for all ` = 1, . . . , s for i = t, . . . , t + mc− 1 do yi `= yi `+ γ`aij ` for all ` = 1, . . . , s I Tiling:

I Each thread applies a tile ofA at a time, I Cache blocking of Y.

I Vectorization:

I Vectorization of the loops over the samples, I Intel Intrinsics, overloaded operators.

Outer level m = mc + n Tile level = + Column level = + 11 / 15

(14)

GEMV: results - KNL

Xeon Phi KNL in quadrant cache mode Measured bandwidth:

320 GB/s

Deduced maximal throughput: 80 GFLOPS

Parameters:

I Threads N = 128

I mc = 1024 for s = 8, m = 8 N mc,

I for a given n, data size independent of s.

Performance greater than the MKL, Performance similar to the theoretical limit,

Sensibility to the order of the operations.

0 20 40 60 80 Throughput [GFLOPS] Overloaded operators MKL s = 8 s = 16 s = 24 s = 32 0 50 100 150 200 250 300 0 20 40 60 80

Krylov subspace dimension n Throughput [GFLOPS] Intel intrinsics MKL s = 8 s = 16 s = 24 s = 32 12 / 15

(15)

Implemented code and its capabilities

I Fully templated C++code heavily based on Trilinos which provides a fully templated solver stack.

I Embedded in aPythoninterface. This eases the looping around samples, the grouping of samples together, etc. I Hybrid parallelism based on Tpetra

with MPIfor distributed memory and Kokkos with OpenMPfor shared memory.

I Uses Gmsh[Geuzaine, 2009] to import 3D meshes and VTK to write the output files.

I Has already generated preliminary results for industrial thermomechanical

(16)

Test case: beam contact problem on Xeon Phi KNL

W L d H p 5 15 25 205 210 215 p [MPa] E [GP a] 1 8 16 24 32 0 1 2 4 6 8 10 12 14 Ensemble size Sp eed-Up: S

Reduced inner product [mineS(e), maxeS(e)]

Ensemble-typed inner product [mineS(e), maxeS(e)]

1 8 16 24 32 100 101 102 Ensemble size Relative increase in # of GMRES iterations: R

Reduced inner product [mineR(e), maxeR(e)]

Ensemble-typed inner product [mineR(e), maxeR(e)]

(17)

Conclusion

Conclusion and contributions:

I Contributions towards EP applied to the GMRES,

I Implementation of the mask and the masked assignments,

I Implementation of the GEMV for ensemble type that reaches performance similar to the MKL,

I Two variants of the GMRES can currently be used: with reduced inner product and with ensemble-typed inner product,

I First results that suggest that the GMRES with ensemble-typed inner product is faster than the GMRES with reduced inner product.

Future work:

I Applying the method on engineering problemsrelevant forITER in collaboration with FZ. J¨ulich,

I Testing on more than one computational node to leverage the increased memory usage, I Studying how to use this method inuncertainty quantificationof contact problems

with local surrogate modelandgrouping,

(18)

Acknowledgement

The first author, Kim Liegeois, would like to acknowledge the Belgian National Fund for Scientific Research (FNRS-FRIA) and the Federation

Références

Documents relatifs

In this paper the use of the mortar element method (MEM) is presented to take into account the coil displacement in a three-dimensional finite element simulation of eddy

But strangely enough, most of our estimates on the quantity of coin or the evolution of coin production in the Roman Empire as a whole, start from the coinage minted in the Roman

The memory mapping file contains information about every data structure in the algorithm (mainly arrays in DSP applications) and its allocation in memory (bank number and

Pr ZOUBIR Mohamed* Anesthésie Réanimation Pr TAHIRI My El Hassan* Chirurgie Générale.. ABOUZAHIR Ali* Médecine interne. Pr. AGDR Aomar*

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des

Since all push and take operations occur in a single thread, and steal operations never alter the value of b, the elements of (β n ) correspond to writes to b in program order

Keywords: multifluid flows; level-set method; high-order finite elements; Navier-Stokes