TrioCFD 1.9.8
TrioCFD documentation
Loading...
Searching...
No Matches
Process Class Reference

Classe de base de TRUST (notamment Objet_U). More...

#include <Process.h>

Inheritance diagram for Process:
[legend]

Public Member Functions

virtual ~Process ()

Static Public Member Functions

static int me ()
 renvoie mon rang dans le groupe de communication courant.
static int nproc ()
 renvoie le nombre de processeurs dans le groupe courant Voir Comm_Group::nproc() et PE_Groups::current_group()
static bool is_parallel ()
static void exit (int exit_code=-1)
 Routine de sortie de TRUST dans une region Kokkos.
static double mp_sum (double)
 Calcule la somme de x sur tous les processeurs du groupe courant.
static float mp_sum (float)
static trustIdType mp_sum (trustIdType)
 Calcule la somme de x sur tous les processeurs du groupe courant.
static double mp_max (double)
static double mp_min (double)
static int mp_max (int)
 renvoie le plus grand int i sur l'ensemble des processeurs du groupe courant.
static int mp_min (int)
 renvoie le plus petit int i sur l'ensemble des processeurs du groupe courant.
static double mp_sum_as_double (int v)
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).
template<typename T>
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: mp_sum_for_each(a, b); mp_sum_for_each(a, b, c); mp_sum_for_each(a, b, c, d); mp_sum_for_each(a, b, c, d, e); All arguments must be of the same type (double or int) and are modified in place. Supports 2-5 parameters.
template<typename T>
static void mp_sum_for_each (T &arg1, T &arg2, T &arg3)
template<typename T>
static void mp_sum_for_each (T &arg1, T &arg2, T &arg3, T &arg4)
template<typename T>
static void mp_sum_for_each (T &arg1, T &arg2, T &arg3, T &arg4, T &arg5)
template<typename T>
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.
template<typename T>
static void mp_max_for_each (T &arg1, T &arg2, T &arg3)
template<typename T>
static void mp_max_for_each (T &arg1, T &arg2, T &arg3, T &arg4)
template<typename T>
static void mp_max_for_each (T &arg1, T &arg2, T &arg3, T &arg4, T &arg5)
template<typename T>
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.
template<typename T>
static void mp_min_for_each (T &arg1, T &arg2, T &arg3)
template<typename T>
static void mp_min_for_each (T &arg1, T &arg2, T &arg3, T &arg4)
template<typename T>
static void mp_min_for_each (T &arg1, T &arg2, T &arg3, T &arg4, T &arg5)
template<typename _TYPE_>
static void mp_sum_for_each_item (TRUSTArray< _TYPE_ > &x, int n=-1)
template<typename _TYPE_>
static void mp_max_for_each_item (TRUSTArray< _TYPE_ > &x, int n=-1)
template<typename _TYPE_>
static void mp_min_for_each_item (TRUSTArray< _TYPE_ > &x, int n=-1)
static bool mp_and (bool)
 Calcule le 'et' logique de b sur tous les processeurs du groupe courant.
static bool mp_or (bool)
static int check_int_overflow (trustIdType)
static int je_suis_maitre ()
 renvoie 1 si on est sur le processeur maitre du groupe courant (c'est a dire me() == 0), 0 sinon.
static KOKKOS_INLINE_FUNCTION void Kokkos_exit (const char *)
 Routine de sortie de TRUST dans une region Kokkos.
static int node_master ()
 renvoie 1 si on est sur le processeur maitre du noeud numa, 0 sinon.
static void exit (const Nom &message, int exit_code=-1)
static bool is_sequential ()
static void barrier ()
 Synchronise tous les processeurs du groupe courant (attend que tous les processeurs soient arrives a la barriere).
static void abort ()
 Routine de sortie de Trio-U sur une erreur abort().
static SortieJournal (int message_level=0)
 Renvoie un objet statique de type Sortie qui sert de journal d'evenements.
static double ram_processeur ()
static void imprimer_ram_totale (int all_process=0)
static bool force_single_file (const int ranks, const Nom &filename)

Static Public Attributes

static int exception_sur_exit =0
static int multiple_files =5120

Detailed Description

Classe de base de TRUST (notamment Objet_U).

Elle fournit quelques services de base accessibles de partout dans le code (ces services etaient historiquement des methodes non statiques, depuis que tous ces services sont statiques, cette classe n'a plus vraiment d'autre fonction que de ranger ces methodes quelque part)

See also
Objet_U

Definition at line 49 of file Process.h.

Constructor & Destructor Documentation

◆ ~Process()

virtual Process::~Process ( )
inlinevirtual

Definition at line 52 of file Process.h.

Member Function Documentation

◆ abort()

void Process::abort ( )
static

Routine de sortie de Trio-U sur une erreur abort().

Definition at line 570 of file Process.cpp.

◆ barrier()

void Process::barrier ( )
static

Synchronise tous les processeurs du groupe courant (attend que tous les processeurs soient arrives a la barriere).

Instruction a executer sur tous les processeurs du groupe.

Definition at line 136 of file Process.cpp.

◆ check_int_overflow()

int Process::check_int_overflow ( trustIdType v)
static

Definition at line 428 of file Process.cpp.

◆ exit() [1/2]

void Process::exit ( const Nom & message,
int exit_code = -1 )
static

Definition at line 462 of file Process.cpp.

◆ exit() [2/2]

void Process::exit ( int i = -1)
static

Routine de sortie de TRUST dans une region Kokkos.

Routine de sortie de TRUST sur une erreur.

Sauvegarde la memoire et de la hierarchie dans les fichiers "memoire.dump" et "hierarchie.dump"

Definition at line 455 of file Process.cpp.

◆ force_single_file()

bool Process::force_single_file ( const int ranks,
const Nom & filename )
static

Definition at line 60 of file Process.cpp.

◆ imprimer_ram_totale()

void Process::imprimer_ram_totale ( int all_process = 0)
static

Definition at line 651 of file Process.cpp.

◆ is_parallel()

bool Process::is_parallel ( )
static

Definition at line 110 of file Process.cpp.

◆ is_sequential()

bool Process::is_sequential ( )
static

Definition at line 115 of file Process.cpp.

◆ je_suis_maitre()

int Process::je_suis_maitre ( )
static

renvoie 1 si on est sur le processeur maitre du groupe courant (c'est a dire me() == 0), 0 sinon.

Voir Comm_Group::rank()

Definition at line 86 of file Process.cpp.

◆ Journal()

Sortie & Process::Journal ( int message_level = 0)
static

Renvoie un objet statique de type Sortie qui sert de journal d'evenements.

Si message_level <= verbose_level_, on ecrit le message, sinon on l'envoie sur une Sortie_Nulle. Si le fichier journal est ouvert, on ecrit dans le fichier, sinon dans stderr.

Definition at line 588 of file Process.cpp.

◆ Kokkos_exit()

KOKKOS_INLINE_FUNCTION void Process::Kokkos_exit ( const char * str)
static

Routine de sortie de TRUST dans une region Kokkos.

Definition at line 173 of file Process.h.

◆ me()

int Process::me ( )
static

renvoie mon rang dans le groupe de communication courant.

Voir Comm_Group::rank() et PE_Groups::current_group()

Definition at line 125 of file Process.cpp.

◆ mp_and()

bool Process::mp_and ( bool b)
static

Calcule le 'et' logique de b sur tous les processeurs du groupe courant.

Definition at line 409 of file Process.cpp.

◆ mp_max() [1/2]

double Process::mp_max ( double x)
static

Definition at line 376 of file Process.cpp.

◆ mp_max() [2/2]

int Process::mp_max ( int x)
static

renvoie le plus grand int i sur l'ensemble des processeurs du groupe courant.

Definition at line 375 of file Process.cpp.

◆ mp_max_for_each() [1/4]

template<typename T>
void Process::mp_max_for_each ( T & arg1,
T & arg2 )
static

C++14 compatible mp_max_for_each: combine multiple mp_max calls into one collective operation.

Definition at line 244 of file Process.cpp.

◆ mp_max_for_each() [2/4]

template<typename T>
void Process::mp_max_for_each ( T & arg1,
T & arg2,
T & arg3 )
static

Definition at line 255 of file Process.cpp.

◆ mp_max_for_each() [3/4]

template<typename T>
void Process::mp_max_for_each ( T & arg1,
T & arg2,
T & arg3,
T & arg4 )
static

Definition at line 267 of file Process.cpp.

◆ mp_max_for_each() [4/4]

template<typename T>
void Process::mp_max_for_each ( T & arg1,
T & arg2,
T & arg3,
T & arg4,
T & arg5 )
static

Definition at line 332 of file Process.cpp.

◆ mp_max_for_each_item()

template<typename _TYPE_>
template void Process::mp_max_for_each_item< int > ( TRUSTArray< _TYPE_ > & x,
int n = -1 )
static

Definition at line 196 of file Process.cpp.

◆ mp_min() [1/2]

double Process::mp_min ( double x)
static

Definition at line 386 of file Process.cpp.

◆ mp_min() [2/2]

int Process::mp_min ( int x)
static

renvoie le plus petit int i sur l'ensemble des processeurs du groupe courant.

Definition at line 385 of file Process.cpp.

◆ mp_min_for_each() [1/4]

template<typename T>
void Process::mp_min_for_each ( T & arg1,
T & arg2 )
static

C++14 compatible mp_min_for_each: combine multiple mp_min calls into one collective operation.

Definition at line 281 of file Process.cpp.

◆ mp_min_for_each() [2/4]

template<typename T>
void Process::mp_min_for_each ( T & arg1,
T & arg2,
T & arg3 )
static

Definition at line 292 of file Process.cpp.

◆ mp_min_for_each() [3/4]

template<typename T>
void Process::mp_min_for_each ( T & arg1,
T & arg2,
T & arg3,
T & arg4 )
static

Definition at line 304 of file Process.cpp.

◆ mp_min_for_each() [4/4]

template<typename T>
void Process::mp_min_for_each ( T & arg1,
T & arg2,
T & arg3,
T & arg4,
T & arg5 )
static

Definition at line 346 of file Process.cpp.

◆ mp_min_for_each_item()

template<typename _TYPE_>
template void Process::mp_min_for_each_item< int > ( TRUSTArray< _TYPE_ > & x,
int n = -1 )
static

Definition at line 199 of file Process.cpp.

◆ mp_or()

bool Process::mp_or ( bool b)
static

Definition at line 418 of file Process.cpp.

◆ mp_sum() [1/3]

double Process::mp_sum ( double x)
static

Calcule la somme de x sur tous les processeurs du groupe courant.

See also
mp_max()

Definition at line 146 of file Process.cpp.

◆ mp_sum() [2/3]

float Process::mp_sum ( float x)
static

Definition at line 154 of file Process.cpp.

◆ mp_sum() [3/3]

trustIdType Process::mp_sum ( trustIdType x)
static

Calcule la somme de x sur tous les processeurs du groupe courant.

!!! Note that the sum of many int might result in a long !!!

See also
mp_max()

Definition at line 168 of file Process.cpp.

◆ mp_sum_as_double()

double Process::mp_sum_as_double ( int v)
inlinestatic

Definition at line 99 of file Process.h.

◆ mp_sum_for_each() [1/4]

template<typename T>
void Process::mp_sum_for_each ( T & arg1,
T & arg2 )
static

C++14 compatible mp_sum_for_each: combine multiple mp_sum calls into one collective operation Usage: mp_sum_for_each(a, b); mp_sum_for_each(a, b, c); mp_sum_for_each(a, b, c, d); mp_sum_for_each(a, b, c, d, e); All arguments must be of the same type (double or int) and are modified in place. Supports 2-5 parameters.

Definition at line 207 of file Process.cpp.

◆ mp_sum_for_each() [2/4]

template<typename T>
void Process::mp_sum_for_each ( T & arg1,
T & arg2,
T & arg3 )
static

Definition at line 218 of file Process.cpp.

◆ mp_sum_for_each() [3/4]

template<typename T>
void Process::mp_sum_for_each ( T & arg1,
T & arg2,
T & arg3,
T & arg4 )
static

Definition at line 230 of file Process.cpp.

◆ mp_sum_for_each() [4/4]

template<typename T>
void Process::mp_sum_for_each ( T & arg1,
T & arg2,
T & arg3,
T & arg4,
T & arg5 )
static

Definition at line 318 of file Process.cpp.

◆ mp_sum_for_each_item()

template<typename _TYPE_>
template void Process::mp_sum_for_each_item< int > ( TRUSTArray< _TYPE_ > & x,
int n = -1 )
static

Definition at line 193 of file Process.cpp.

◆ mppartial_sum()

trustIdType Process::mppartial_sum ( trustIdType x)
static

Calul de la somme partielle de i sur les processeurs 0 a me()-1 (renvoie 0 sur le processeur 0).

Voir Comm_Group::mppartial_sum()

Definition at line 396 of file Process.cpp.

◆ node_master()

int Process::node_master ( )
static

renvoie 1 si on est sur le processeur maitre du noeud numa, 0 sinon.

Definition at line 95 of file Process.cpp.

◆ nproc()

int Process::nproc ( )
static

renvoie le nombre de processeurs dans le groupe courant Voir Comm_Group::nproc() et PE_Groups::current_group()

Definition at line 104 of file Process.cpp.

◆ ram_processeur()

double Process::ram_processeur ( )
static

Definition at line 601 of file Process.cpp.

Member Data Documentation

◆ exception_sur_exit

int Process::exception_sur_exit =0
static

Definition at line 163 of file Process.h.

◆ multiple_files

int Process::multiple_files =5120
static

Definition at line 164 of file Process.h.


The documentation for this class was generated from the following files:
  • /home/docs/trust-code/src/Kernel/Utilitaires/Process.h
  • /home/docs/trust-code/src/Kernel/Utilitaires/Process.cpp