TRUST 1.9.8
HPC thermohydraulic platform
Loading...
Searching...
No Matches
Schema_Comm_Vecteurs Class Reference

#include <Schema_Comm_Vecteurs.h>

Collaboration diagram for Schema_Comm_Vecteurs:
[legend]

Public Member Functions

 Schema_Comm_Vecteurs ()
 ~Schema_Comm_Vecteurs ()
void begin_init ()
 Reinitialise les tailles de buffers.
template<typename _TYPE_>
void add_send_area_template (int pe, int size)
template<typename _TYPE_>
void add_recv_area_template (int pe, int size)
template<typename _TYPE_>
TRUSTArray< _TYPE_ > & get_next_area_template (int pe, int array_size)
void end_init ()
 Une fois les donnees a echanger declarees avec add_send/recv_area_.
void begin_comm (bool bufferOnDevice=false)
 Commence un nouvel echange de donnees (les tailles de buffers doivent avoir ete initialisees avec begin_init() .
void exchange (IsExchangeBlocking exchange_type=IsExchangeBlocking::DefaultBlocking, const std::string kernel_name="noname")
void end_comm ()
template<>
void add_send_area_template (int pe, int size)
template<>
void add_send_area_template (int pe, int size)
template<>
void add_send_area_template (int pe, int size)
template<>
void add_recv_area_template (int pe, int size)
template<>
void add_recv_area_template (int pe, int size)
template<>
void add_recv_area_template (int pe, int size)
template<>
ArrOfInt & get_next_area_template (int pe, int size)
 renvoie un tableau contenant les "size" valeurs suivantes recues du processeur pe lors de la communication en cours.
template<>
ArrOfDouble & get_next_area_template (int pe, int size)
template<>
ArrOfFloat & get_next_area_template (int pe, int size)

Static Public Member Functions

static void CleanMyStaticViews ()

Protected Types

enum  Status {
  RESET , BEGIN_INIT , END_INIT , BEGIN_COMM ,
  EXCHANGED
}

Protected Member Functions

void add (int pe, int size, ArrOfInt &procs, ArrOfInt &buf_sizes, int align_size)
int check_buffers_full () const
 Selon status_, verifie que tous les pointeurs de buffers pointent a la fin du buffer aloue pour chaque processeur en emission.
int check_next_area (int pe, int byte_size) const
 verifie qu'il reste au moins byte_size octets dans le buffer du processeur pe

Protected Attributes

ArrOfInt send_buf_sizes_
ArrOfInt recv_buf_sizes_
ArrOfInt send_procs_
ArrOfInt recv_procs_
int sorted_ = 1
int min_buf_size_ = -1
bool bufferOnDevice_ = false
bool use_gpu_aware_mpi_ = false
Status status_

Static Protected Attributes

static bool buffer_locked_
static ArrOfDouble tmp_area_double_
static ArrOfFloat tmp_area_float_
static ArrOfInt tmp_area_int_
static Schema_Comm_Vecteurs_Static_Data sdata_

Detailed Description

Definition at line 56 of file Schema_Comm_Vecteurs.h.

Member Enumeration Documentation

◆ Status

Enumerator
RESET 
BEGIN_INIT 
END_INIT 
BEGIN_COMM 
EXCHANGED 

Definition at line 102 of file Schema_Comm_Vecteurs.h.

Constructor & Destructor Documentation

◆ Schema_Comm_Vecteurs()

Schema_Comm_Vecteurs::Schema_Comm_Vecteurs ( )

Definition at line 86 of file Schema_Comm_Vecteurs.cpp.

◆ ~Schema_Comm_Vecteurs()

Schema_Comm_Vecteurs::~Schema_Comm_Vecteurs ( )

Definition at line 102 of file Schema_Comm_Vecteurs.cpp.

Member Function Documentation

◆ add()

void Schema_Comm_Vecteurs::add ( int pe,
int size,
ArrOfInt & procs,
ArrOfInt & buf_sizes,
int align_size )
inlineprotected

Definition at line 154 of file Schema_Comm_Vecteurs.h.

◆ add_recv_area_template() [1/4]

template<>
void Schema_Comm_Vecteurs::add_recv_area_template ( int pe,
int size )
inline

Definition at line 209 of file Schema_Comm_Vecteurs.h.

◆ add_recv_area_template() [2/4]

template<>
void Schema_Comm_Vecteurs::add_recv_area_template ( int pe,
int size )
inline

Definition at line 203 of file Schema_Comm_Vecteurs.h.

◆ add_recv_area_template() [3/4]

template<>
void Schema_Comm_Vecteurs::add_recv_area_template ( int pe,
int size )
inline

Definition at line 197 of file Schema_Comm_Vecteurs.h.

◆ add_recv_area_template() [4/4]

template<typename _TYPE_>
void Schema_Comm_Vecteurs::add_recv_area_template ( int pe,
int size )
inline

◆ add_send_area_template() [1/4]

template<>
void Schema_Comm_Vecteurs::add_send_area_template ( int pe,
int size )
inline

Definition at line 191 of file Schema_Comm_Vecteurs.h.

◆ add_send_area_template() [2/4]

template<>
void Schema_Comm_Vecteurs::add_send_area_template ( int pe,
int size )
inline

Definition at line 185 of file Schema_Comm_Vecteurs.h.

◆ add_send_area_template() [3/4]

template<>
void Schema_Comm_Vecteurs::add_send_area_template ( int pe,
int size )
inline

Definition at line 179 of file Schema_Comm_Vecteurs.h.

◆ add_send_area_template() [4/4]

template<typename _TYPE_>
void Schema_Comm_Vecteurs::add_send_area_template ( int pe,
int size )
inline

◆ begin_comm()

void Schema_Comm_Vecteurs::begin_comm ( bool bufferOnDevice = false)

Commence un nouvel echange de donnees (les tailles de buffers doivent avoir ete initialisees avec begin_init() .

.. end_init()) On place les sdata_.buf_pointers_ au debut des buffers pour chaque processeur pour lequel un buffer a ete declare en "send" Apres begin_comm(), il faut remplir les buffers en utilisant get_next_area_int() ou get_next_area_double() dans le meme ordre que celui declare dans la phase d'initialisation, puis appeler exchange()

Definition at line 209 of file Schema_Comm_Vecteurs.cpp.

◆ begin_init()

void Schema_Comm_Vecteurs::begin_init ( )

Reinitialise les tailles de buffers.

Il faut ensuite definir les tailles de buffers avec add_send/recv_area_...() Cette methode doit etre appelee simultanement sur tous les processeurs du groupe.

Definition at line 113 of file Schema_Comm_Vecteurs.cpp.

◆ check_buffers_full()

int Schema_Comm_Vecteurs::check_buffers_full ( ) const
protected

Selon status_, verifie que tous les pointeurs de buffers pointent a la fin du buffer aloue pour chaque processeur en emission.

ou reception. Renvoie 0 en cas d'erreur (si un buffer n'a pas ete entierement rempli ou vide)

Definition at line 327 of file Schema_Comm_Vecteurs.cpp.

◆ check_next_area()

int Schema_Comm_Vecteurs::check_next_area ( int pe,
int byte_size ) const
protected

verifie qu'il reste au moins byte_size octets dans le buffer du processeur pe

Definition at line 379 of file Schema_Comm_Vecteurs.cpp.

◆ CleanMyStaticViews()

void Schema_Comm_Vecteurs::CleanMyStaticViews ( )
inlinestatic

Definition at line 169 of file Schema_Comm_Vecteurs.h.

◆ end_comm()

void Schema_Comm_Vecteurs::end_comm ( )

Definition at line 311 of file Schema_Comm_Vecteurs.cpp.

◆ end_init()

void Schema_Comm_Vecteurs::end_init ( )

Une fois les donnees a echanger declarees avec add_send/recv_area_.

..(), initialise les offset de buffers et alloue un buffer global de taille suffisante. Methode a appeler par tous les processeurs du groupe.

Definition at line 141 of file Schema_Comm_Vecteurs.cpp.

◆ exchange()

void Schema_Comm_Vecteurs::exchange ( IsExchangeBlocking exchange_type = IsExchangeBlocking::DefaultBlocking,
const std::string kernel_name = "noname" )

Definition at line 236 of file Schema_Comm_Vecteurs.cpp.

◆ get_next_area_template() [1/4]

template<typename _TYPE_>
TRUSTArray< _TYPE_ > & Schema_Comm_Vecteurs::get_next_area_template ( int pe,
int array_size )
inline

◆ get_next_area_template() [2/4]

template<>
ArrOfFloat & Schema_Comm_Vecteurs::get_next_area_template ( int pe,
int size )
inline

Definition at line 284 of file Schema_Comm_Vecteurs.h.

◆ get_next_area_template() [3/4]

template<>
ArrOfDouble & Schema_Comm_Vecteurs::get_next_area_template ( int pe,
int size )
inline

Definition at line 263 of file Schema_Comm_Vecteurs.h.

◆ get_next_area_template() [4/4]

template<>
ArrOfInt & Schema_Comm_Vecteurs::get_next_area_template ( int pe,
int size )
inline

renvoie un tableau contenant les "size" valeurs suivantes recues du processeur pe lors de la communication en cours.

Attention: Le tableau renvoye est une reference a un tableau interne qui n'est valide que jusqu'au prochain appel a une methode get_next_xxx.

Definition at line 236 of file Schema_Comm_Vecteurs.h.

Member Data Documentation

◆ buffer_locked_

bool Schema_Comm_Vecteurs::buffer_locked_
staticprotected

Definition at line 106 of file Schema_Comm_Vecteurs.h.

◆ bufferOnDevice_

bool Schema_Comm_Vecteurs::bufferOnDevice_ = false
protected

Definition at line 98 of file Schema_Comm_Vecteurs.h.

◆ min_buf_size_

int Schema_Comm_Vecteurs::min_buf_size_ = -1
protected

Definition at line 96 of file Schema_Comm_Vecteurs.h.

◆ recv_buf_sizes_

ArrOfInt Schema_Comm_Vecteurs::recv_buf_sizes_
protected

Definition at line 89 of file Schema_Comm_Vecteurs.h.

◆ recv_procs_

ArrOfInt Schema_Comm_Vecteurs::recv_procs_
protected

Definition at line 92 of file Schema_Comm_Vecteurs.h.

◆ sdata_

Schema_Comm_Vecteurs_Static_Data Schema_Comm_Vecteurs::sdata_
staticprotected

Definition at line 116 of file Schema_Comm_Vecteurs.h.

◆ send_buf_sizes_

ArrOfInt Schema_Comm_Vecteurs::send_buf_sizes_
protected

Definition at line 88 of file Schema_Comm_Vecteurs.h.

◆ send_procs_

ArrOfInt Schema_Comm_Vecteurs::send_procs_
protected

Definition at line 91 of file Schema_Comm_Vecteurs.h.

◆ sorted_

int Schema_Comm_Vecteurs::sorted_ = 1
protected

Definition at line 94 of file Schema_Comm_Vecteurs.h.

◆ status_

Status Schema_Comm_Vecteurs::status_
protected

Definition at line 103 of file Schema_Comm_Vecteurs.h.

◆ tmp_area_double_

ArrOfDouble Schema_Comm_Vecteurs::tmp_area_double_
staticprotected

Definition at line 108 of file Schema_Comm_Vecteurs.h.

◆ tmp_area_float_

ArrOfFloat Schema_Comm_Vecteurs::tmp_area_float_
staticprotected

Definition at line 109 of file Schema_Comm_Vecteurs.h.

◆ tmp_area_int_

ArrOfInt Schema_Comm_Vecteurs::tmp_area_int_
staticprotected

Definition at line 110 of file Schema_Comm_Vecteurs.h.

◆ use_gpu_aware_mpi_

bool Schema_Comm_Vecteurs::use_gpu_aware_mpi_ = false
protected

Definition at line 100 of file Schema_Comm_Vecteurs.h.


The documentation for this class was generated from the following files:
  • /home/docs/checkouts/readthedocs.org/user_builds/cea-trust-platform/checkouts/master/src/Kernel/Utilitaires/Schema_Comm_Vecteurs.h
  • /home/docs/checkouts/readthedocs.org/user_builds/cea-trust-platform/checkouts/master/src/Kernel/Utilitaires/Schema_Comm_Vecteurs.cpp