Teuchos - Trilinos Tools Package
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
core
src
Teuchos_GlobalMPISession.hpp
Go to the documentation of this file.
1
// @HEADER
2
// ***********************************************************************
3
//
4
// Teuchos: Common Tools Package
5
// Copyright (2004) Sandia Corporation
6
//
7
// Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
8
// license for use of this work by or on behalf of the U.S. Government.
9
//
10
// Redistribution and use in source and binary forms, with or without
11
// modification, are permitted provided that the following conditions are
12
// met:
13
//
14
// 1. Redistributions of source code must retain the above copyright
15
// notice, this list of conditions and the following disclaimer.
16
//
17
// 2. Redistributions in binary form must reproduce the above copyright
18
// notice, this list of conditions and the following disclaimer in the
19
// documentation and/or other materials provided with the distribution.
20
//
21
// 3. Neither the name of the Corporation nor the names of the
22
// contributors may be used to endorse or promote products derived from
23
// this software without specific prior written permission.
24
//
25
// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
26
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
28
// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
29
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
30
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
31
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
32
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
33
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
34
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
35
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36
//
37
// Questions? Contact Michael A. Heroux (maherou@sandia.gov)
38
//
39
// ***********************************************************************
40
// @HEADER
41
42
#ifndef TEUCHOS_GLOBAL_MPI_SESSION_HPP
43
#define TEUCHOS_GLOBAL_MPI_SESSION_HPP
44
49
50
#include "TeuchosCore_ConfigDefs.hpp"
51
52
#include "Teuchos_ArrayView.hpp"
53
54
55
namespace
Teuchos
{
56
66
//
113
class
TEUCHOSCORE_LIB_DLL_EXPORT
GlobalMPISession
114
{
115
public
:
116
118
119
162
GlobalMPISession
(
int
* argc,
char
*** argv, std::ostream *out = &std::cout );
163
165
~GlobalMPISession
();
166
168
170
171
176
static
void
abort
();
177
179
180
188
static
bool
mpiIsInitialized
();
189
195
static
bool
mpiIsFinalized
();
196
207
static
int
getRank
();
208
219
static
int
getNProc
();
220
229
static
void
barrier
();
230
247
static
int
sum
(
int
localVal);
248
264
static
void
allGather
(
int
localVal,
const
ArrayView<int>
&allVals);
265
266
#ifdef HAVE_TEUCHOSCORE_KOKKOS
274
static
std::vector<std::string> getArgv ();
275
#endif
// HAVE_TEUCHOSCORE_KOKKOS
277
278
private
:
279
280
static
bool
haveMPIState_;
281
static
bool
mpiIsFinalized_;
282
static
int
rank_;
283
static
int
nProc_;
284
#ifdef HAVE_TEUCHOSCORE_KOKKOS
292
static
std::vector<std::string> argvCopy_;
293
#endif
// HAVE_TEUCHOSCORE_KOKKOS
294
295
static
void
initialize( std::ostream *out );
296
297
static
void
justInTimeInitialize();
298
299
};
300
301
}
// namespace Teuchos
302
303
#endif
// TEUCHOS_GLOBAL_MPI_SESSION_HPP
Teuchos::ArrayView
Nonowning array view.
Definition
Teuchos_ArrayViewDecl.hpp:123
Teuchos::GlobalMPISession::sum
static int sum(int localVal)
Sum a set of integers across processes.
Definition
Teuchos_GlobalMPISession.cpp:255
Teuchos::GlobalMPISession::abort
static void abort()
abort the program
Definition
Teuchos_GlobalMPISession.cpp:212
Teuchos::GlobalMPISession::barrier
static void barrier()
Call MPI_Barrier() on MPI_COMM_WORLD.
Definition
Teuchos_GlobalMPISession.cpp:246
Teuchos::GlobalMPISession::getRank
static int getRank()
The rank of the calling process in MPI_COMM_WORLD.
Definition
Teuchos_GlobalMPISession.cpp:233
Teuchos::GlobalMPISession::GlobalMPISession
GlobalMPISession(int *argc, char ***argv, std::ostream *out=&std::cout)
Calls MPI_Init() if MPI is enabled.
Definition
Teuchos_GlobalMPISession.cpp:75
Teuchos::GlobalMPISession::getNProc
static int getNProc()
The number of processes in MPI_COMM_WORLD.
Definition
Teuchos_GlobalMPISession.cpp:240
Teuchos::GlobalMPISession::mpiIsInitialized
static bool mpiIsInitialized()
Return whether MPI was initialized.
Definition
Teuchos_GlobalMPISession.cpp:221
Teuchos::GlobalMPISession::mpiIsFinalized
static bool mpiIsFinalized()
Return whether MPI was already finalized.
Definition
Teuchos_GlobalMPISession.cpp:227
Teuchos::GlobalMPISession::allGather
static void allGather(int localVal, const ArrayView< int > &allVals)
Global all-to-all of a set of integers across processes.
Definition
Teuchos_GlobalMPISession.cpp:268
Teuchos
The Teuchos namespace contains all of the classes, structs and enums used by Teuchos,...
Generated by
1.17.0