TRIQS/mpi 1.3.0
C++ interface to MPI
Loading...
Searching...
No Matches
mpi.hpp
Go to the documentation of this file.
1// Copyright (c) 2019-2024 Simons Foundation
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0.txt
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14//
15// Authors: Thomas Hahn, Alexander Hampel, Olivier Parcollet, Nils Wentzell
16
22#pragma once
23
24#include "./array.hpp"
25#include "./chunk.hpp"
26#include "./communicator.hpp"
27#include "./datatypes.hpp"
28#include "./environment.hpp"
30#include "./lazy.hpp"
31#include "./monitor.hpp"
32#include "./operators.hpp"
33#include "./pair.hpp"
34#include "./ranges.hpp"
35#include "./string.hpp"
36#include "./utils.hpp"
37#include "./vector.hpp"
38
39namespace mpi {
40
41#define MPI_TEST_MAIN \
42 int main(int argc, char **argv) { \
43 ::testing::InitGoogleTest(&argc, argv); \
44 if (mpi::has_env) { \
45 mpi::environment env(argc, argv); \
46 std::cout << "MPI environment detected\n"; \
47 return RUN_ALL_TESTS(); \
48 } else \
49 return RUN_ALL_TESTS(); \
50 }
51
52} // namespace mpi
Provides an MPI broadcast, reduce, scatter and gather for std::vector.
Provides utilities to distribute a range across MPI processes.
Provides a C++ wrapper class for an MPI_Comm object.
Provides utilities to map C++ datatypes to MPI datatypes.
Provides an MPI environment for initializing and finalizing an MPI program.
Provides generic implementations for a subset of collective MPI communications (broadcast,...
Provides a struct and tags to represent lazy MPI communication.
Provides a class for monitoring and communicating events across multiple processes.
Provides utilities to map custom binary functions to MPI operators.
Provides an MPI broadcast and reduce for std::pair.
Provides an MPI broadcast, reduce, scatter and gather for contiguous ranges.
Provides an MPI broadcast for std::string.
Provides general utilities related to MPI.
Provides an MPI broadcast, reduce, scatter and gather for std::vector.