]> https://gitweb.dealii.org/ - release-papers.git/commitdiff
Add information about Trilinos stacks 119/head
authorJan Philipp Thiele <thiele@wias-berlin.de>
Thu, 29 Aug 2024 07:54:29 +0000 (09:54 +0200)
committerJan Philipp Thiele <thiele@wias-berlin.de>
Thu, 29 Aug 2024 11:49:51 +0000 (13:49 +0200)
9.6/paper.tex

index a88ff367e727751473837c1d43422ad0249a7d2d..42254f6794e478781add59e59a1947a77d2bb1ab 100644 (file)
@@ -46,8 +46,6 @@
 \newcommand{\dealii}{{\specialword{deal.II}}\xspace}
 \newcommand{\pfrst}{{\specialword{p4est}}\xspace}
 \newcommand{\trilinos}{{\specialword{Trilinos}}\xspace}
-\newcommand{\epetra}{{\specialword{Epetra}}\xspace}
-\newcommand{\tpetra}{{\specialword{Tpetra}}\xspace}
 \newcommand{\aspect}{\specialword{Aspect}\xspace}
 \newcommand{\petsc}{\specialword{PETSc}\xspace}
 \newcommand{\snes}{{\specialword{SNES}}\xspace}
@@ -55,6 +53,8 @@
 \newcommand{\petscsf}{{\specialword{SF}}\xspace}
 \newcommand{\cmake}{{\specialword{CMake}}\xspace}
 \newcommand{\candi}{{\specialword{candi}}\xspace}
+\newcommand{\MPI}{{\specialword{MPI}}\xspace}
+\newcommand{\MPIx}{{\specialword{MPI+X}}\xspace}
 \newcommand{\sundials}{{\specialword{SUNDIALS}}\xspace}
 \newcommand{\kinsol}{{\specialword{KINSOL}}\xspace}
 \newcommand{\ida}{{\specialword{IDA}}\xspace}
 \newcommand{\boost}{{\specialword{Boost}}\xspace}
 \newcommand{\kokkos}{{\specialword{Kokkos}}\xspace}
 
+%Trilinos Packages
+\newcommand{\epetra}{{\specialword{Epetra}}\xspace}
+\newcommand{\petra}{{\specialword{Petra}}\xspace}
+\newcommand{\teuchos}{{\specialword{Teuchos}}\xspace}
+\newcommand{\tpetra}{{\specialword{Tpetra}}\xspace}
+
 
 \usetikzlibrary{shapes.misc}
 \tikzset{cross/.style={cross out, draw=black, minimum size=2*(#1-\pgflinewidth), inner sep=0pt, outer sep=0pt},
@@ -312,9 +318,33 @@ can be found
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \subsection{Interface to the \trilinos \tpetra stack}\label{sec:tpetra}
 
+As a software project, \trilinos{} is designed as a stack of semi-independent
+packages building upon each other and working together. 
+As a foundation, \teuchos{} offers a set of basic tools,
+including parameter handling through XML files or command line interfaces 
+and the reference counted pointer \texttt{RCP} which predates 
+the smart pointer types introduced in \texttt{C++11}.
+The second layer in the stack is a package providing distributed linear algebra 
+classes for vectors and (sparse) matrices based on the \petra{}
+object model. The third layer is a set of interconnected packages
+providing preconditioners, various types of solvers 
+as well as more advanced techniques like automatic differentiation, 
+time integration and discretization.
+
+For now, there are two choices for the second layer 
+with \epetra{} providing \MPI{} only parallelism 
+and the newer \tpetra{} (templated Petra) providing additional shared memory 
+parallelism and GPU capabilities through \kokkos{}, referred to as \MPIx.
+Since the interface of \tpetra{} was overhauled and modernized 
+many of the packages in the third layer now have two generations as well.
+Therefore, the \MPI-only set of packages is also referred to as the 
+\epetra{} stack and the \MPIx{} packages form the \tpetra{} stack.
+As a consequence of the different interfaces, 
+a decision was made in the \trilinos{} project to deprecate the \epetra{} stack 
+and only provide basic maintenance until a full 
+removal from their repository in the course of 2025.
+
 \begin{itemize}
-  \item What is a \textit{stack}? [Thiele]
-  \item The \epetra stack is deprecated [Thiele]
   \item Short overview capabilities of \epetra (MPI parallel, fixed types) [Thiele]
   \item Short overview capabilities of \tpetra (MPI+X via Kokkos, auto diff types, Templated petra) [Thiele]
   \item Current state of the interface (Tpertra based linear algebra, direct solver from Amesos2, preconditioners from Ifpack2) [Thiele \& Kinnewig]

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.