From 218b93117a8ff2f3a4b5eb918c12fb7661e4fe6d Mon Sep 17 00:00:00 2001 From: Wolfgang Bangerth Date: Fri, 14 Aug 2009 21:33:05 +0000 Subject: [PATCH] Clarify a detail. git-svn-id: https://svn.dealii.org/trunk@19269 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/examples/step-32/doc/intro.dox | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/deal.II/examples/step-32/doc/intro.dox b/deal.II/examples/step-32/doc/intro.dox index b3443f22a7..a8699fdb5e 100644 --- a/deal.II/examples/step-32/doc/intro.dox +++ b/deal.II/examples/step-32/doc/intro.dox @@ -271,10 +271,17 @@ calls to BoussinesqFlowProblem::setup_stokes_matrix, scheduled to available resources. There is one problem with this, however: if we have more than one MPI process running in parallel, then all of these processes need to communicate in a certain order and that requires that the -various setup_* functions can't run in parallel. For these -setup operations, we will therefore only be able to make use of multiple -processor cores within the same machine if there is only a single MPI -process in use. +various setup_* functions can't run in parallel. To make +things worse, even if there is only a single MPI process, we still +have to make a few calls to the MPI runtime (for example to set up +communicators for the various matrices and vectors; all of these +communicators contain only a single processor, but we still have to +call MPI functions for this). Unfortunately, most MPI implementations +are not thread-safe, and we can't call MPI functions from multiple +threads at once. For these setup operations, we will therefore only be +able to make use of multiple processor cores within the same machine +if we are not running under the control of MPI -- a condition we can +check using the Utilities::System::job_supports_mpi() function.

Implementation details

-- 2.39.5