From 861f81015659d54519f2ad4224cd5f98c3a7eea3 Mon Sep 17 00:00:00 2001 From: Peter Munch Date: Sat, 21 Sep 2024 22:23:55 +0200 Subject: [PATCH] Small fixes --- 9.6/paper.tex | 41 +++++++++++++++++++---------------------- 1 file changed, 19 insertions(+), 22 deletions(-) diff --git a/9.6/paper.tex b/9.6/paper.tex index d5f1f8b..39a6d4d 100644 --- a/9.6/paper.tex +++ b/9.6/paper.tex @@ -369,32 +369,29 @@ can be found %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\subsection{Updates to multigrid and matrix-free algorithms}\label{sec:mf} +\subsection{Updates of multigrid and matrix-free algorithms}\label{sec:mf} -%\todo[inline]{Martin/Peter: The list in the introduction also mentions the two-level -% operators. Is this the right place to also discuss these?} - -We made different updates to the matrix-free infrastructure in \dealii. These include: +We made different updates of the matrix-free infrastructure in \dealii. These include: \begin{itemize} \item Our own implementation of \texttt{std::simd}, called \texttt{VectorizedArray}, now also supports Arm Neon. Arm Neon is an architecture extension of the ARMv7, ARMv8 and ARMv9 architecture families, - used e.g.~for the Arm Cortex-A and Arm Cortex-R series of processors or in + used, e.g., for the Arm Cortex-A and Arm Cortex-R series of processors or in the Apple 64-bit silicon series (A7--A18, M1--M4 as of 2024). With these instructions, 2 doubles or 4 floats can be processed in one go. Since the matrix-free infrastructure works directly with the \texttt{VectorizedArray} abstraction as data structure, it automatically benefits from this new implementation. \item The application of the Piola transformation for values and gradients of - $H$(div)-conforming Raviart--Thomas elements on non-Cartesian elements has + $H$(div)-conforming Raviart--Thomas elements on non-Cartesian cells has been rewritten for better performance. Together with additional changes in - the sum-factorization algorithms that are now more similar to the kernels + the sum-factorization algorithms, which became more similar to the kernels described in~\cite{KronbichlerKormann2019}, the matrix-free operator evaluation is now three to five times faster in these cases. -\item Furthermore, improved the internal data structures of the tensor-product +\item Furthermore, we improved the internal data structures of the tensor-product evaluators as well as the evaluators for simplex elements. This speeds up - the operator-evaluation in several scenarios, especially for simplices + the operator evaluation in several scenarios, especially for simplices (around two times higher throughput for operator evaluation) and multi-component systems. \end{itemize} @@ -414,25 +411,25 @@ of $p$-multigrid, allowing to reduce the setup costs and memory consumption sign %\todo[inline]{All: If you contributed to this functionality, please % help flesh out this section.} -For the non-matching infrastructure in \dealii, the following improvements were made: +In the non-matching infrastructure of \dealii, the following improvements were made: \begin{itemize} \item The performance of the non-nested multigrid infrastructure (\texttt{MGTwoLevelTransferNon\-Nested}) has been improved significantly by avoiding redundant copy operations. Furthermore, support for simplex-shaped cells and multiple-component elements has been added. -\item Several minor performance improvements for \dealii's evaluator class on +\item Several minor performance improvements in \dealii's evaluator class on sets of unstructured points, \texttt{FEPointEvaluation}, have been made. This is particularly useful for evaluating several quantities on the same set of points, which is enabled by \texttt{NonMatching::MappingInfo}. \item The new class \texttt{FERemoteEvaluation} has been added. This is a class to access data in a distributed matrix-free loop for non-matching discretizations. -Interfaces are named in analogy to \texttt{FEEvaluation}, in order to seamlessly switch +Interfaces are named in analogy to \texttt{FEEvaluation}, in order to seamlessly switch the local evaluator functionality at quadrature points of a computation. The key component is the -underlying MPI communication infrastructure, which is done via \texttt{RemotePointEvaluation}. +underlying MPI communication infrastructure, which is performed via \texttt{RemotePointEvaluation}. Tutorial \texttt{step-89} has been added to present its usage -in the context of an application to acoustic conservation equations~\cite{heinz2023high}. +in the context of the application to acoustic conservation equations~\cite{heinz2023high}. \item FECouplingValues \todo[inline]{Luca: Please complete} @@ -571,14 +568,14 @@ programs: \texttt{step-87} was contributed by Magdalena Schreter-Fleischhacker (Technical University of Munich) and Peter Munch (University of Augsburg/Uppsala University). It - presents the advanced point-evaluation functionalities of \dealii - that are useful for evaluating finite element solutions at - arbitrary points on finite element meshes that can be distributed among processes. + presents the advanced point-evaluation functionalities of \dealii, + which are useful for evaluating finite element solutions at + arbitrary points on meshes that can be distributed among processes. \item \texttt{step-89} was contributed by Johannes Heinz (TU Wien), Maximilian Bergbauer (Technical University of Munich), Marco Feder (SISSA), and Peter Munch (University of Augsburg/Uppsala University). - It shows one way how to apply non-matching and/or Chimera methods + It shows a way how to apply non-matching and/or Chimera methods within matrix-free loops in \dealii. \item \texttt{step-90} was contributed by Vladimir Yushutin and Timo Heister (Clemson University). @@ -609,9 +606,9 @@ UPDATE Furthermore, we added an example to the \texttt{libCEED} library~\cite{brown2021libceed}: \url{https://github.com/CEED/libCEED/tree/main/examples/deal.II}. \texttt{libCEED} is a library -that provides matrix-free evaluation routines that work on different hardware. The -example show how to interface the \dealii data structures to the \texttt{libCEED} ones. -The example solves the BP1-BP6 benchmarks (scalar/vector Laplace/mass matrix with +that provides matrix-free evaluation routines for different hardware. The +example shows how to interface the \dealii data structures with the \texttt{libCEED} ones +and solves the BP1-BP6 benchmarks (scalar/vector Laplace/mass matrix with regular integration and over-integration). -- 2.39.5