From: Martin Kronbichler Date: Tue, 24 Apr 2018 14:40:49 +0000 (+0200) Subject: Write more about matrix-free, update references. X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=01c69ca172dd0b8b1be45f19c6ffb35c5b17620c;p=release-papers.git Write more about matrix-free, update references. --- diff --git a/9.0/paper.bib b/9.0/paper.bib index 01011ba..451bdbe 100644 --- a/9.0/paper.bib +++ b/9.0/paper.bib @@ -236,6 +236,12 @@ volume = 63, pages = {135--147}} +@techreport{KronbichlerKormann2017, + author = {M. Kronbichler and K. Kormann}, + title = {Fast matrix-free evaluation of discontinuous {G}alerkin finite element operators}, + institution = {arXiv:1711.03590}, + year = 2017} + @techreport{DeSimoneHeltaiManigrasso2009, Author = {A. DeSimone and L. Heltai and C. Manigrasso}, @@ -320,26 +326,28 @@ Collection of deal.II Manifold Wrappers for the OpenCASCADE Library}}, # From http://www.mcs.anl.gov/petsc/documentation/referencing.html @Misc{petsc-web-page, author = {S. Balay and S. Abhyankar and M.~F. Adams and J. Brown and P. Brune - and K. Buschelman and V. Eijkhout and W.~D. Gropp - and D. Kaushik and M.~G. Knepley - and L. Curfman McInnes and K. Rupp and B.~F. Smith - and H. Zhang}, + and K. Buschelman and L. Dalcin and V. Eijkhout and W.~D. Gropp + and D. Karpeyev and D. Kaushik and M.~G. Knepley + and D. May and L. Curfman McInnes and R. Mills and T. Munson + and K. Rupp and P. Sanan B.~F. Smith and S. Zampini + and H. Zhang and H. Zhang}, title = {{PETS}c {W}eb page}, url = {http://www.mcs.anl.gov/petsc}, howpublished = {\url{http://www.mcs.anl.gov/petsc}}, - year = {2014} + year = {2018} } @TechReport{petsc-user-ref, author = {S. Balay and S. Abhyankar and M.~F. Adams and J. Brown and P. Brune - and K. Buschelman and V. Eijkhout and W.~D. Gropp - and D. Kaushik and M.~G. Knepley - and L. Curfman McInnes and K. Rupp and B.~F. Smith - and H. Zhang}, + and K. Buschelman and L. Dalcin and V. Eijkhout and W.~D. Gropp + and D. Karpeyev and D. Kaushik and M.~G. Knepley + and D. May and L. Curfman McInnes and R. Mills and T. Munson + and K. Rupp and P. Sanan B.~F. Smith and S. Zampini + and H. Zhang and H. Zhang}, title = {{PETS}c Users Manual}, institution = {Argonne National Laboratory}, - year = 2014, - number = {ANL-95/11 - Revision 3.5}, + year = 2018, + number = {ANL-95/11 - Revision 3.9}, url = {http://www.mcs.anl.gov/petsc} } @@ -648,7 +656,7 @@ year = {2009} @Article{HDGB17, author = {T. Heister and J. Dannberg and R. Gassm{\"o}ller and W. Bangerth}, - title = {High Accuracy Mantle Convection Simulation through Modern Numerical Methods. II: Realistic Models and Problems}, + title = {High Accuracy Mantle Convection Simulation through Modern Numerical Methods. {II}: Realistic Models and Problems}, journal = {Geophysics Journal International}, year = 2017, volume = 210, diff --git a/9.0/paper.tex b/9.0/paper.tex index 1684b6f..f023adf 100644 --- a/9.0/paper.tex +++ b/9.0/paper.tex @@ -176,6 +176,7 @@ The major changes of this release are: \item Interfaces to more external libraries and programs; \item C++11 is now both required and used; \item Support for GPU computations; +\item Support for face integrals and significant improvements of matrix-free framework; \end{itemize} These will all be discussed in more detail in the following section. In addition, this release contains the following changes: @@ -196,12 +197,6 @@ following section. In addition, this release contains the following changes: similar (but less general) classes, such as \texttt{FilteredMatrix}, \texttt{IterativeInverse}, and \texttt{PointerMatrix}. -\item - Significant extension of matrix-free capabilities, including support for face - integrals in discontinuous Galerkin schemes, a new Hermite-like polynomial - basis adapted to face integrals that involve derivatives of shape functions, - and several performance enhancements. - \item New non-standard quadrature rules: A number of non-standard, special-purpose quadrature rules have been implemented. Among these are ones for @@ -311,7 +306,7 @@ to the boundary but not in a whole volume. \marginpar{Rene: Please edit as appropriate} While \dealii is a package intended to solve problems with the finite element method -- i.e., using continuous or discontinuous -\textit{fields} --, is often convenient in fluid dynamics problems to +\textit{fields} --, it is often convenient in fluid dynamics problems to couple the continuum description of phenomena with particles. These particles, advected along with the numerical approximation of the flow field, are then either used to visualize properties of the flow, or to @@ -389,7 +384,7 @@ release, we have written several new interfaces as discussed in the following. common task and one that often requires sophisticated globalization algorithms for efficiency and reliability. SUNDIALS provides these in a widely used format, both sequentially and in parallel. - + \dealii now has interfaces to SUNDIALS's ARKode, IDA, and KINSOL sub-packages. ARKode is a solver library that provides adaptive-step time integration. IDA is a package for the solution of differential-algebraic @@ -463,6 +458,65 @@ thereby clarifying object ownership responsibilities and avoiding memory leaks. \marginpar{do we want this? LH} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Extended matrix-free capabilities} + +The matrix-free infrastructure in \dealii{} was significantly overhauled for +the current release. The major new contribution is the support of face +integrals through a new class \texttt{FEFaceEvaluation}. The new class has a +similar interface as the previous \texttt{FEEvaluation}, and applies SIMD +vectorization over several faces in analogy to the intra-cell vectorization in +FEEvaluation. The data structures have been particularly tuned for typical +discontinuous Galerkin setups involving operators with first and second +spatial derivatives. Both data access and computations have been thoroughly +optimized and compared to the performance boundaries of the hardware. + +Furthermore, the internal algorithms for computing the values and gradients on +all quadrature points for cell integrals have been significantly improved, +giving around 10--20\% better performance for the case the kernels are compute +bound. For the example of the reference cell gradient of a solution field +$\mathbf u$ in three space dimensions, the new release applies the following +change: +\begin{equation*} + \text{previous: } + \begin{bmatrix} + D_{1} \otimes S_{2} \otimes S_{3}\\ + S_{1} \otimes D_{2} \otimes S_{3}\\ + S_{1} \otimes S_{2} \otimes D_{3} + \end{bmatrix} + \mathbf u + \quad + \leadsto + \quad + \text{new: } + \begin{bmatrix} + D_{1}^{\mathrm{co}} \otimes I_{2} \otimes I_{3}\\ + I_{1} \otimes D_{2}^{\mathrm{co}} \otimes I_{3}\\ + I_{1} \otimes I_{2} \otimes D_{3}^{\mathrm{co}} + \end{bmatrix} + \begin{bmatrix} + S_{1} \otimes S_{2} \otimes S_{3} + \end{bmatrix} + \mathbf u. +\end{equation*} +The matrices $S_i$ contain the values of the one-dimensional shape functions +in one-dimensional quadrature points and $D_i$ their derivatives. When applied +with the usual sum factorization implementation described e.g.~in +\cite{KronbichlerKormann2012}, the old kernels amounted to 9 partial +summations---or rather 8 in the previous implementation of \dealii{} because +the application of $S_1$ for the $y$ and $z$ components of the gradient can be +merged. The new code performs a basis transformation to a related basis with +derivative matrix $D_i = D_i^{\mathrm{co}} S_i$, which is the basis of +Lagrange polynomials in the points of the quadrature. This change reduces the +number of partial sums to only 6 for the gradient, as the action of the unit +matrices $I_i$ needs not be implemented. In isolation, this spectral +element-like evaluation was previously available in \dealii{} for collocation +between nodal points and quadrature, but not used for general bases. A more +detailed description of this improvement, including an analysis of these +kernels on modern hardware, is given in the preprint +\cite{KronbichlerKormann2017}. + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \subsection{Tutorial and code gallery programs} @@ -687,7 +741,7 @@ variety of funding sources: D.~Arndt, K.~Kormann and M.~Kronbichler were partially supported by the German Research Foundation (DFG) under the project ``High-order discontinuous -Galerkin for the exa-scale'' (ExaDG) within the priority program ``Software +Galerkin for the exa-scale'' (\mbox{ExaDG}) within the priority program ``Software for Exascale Computing'' (SPPEXA). W.~Bangerth and R.~Gassm\"{o}ller were partially