From: Katharina Kormann Date: Tue, 24 Apr 2018 20:34:42 +0000 (+0200) Subject: Revise matrix-free. X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=78fabd4d16123dc4ab8a217f4b714857da5a7689;p=release-papers.git Revise matrix-free. --- diff --git a/9.0/paper.tex b/9.0/paper.tex index f17595a..23cf6b4 100644 --- a/9.0/paper.tex +++ b/9.0/paper.tex @@ -309,7 +309,7 @@ finite element method -- i.e., using continuous or discontinuous 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 -advect material properties such as the viscosity of inhomogenous +advect material properties such as the viscosity of inhomogeneous mixtures of fluids. If each particle is associated with the cells of a mesh, these methods are often referred to as particle-in-cell (PIC). @@ -463,17 +463,21 @@ 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: +FEEvaluation. Discontinuous Galerkin operators are implemented defining two +face functions, one for interior and one for boundary faces, in addition to +the cell function. These kernels for the matrix-free operator evaluation are +now collected in the new function \texttt{MatrixFree::loop}. 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. + +To give an example of the algorithmic improvements, the computation of the +values and gradients on all quadrature points for cell integrals has 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} @@ -509,8 +513,7 @@ 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 +detailed description of the matrix-free modules is given in the preprint \cite{KronbichlerKormann2017}.