Recent advances in HPC with FreeFem++

Similar documents
Multilevel spectral coarse space methods in FreeFem++ on parallel architectures

Toward black-box adaptive domain decomposition methods

Scalable Domain Decomposition Preconditioners For Heterogeneous Elliptic Problems

Une méthode parallèle hybride à deux niveaux interfacée dans un logiciel d éléments finis

Overlapping domain decomposition methods withfreefem++

Overlapping Domain Decomposition Methods with FreeFem++

HPDDM une bibliothèque haute performance unifiée pour les méthodes de décomposition de domaine

Some examples in domain decomposition

Parallelism in FreeFem++.

Two-level Domain decomposition preconditioning for the high-frequency time-harmonic Maxwell equations

Efficient domain decomposition methods for the time-harmonic Maxwell equations

Finite element programming by FreeFem++ advanced course

SPARSE SOLVERS POISSON EQUATION. Margreet Nool. November 9, 2015 FOR THE. CWI, Multiscale Dynamics

Avancées récentes dans le domaine des solveurs linéaires Pierre Jolivet Journées inaugurales de la machine de calcul June 10, 2015

A High-Performance Parallel Hybrid Method for Large Sparse Linear Systems

J.I. Aliaga 1 M. Bollhöfer 2 A.F. Martín 1 E.S. Quintana-Ortí 1. March, 2009

From Direct to Iterative Substructuring: some Parallel Experiences in 2 and 3D

On the choice of abstract projection vectors for second level preconditioners

An introduction to Schwarz methods

Various ways to use a second level preconditioner

Domain Decomposition-based contour integration eigenvalue solvers

A dissection solver with kernel detection for unsymmetric matrices in FreeFem++

SOLVING SPARSE LINEAR SYSTEMS OF EQUATIONS. Chao Yang Computational Research Division Lawrence Berkeley National Laboratory Berkeley, CA, USA

Multipréconditionnement adaptatif pour les méthodes de décomposition de domaine. Nicole Spillane (CNRS, CMAP, École Polytechnique)

Some Geometric and Algebraic Aspects of Domain Decomposition Methods

Domain decomposition, hybrid methods, coarse space corrections

JOHANNES KEPLER UNIVERSITY LINZ. Abstract Robust Coarse Spaces for Systems of PDEs via Generalized Eigenproblems in the Overlaps

Linear Solvers. Andrew Hazel

Utilisation de la compression low-rank pour réduire la complexité du solveur PaStiX

MUMPS. The MUMPS library: work done during the SOLSTICE project. MUMPS team, Lyon-Grenoble, Toulouse, Bordeaux

AMS526: Numerical Analysis I (Numerical Linear Algebra) Lecture 23: GMRES and Other Krylov Subspace Methods; Preconditioning

Numerical simulation of the Gross-Pitaevskii equation by pseudo-spectral and finite element methods comparison of GPS code and FreeFem++

Architecture Solutions for DDM Numerical Environment

MARCH 24-27, 2014 SAN JOSE, CA

Open-Source Parallel FE Software : FrontISTR -- Performance Considerations about B/F (Byte per Flop) of SpMV on K-Supercomputer and GPU-Clusters --

Incomplete Cholesky preconditioners that exploit the low-rank property

Indefinite and physics-based preconditioning

Open-source finite element solver for domain decomposition problems

Master Thesis Literature Study Presentation

- Part 4 - Multicore and Manycore Technology: Chances and Challenges. Vincent Heuveline

Solving Ax = b, an overview. Program

OUTLINE ffl CFD: elliptic pde's! Ax = b ffl Basic iterative methods ffl Krylov subspace methods ffl Preconditioning techniques: Iterative methods ILU

A Numerical Study of Some Parallel Algebraic Preconditioners

Contents. Preface... xi. Introduction...

A Domain Decomposition Based Jacobi-Davidson Algorithm for Quantum Dot Simulation

Adding a new finite element to FreeFem++:

Deflated Krylov Iterations in Domain Decomposition Methods

Lecture 8: Fast Linear Solvers (Part 7)

An Efficient FETI Implementation on Distributed Shared Memory Machines with Independent Numbers of Subdomains and Processors

Domain decomposition on different levels of the Jacobi-Davidson method

Parallel sparse linear solvers and applications in CFD

Adaptive Coarse Spaces and Multiple Search Directions: Tools for Robust Domain Decomposition Algorithms

Enhancing Scalability of Sparse Direct Methods

Scalable domain decomposition preconditioners for heterogeneous elliptic problems 1

An Introduction to Domain Decomposition Methods: algorithms, theory and parallel implementation

arxiv: v2 [physics.comp-ph] 3 Jun 2016

Solving PDEs: the Poisson problem TMA4280 Introduction to Supercomputing

Optimal Left and Right Additive Schwarz Preconditioning for Minimal Residual Methods with Euclidean and Energy Norms

Parallelization of Multilevel Preconditioners Constructed from Inverse-Based ILUs on Shared-Memory Multiprocessors

Leveraging Task-Parallelism in Energy-Efficient ILU Preconditioners

TR A Comparison of the Performance of SaP::GPU and Intel s Math Kernel Library (MKL) for Solving Dense Banded Linear Systems

1. Fast Iterative Solvers of SLE

arxiv: v1 [cs.ce] 9 Jul 2016

A dissection solver with kernel detection for symmetric finite element matrices on shared memory computers

A Newton-Galerkin-ADI Method for Large-Scale Algebraic Riccati Equations

FETI-DPH: A DUAL-PRIMAL DOMAIN DECOMPOSITION METHOD FOR ACOUSTIC SCATTERING

Elmer. Introduction into Elmer multiphysics. Thomas Zwinger. CSC Tieteen tietotekniikan keskus Oy CSC IT Center for Science Ltd.

Parallel in Time Algorithms for Multiscale Dynamical Systems using Interpolation and Neural Networks

Challenges for Matrix Preconditioning Methods

1. Introduction. We consider the problem of solving the linear system. Ax = b, (1.1)

Lecture 17: Iterative Methods and Sparse Linear Algebra

Preconditioning techniques to accelerate the convergence of the iterative solution methods

Universität Dortmund UCHPC. Performance. Computing for Finite Element Simulations

Efficient multigrid solvers for mixed finite element discretisations in NWP models

An (incomplete) Introduction to FreeFem++

Accelerating Linear Algebra on Heterogeneous Architectures of Multicore and GPUs using MAGMA and DPLASMA and StarPU Schedulers

Multilevel low-rank approximation preconditioners Yousef Saad Department of Computer Science and Engineering University of Minnesota

Robust solution of Poisson-like problems with aggregation-based AMG

Short title: Total FETI. Corresponding author: Zdenek Dostal, VŠB-Technical University of Ostrava, 17 listopadu 15, CZ Ostrava, Czech Republic

B. Reps 1, P. Ghysels 2, O. Schenk 4, K. Meerbergen 3,5, W. Vanroose 1,3. IHP 2015, Paris FRx

FINDING PARALLELISM IN GENERAL-PURPOSE LINEAR PROGRAMMING

Parallel Scalability of a FETI DP Mortar Method for Problems with Discontinuous Coefficients

Lab 1: Iterative Methods for Solving Linear Systems

Numerical Methods I Non-Square and Sparse Linear Systems

Preliminary Results of GRAPES Helmholtz solver using GCR and PETSc tools

PFEAST: A High Performance Sparse Eigenvalue Solver Using Distributed-Memory Linear Solvers

Robust Preconditioned Conjugate Gradient for the GPU and Parallel Implementations

Iterative Helmholtz Solvers

THEORETICAL AND NUMERICAL COMPARISON OF PROJECTION METHODS DERIVED FROM DEFLATION, DOMAIN DECOMPOSITION AND MULTIGRID METHODS

Recent Progress of Parallel SAMCEF with MUMPS MUMPS User Group Meeting 2013

Schwarz-type methods and their application in geomechanics

A sparse multifrontal solver using hierarchically semi-separable frontal matrices

The quadratic eigenvalue problem (QEP) is to find scalars λ and nonzero vectors u satisfying

A class of multilevel parallel preconditioning strategies

Electronic Transactions on Numerical Analysis Volume 49, 2018

Boundary Value Problems - Solving 3-D Finite-Difference problems Jacob White

SOLUTION of linear systems of equations of the form:

Parallel Preconditioning Methods for Ill-conditioned Problems

Solving Symmetric Indefinite Systems with Symmetric Positive Definite Preconditioners

arxiv: v1 [math.na] 11 Jul 2011

Transcription:

Recent advances in HPC with FreeFem++ Pierre Jolivet Laboratoire Jacques-Louis Lions Laboratoire Jean Kuntzmann Fourth workshop on FreeFem++ December 6, 2012 With F. Hecht, F. Nataf, C. Prud homme.

Outline 1 Introduction Flashback to last year A new machine 2 New solvers MUMPS PARDISO 3 Domain decomposition methods The necessary tools Preconditioning Krylov methods Nonlinear problems 4 Conclusion 2 / 26 Pierre Jolivet HPC and FreeFem++

Where were we one year ago? What we had: FreeFem++ version 3.17, a simple toolbox for domain decomposition methods, 3 supercomputers (SGI, Bull, IBM). What we achieved: linear problems up to 120 million unkowns in few minutes, good scaling up to 2048 processes on a BlueGene/P. 3 / 26 Pierre Jolivet HPC and FreeFem++

FreeFem++ is working on the following parallel architectures: N of cores Memory Peak performance hpc1@ljll 160@2.00 GHz 640 Go 10 TFLOP/s titane@cea 12192@2.93 GHz 37 To 140 TFLOP/s babel@idris 40960@850 MHz 20 To 139 TFLOP/s http://www-hpc.cea.fr, Bruyères-le-Châtel, France. http://www.idris.fr, Orsay, France (grant PETALh). 4 / 26 Pierre Jolivet HPC and FreeFem++

FreeFem++ is working on the following parallel architectures: N of cores Memory Peak performance hpc1@ljll 160@2.00 GHz 640 Go 10 TFLOP/s titane@cea 12192@2.93 GHz 37 To 140 TFLOP/s babel@idris 40960@850 MHz 20 To 139 TFLOP/s curie@cea 80640@2.7 GHz 320 To 1.6 PFLOP/s http://www-hpc.cea.fr, Bruyères-le-Châtel, France. http://www.idris.fr, Orsay, France (grant PETALh). http://www.prace-project.eu (grant HPC-PDE). 4 / 26 Pierre Jolivet HPC and FreeFem++

FreeFem++ and the linear solvers set(a, solver = sparsesolver) in FreeFem++ instance of VirtualSolver<T> from which inherits a solver. 5 / 26 Pierre Jolivet HPC and FreeFem++

FreeFem++ and the linear solvers set(a, solver = sparsesolver) in FreeFem++ instance of VirtualSolver<T> from which inherits a solver. Interfacing a new solver basically consists in implementing: 1 the constructor MySolver(const MatriceMorse<T>&) 5 / 26 Pierre Jolivet HPC and FreeFem++

FreeFem++ and the linear solvers set(a, solver = sparsesolver) in FreeFem++ instance of VirtualSolver<T> from which inherits a solver. Interfacing a new solver basically consists in implementing: 1 the constructor MySolver(const MatriceMorse<T>&) 2 the pure virtual method void Solver(const MatriceMorse<T>&, KN_<T>&, const KN_<T>&) const 5 / 26 Pierre Jolivet HPC and FreeFem++

FreeFem++ and the linear solvers set(a, solver = sparsesolver) in FreeFem++ instance of VirtualSolver<T> from which inherits a solver. Interfacing a new solver basically consists in implementing: 1 the constructor MySolver(const MatriceMorse<T>&) 2 the pure virtual method void Solver(const MatriceMorse<T>&, KN_<T>&, const KN_<T>&) const 3 the destructor MySolver(const MatriceMorse<T>&) 5 / 26 Pierre Jolivet HPC and FreeFem++

FreeFem++ and the linear solvers set(a, solver = sparsesolver) in FreeFem++ instance of VirtualSolver<T> from which inherits a solver. Interfacing a new solver basically consists in implementing: 1 the constructor MySolver(const MatriceMorse<T>&) 2 the pure virtual method void Solver(const MatriceMorse<T>&, KN_<T>&, const KN_<T>&) const 3 the destructor MySolver(const MatriceMorse<T>&) real[int] x = Aˆ-1 * b will call MySolver::Solver. 5 / 26 Pierre Jolivet HPC and FreeFem++

MUltifrontal Massively Parallel Sparse direct Solver http://graal.ens-lyon.fr/mumps Distributed memory direct solver. Compiled by FreeFem++ with --enable-download. Renumbering via AMD, QAMD, AMF, PORD, (Par)METIS, (PT-)SCOTCH. Solves unsymmetric and symmetric linear systems! 6 / 26 Pierre Jolivet HPC and FreeFem++

MUMPS and FreeFem++ 1 load "MUMPS" int[int] l = [1, 1, 2, 2]; mesh Th; if(mpirank!= 0) // no need to store the matrix on ranks other than 0 5 Th = square(1, 1, label = l); else Th = square(150, 150, label = l); fespace Vh(Th, P2); 9 varf lap(u, v) = int2d(th)(dx(u) dx(v) + dy(u) dy(v)) + int2d(th)(v) + on(1, u = 1); real[int] b = lap(0, Vh); matrix A = lap(vh, Vh); set(a, solver = sparsesolver); 13 Vh x; x[] = A 1 b; plot(th, x, wait = 1, dim = 3, fill = 1, cmm = "sparsesolver", value = 1); 7 / 26 Pierre Jolivet HPC and FreeFem++

Intel MKL PARDISO http://software.intel.com/en-us/intel-mkl Shared memory direct solver. Part of the Intel Math Kernel Library. Renumbering via Metis or threaded nested dissection. Solves unsymmetric and symmetric linear systems! 8 / 26 Pierre Jolivet HPC and FreeFem++

PARDISO and FreeFem++ load "PARDISO" 2 include "cube.idp" int n = 35; int[int] NN = [n, n, n]; real[int, int] BB = [[0,1], [0,1], [0,1]]; int[int, int] L = [[1,1], [3,4], [5,6]]; mesh3 Th = Cube(NN, BB, L); fespace Vh(Th, P2); 6 varf lap(u, v) = int3d(th)(dx(u) dx(v) + dz(u) dz(v) + dy(u) dy(v)) + int3d(th)(v) + on(1, u = 1); real[int] b = lap(0, Vh); matrix A = lap(vh, Vh); real timer = mpiwtime(); 10 set(a, solver = sparsesolver); cout << "Factorization: " << mpiwtime() timer << endl; Vh x; timer = mpiwtime(); x[] = A 1 b; 14 cout << "Solve: " << mpiwtime() timer << endl; 9 / 26 Pierre Jolivet HPC and FreeFem++

Is it really necessary? If you are using direct methods within FreeFem++: yes! Why? Sooner or later, UMFPACK will blow up: UMFPACK V5.5.1 (Jan 25, 2011): ERROR: out of memory umfpack_di_numeric failed 10 / 26 Pierre Jolivet HPC and FreeFem++

Motivation One of the most straightforward way to solve BVP in parallel. 11 / 26 Pierre Jolivet HPC and FreeFem++

Motivation One of the most straightforward way to solve BVP in parallel. Based on the divide and conquer paradigm: 1 assemble, 2 factorize and 3 solve smaller problems. 11 / 26 Pierre Jolivet HPC and FreeFem++

A short introduction I Consider the following BVP in R 2 : (κ u) = F B(u) = 0 in Ω on Ω Ω 12 / 26 Pierre Jolivet HPC and FreeFem++

A short introduction I Consider the following BVP in R 2 : (κ u) = F in Ω B(u) = 0 on Ω Ω 1 Ω 2 Then, solve in parallel: (κ u1 m+1 ) = F 1 in Ω 1 B(u1 m+1 ) = 0 on Ω 1 Ω u1 m+1 = u2 m on Ω 1 Ω 2 (κ u2 m+1 ) = F 2 in Ω 2 B(u2 m+1 ) = 0 on Ω 2 Ω u2 m+1 = u1 m on Ω 2 Ω 1 12 / 26 Pierre Jolivet HPC and FreeFem++

A short introduction II We have effectively divided, but we have yet to conquer. Duplicated unknowns coupled via a partition of unity: N I = Ri T D i R i, i=1 where Ri T is the prolongation from V i to V. 13 / 26 Pierre Jolivet HPC and FreeFem++

A short introduction II We have effectively divided, but we have yet to conquer. Duplicated unknowns coupled via a partition of unity: N I = Ri T D i R i, i=1 where Ri T is the prolongation from V i to V. Then, N u m+1 = Ri T D i ui m+1. i=1 13 / 26 Pierre Jolivet HPC and FreeFem++

One-level preconditioners A common preconditioner is: M 1 N RAS := Ri T D i (R i ARi T ) 1 R i. i=1 For future references, let Ãij := R i AR T j. 14 / 26 Pierre Jolivet HPC and FreeFem++

One-level preconditioners A common preconditioner is: M 1 N RAS := Ri T D i (R i ARi T ) 1 R i. i=1 For future references, let Ãij := R i AR T j. These preconditioners don t scale as N increases: κ(m 1 A) C 1 ( 1 + H ) H 2 δh They act as low-pass filters (think about mulgrid methods). 14 / 26 Pierre Jolivet HPC and FreeFem++

Two-level preconditioners A common technique in the field of DDM, MG, deflation: introduce an auxiliary coarse problem. 15 / 26 Pierre Jolivet HPC and FreeFem++

Two-level preconditioners A common technique in the field of DDM, MG, deflation: introduce an auxiliary coarse problem. Let Z be a rectangular matrix so that the bad eigenvectors of M 1 A belong to the space spanned by its columns. Define E := Z T AZ Q := ZE 1 Z T. Z has O(N) columns, hence E is relatively smaller than A. 15 / 26 Pierre Jolivet HPC and FreeFem++

Two-level preconditioners A common technique in the field of DDM, MG, deflation: introduce an auxiliary coarse problem. Let Z be a rectangular matrix so that the bad eigenvectors of M 1 A belong to the space spanned by its columns. Define E := Z T AZ Q := ZE 1 Z T. Z has O(N) columns, hence E is relatively smaller than A. The following preconditioner can scale theoretically: P 1 A-DEF1 := M 1 (I AQ) + Q. 15 / 26 Pierre Jolivet HPC and FreeFem++

Preconditioners in action Back to our Krylov method of choice: the GMRES. procedure GMRES(input vector x 0, right-hand side b) r 0 P 1 A-DEF1 (b Ax0) v 0 r 0/ r 0 2 for i = 0,..., m 1 do w P 1 A-DEF1 Avi for j = 0,..., i do h j,i w, v j end for ṽ i+1 w i j=1 hj,ivj h i+1,i ṽ i+1 2 v i+1 ṽ i+1/h i+1,i apply Givens rotations to h :,i end for y m arg min H my m βe 1 2 with β = r 0 2 return x 0 + V my m end procedure 16 / 26 Pierre Jolivet HPC and FreeFem++

Preconditioners in action Back to our Krylov method of choice: the GMRES. procedure GMRES(input vector x 0, right-hand side b) r 0 P 1 A-DEF1 (b Ax0) v 0 r 0/ r 0 2 for i = 0,..., m 1 do w P 1 A-DEF1 Avi for j = 0,..., i do global sparse matrix-vector multiplication h j,i w, v j end for ṽ i+1 w i j=1 hj,ivj h i+1,i ṽ i+1 2 v i+1 ṽ i+1/h i+1,i apply Givens rotations to h :,i end for y m arg min H my m βe 1 2 with β = r 0 2 return x 0 + V my m end procedure 16 / 26 Pierre Jolivet HPC and FreeFem++

Preconditioners in action Back to our Krylov method of choice: the GMRES. procedure GMRES(input vector x 0, right-hand side b) r 0 P 1 A-DEF1 (b Ax0) v 0 r 0/ r 0 2 for i = 0,..., m 1 do global preconditioner-vector computation w P 1 A-DEF1 Avi for j = 0,..., i do global sparse matrix-vector multiplication h j,i w, v j end for ṽ i+1 w i j=1 hj,ivj h i+1,i ṽ i+1 2 v i+1 ṽ i+1/h i+1,i apply Givens rotations to h :,i end for y m arg min H my m βe 1 2 with β = r 0 2 return x 0 + V my m end procedure 16 / 26 Pierre Jolivet HPC and FreeFem++

Preconditioners in action Back to our Krylov method of choice: the GMRES. procedure GMRES(input vector x 0, right-hand side b) r 0 P 1 A-DEF1 (b Ax0) v 0 r 0/ r 0 2 for i = 0,..., m 1 do global preconditioner-vector computation w P 1 A-DEF1 Avi for j = 0,..., i do global sparse matrix-vector multiplication h j,i w, v j end for ṽ i+1 w global dot products i j=1 hj,ivj h i+1,i ṽ i+1 2 v i+1 ṽ i+1/h i+1,i apply Givens rotations to h :,i end for y m arg min H my m βe 1 2 with β = r 0 2 return x 0 + V my m end procedure 16 / 26 Pierre Jolivet HPC and FreeFem++

In practice A scalable DDM framework must include routines for: p2p communications to compute spmv, p2p communications to apply a one-level preconditioner, global transfer between master and slaves processes to apply coarse corrections, direct solvers for the coarse problem and local problems. 17 / 26 Pierre Jolivet HPC and FreeFem++

In FreeFem++ subdomain A(S, D, restrictionintersection, arrayintersection, communicator = mpicommworld); // build buffers for spmv 2 preconditioner E(A); // build M 1 RAS if(coarseoperator) {... attachcoarseoperator(e, A, A = GEVPA, B = GEVPB, parameters = parm); // build P 1 A-DEF1 6 } GMRESDDM(A, E, u[], rhs, dim = 100, iter = 100, eps = eps); 18 / 26 Pierre Jolivet HPC and FreeFem++

Nonlinear elasticity We solve an evolution problem of hyperelasticity on a beam, find u such that: t [0; T ], v [H 1 (Ω)] 3, Ω ρü v + Ω (I + u) Σ : v = }{{} =:F(u) Ω f v + g v Ω S u = 0 on Ω D σ(u) n = 0 on Ω N where Σ = λtr(e)i + 2µE 19 / 26 Pierre Jolivet HPC and FreeFem++

In FreeFem++ Add another operator rebuild (currently only rebuilds Ãii 1 ). The rest is (almost) the same. 1 for(int k = 0; k < 200; ++k) { SchemeInit(u) if(k > 0) { S = vpbnonlinear(wh, Wh, solver = CG); 5 rhs = vpblinear(0, Wh); rebuild(s, A, E); } GMRESDDM(A, E, h[], rhs, dim = 100, iter = 100, eps = eps); 9 SchemeAdvance(u, h) } 20 / 26 Pierre Jolivet HPC and FreeFem++

Outline 1 Introduction Flashback to last year A new machine 2 New solvers MUMPS PARDISO 3 Domain decomposition methods The necessary tools Preconditioning Krylov methods Nonlinear problems 4 Conclusion 21 / 26 Pierre Jolivet HPC and FreeFem++

Amuses bouche before lunch I Timing relative to 1 024 processes 8 6 4 2 1 25 20 15 Linear speedup 10 #iterations 1 024 2 048 4 096 #processes 8 192 6 144 Linear elasticity in 2D with P 3 FE. 1 billion unknowns solved in 31 seconds at peak performance. 22 / 26 Pierre Jolivet HPC and FreeFem++

Amuses bouche before lunch II Timing relative to 1 024 processes 8 6 4 2 1 25 20 15 Linear speedup 10 #iterations 1 024 2 048 4 096 #processes 8 192 6 144 Linear elasticity in 3D with P 2 FE. 80 million unknowns solved in 35 seconds at peak performance. 23 / 26 Pierre Jolivet HPC and FreeFem++

Amuses bouche before lunch III Weak efficiency relative to 1 024 processes 100 % 80 % 60 % 40 % 20 % 0 % 1 024 2 048 12 288 6 144 8 192 4 096 10 176 844 #d.o.f. (in millions) #processes Scalar diffusivity in 2D with P 3 FE. 10 billion unknowns solved in 160 seconds on 12 228 processes. 24 / 26 Pierre Jolivet HPC and FreeFem++

Amuses bouche before lunch IV Weak efficiency relative to 1 024 processes 100 % 80 % 60 % 40 % 20 % 0 % 1 024 2 048 4 096 8 192 6 144 1 051 130 #d.o.f. (in millions) #processes Scalar diffusivity in 3D with P 2 FE. 1 billion unknowns solved in 150 seconds on 8 192 processes. 25 / 26 Pierre Jolivet HPC and FreeFem++

To sum up 1 FreeFem++ + = easy framework to solve large systems. Two-level DDM 2 New solvers give performance boost on smaller systems. 26 / 26 Pierre Jolivet HPC and FreeFem++

To sum up 1 FreeFem++ + = easy framework to solve large systems. Two-level DDM 2 New solvers give performance boost on smaller systems. New problems being tackled: more complex nonlinearities, reuse of Krylov and deflation subspaces, BNN and FETI methods. 26 / 26 Pierre Jolivet HPC and FreeFem++

To sum up 1 FreeFem++ + = easy framework to solve large systems. Two-level DDM 2 New solvers give performance boost on smaller systems. New problems being tackled: more complex nonlinearities, reuse of Krylov and deflation subspaces, BNN and FETI methods. Thank you for your attention. 26 / 26 Pierre Jolivet HPC and FreeFem++