16#ifndef Process_included
17#define Process_included
19#include <TRUST_Version.h>
20#include <TRUSTTabs_forward.h>
35int get_disable_stop();
36void change_disable_stop(
int new_stop);
56 static int me() {
return 0; }
57 static int nproc() {
return 1; }
59 static void exit(
int exit_code = -1) {
throw std::invalid_argument(
"an error is occured"); }
60 static void exit(
const std::string& s) {
throw std::invalid_argument(std::string(
"an error is occured ")+s); }
61 static double mp_sum(
double x) {
return x; }
62 static float mp_sum(
float x) {
return x; }
63 static double mp_max(
double x) {
return x; }
64 static int mp_max(
int x) {
return x; }
65 static double mp_min(
double x) {
return x; }
66 static int mp_min(
int x) {
return x; }
67 static trustIdType
mp_sum(
int x) {
return x; }
68 static trustIdType
mp_sum(trustIdType x) {
return x; }
69 template<
typename _TYPE_>
71 template<
typename _TYPE_>
73 template<
typename _TYPE_>
79 static void exit(
int exit_code = -1);
84 static double mp_sum(
double);
85 static float mp_sum(
float);
86 static trustIdType
mp_sum(trustIdType);
87 static double mp_max(
double);
88 static double mp_min(
double);
93 static trustIdType
mp_sum(
int v) {
return mp_sum(
static_cast<trustIdType
>(v)); }
94 static trustIdType
mp_max(trustIdType);
95 static trustIdType
mp_min(trustIdType);
119 static void mp_sum_for_each(T& arg1, T& arg2, T& arg3, T& arg4, T& arg5);
128 static void mp_max_for_each(T& arg1, T& arg2, T& arg3, T& arg4, T& arg5);
137 static void mp_min_for_each(T& arg1, T& arg2, T& arg3, T& arg4, T& arg5);
139 template<
typename _TYPE_>
141 template<
typename _TYPE_>
143 template<
typename _TYPE_>
147 static bool mp_or(
bool);
152 KOKKOS_INLINE_FUNCTION
static void Kokkos_exit(
const char*);
154 static void exit(
const Nom& message,
int exit_code = -1);
159 static Sortie&
Journal(
int message_level = 0);
class Nom Une chaine de caractere pour nommer les objets de TRUST
classe Objet_U Cette classe est la classe de base des Objets de TRUST
Classe de base de TRUST (notamment Objet_U).
static void mp_max_for_each_item(TRUSTArray< _TYPE_ > &x, int n=-1)
static double mp_min(double)
static int check_int_overflow(trustIdType)
static void mp_sum_for_each(T &arg1, T &arg2)
C++14 compatible mp_sum_for_each: combine multiple mp_sum calls into one collective operation Usage: ...
static double ram_processeur()
static trustIdType mppartial_sum(trustIdType i)
Calul de la somme partielle de i sur les processeurs 0 a me()-1 (renvoie 0 sur le processeur 0).
static KOKKOS_INLINE_FUNCTION void Kokkos_exit(const char *)
Routine de sortie de TRUST dans une region Kokkos.
static int multiple_files
static double mp_max(double)
static void mp_sum_for_each_item(TRUSTArray< _TYPE_ > &x, int n=-1)
static int node_master()
renvoie 1 si on est sur le processeur maitre du noeud numa, 0 sinon.
static bool is_parallel()
static Sortie & Journal(int message_level=0)
Renvoie un objet statique de type Sortie qui sert de journal d'evenements.
static void abort()
Routine de sortie de Trio-U sur une erreur abort().
static int nproc()
renvoie le nombre de processeurs dans le groupe courant Voir Comm_Group::nproc() et PE_Groups::curren...
static double mp_sum(double)
Calcule la somme de x sur tous les processeurs du groupe courant.
static void mp_max_for_each(T &arg1, T &arg2)
C++14 compatible mp_max_for_each: combine multiple mp_max calls into one collective operation.
static double mp_sum_as_double(int v)
static void imprimer_ram_totale(int all_process=0)
static void barrier()
Synchronise tous les processeurs du groupe courant (attend que tous les processeurs soient arrives a ...
static bool force_single_file(const int ranks, const Nom &filename)
static void mp_min_for_each(T &arg1, T &arg2)
C++14 compatible mp_min_for_each: combine multiple mp_min calls into one collective operation.
static int exception_sur_exit
static int me()
renvoie mon rang dans le groupe de communication courant.
static void exit(int exit_code=-1)
Routine de sortie de TRUST dans une region Kokkos.
static int je_suis_maitre()
renvoie 1 si on est sur le processeur maitre du groupe courant (c'est a dire me() == 0),...
static void mp_min_for_each_item(TRUSTArray< _TYPE_ > &x, int n=-1)
static bool is_sequential()
static bool mp_and(bool)
Calcule le 'et' logique de b sur tous les processeurs du groupe courant.
Classe de base des flux de sortie.