]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Comment on the use of thread-safe BLAS/LAPACK 10005/head
authorMartin Kronbichler <kronbichler@lnm.mw.tum.de>
Fri, 1 May 2020 10:41:32 +0000 (12:41 +0200)
committerMartin Kronbichler <kronbichler@lnm.mw.tum.de>
Fri, 1 May 2020 10:41:32 +0000 (12:41 +0200)
examples/step-51/step-51.cc

index f9ab7dcf339bd0ade0e02c1d06302d941d386fd5..084e5763287dd40b2d651cd8fdba6cb55e7543bf 100644 (file)
@@ -647,6 +647,15 @@ namespace Step51
   // manner.  The @p trace_reconstruct input parameter is used to decide
   // whether we are solving for the global skeleton solution (false) or the
   // local solution (true).
+  //
+  // One thing worth noting for the multi-threaded execution of assembly is
+  // the fact that the local computations in `assemble_system_one_cell()` call
+  // into BLAS and LAPACK functions if those are available in deal.II. Thus,
+  // the underlying BLAS/LAPACK library must support calls from multiple
+  // threads at the same time. Most implementations do support this, but some
+  // libraries need to be built in a specific way to avoid problems. For
+  // example, OpenBLAS compiled without multithreading inside the BLAS/LAPACK
+  // calls needs to built with a flag called `USE_LOCKING` set to true.
   template <int dim>
   void HDG<dim>::assemble_system(const bool trace_reconstruct)
   {

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.