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

#include <Schema_Comm.h>

Inheritance diagram for Schema_Comm:
[legend]
Collaboration diagram for Schema_Comm:
[legend]

Public Member Functions

 Schema_Comm ()
 Construction d'un nouveau schema de communication.
 Schema_Comm (const Schema_Comm &)
 Constructeur par copie (nouveau schema place en mode RESET).
 ~Schema_Comm ()
 Destruction d'un schema de communication.
void set_group (const Comm_Group &group)
 Methode obsolete, le groupe associe au schema est le groupe courant au moment ou on cree le schema.
const Comm_Groupget_group () const
 Renvoie le groupe auquel est associe le schema.
const Schema_Commoperator= (const Schema_Comm &)
 Operateur copie : on copie la liste des processeurs qui communiquent.
void set_send_recv_pe_list (const ArrOfInt &send_pe_list, const ArrOfInt &recv_pe_list, const int me_to_me=0)
 Definit la liste des processeurs a qui on va envoyer et de qui on va recevoir des donnees.
void begin_comm () const
 Reserve les buffers de comm pour une nouvelle communication.
Sortiesend_buffer (int num_PE) const
 renvoie le buffer correspondant au processeur num_PE pour y entasser des donnees a envoyer.
void echange_taille_et_messages () const
 Cette methode lance l'echange de donnees entre tous les processeurs.
void echange_messages (const ArrOfInt &recv_size) const
 Cette methode lance l'echange de donnees.
Entreerecv_buffer (int num_PE) const
 renvoie le buffer correspondant au processeur num_PE pour y lire les donnees recues.
void end_comm () const
 Vide les buffers et libere les ressources: on a fini de lire les donnees recues dans les buffers.
const ArrOfInt & get_send_pe_list () const
const ArrOfInt & get_recv_pe_list () const
void set_all_to_allv_flag (int x)

Protected Types

enum  Static_Status { UNINITIALIZED , RESET , WRITING , EXCHANGED }

Protected Member Functions

void echange_taille (const ArrOfInt &send_size, ArrOfInt &recv_size) const
 Transmet la taille des messages a envoyer aux processeurs qui vont les recevoir.
void echange_messages (const ArrOfInt &send_size, const ArrOfInt &recv_size) const
 Cette methode lance l'echange de donnees entre tous les processeurs.
void check_send_recv_pe_list () const
 Verifie que les send/recv_pe_list verifient la propriete "tu m'ecoutes quand je te parle".
 OBS_PTR (Comm_Group) ref_group_

Static Protected Member Functions

static OutputCommBufferobuffer (int pe)
 Accesseur a un membre du tableau obuffers_ (avec verification).
static InputCommBufferebuffer (int pe)
 Accesseur a un membre du tableau ebuffers_ (avec verification).

Protected Attributes

ArrOfInt send_pe_list_
ArrOfInt recv_pe_list_
int me_to_me_
int use_all_to_allv_

Static Protected Attributes

static Static_Status status_ = UNINITIALIZED

Detailed Description

Definition at line 80 of file Schema_Comm.h.

Member Enumeration Documentation

◆ Static_Status

Enumerator
UNINITIALIZED 
RESET 
WRITING 
EXCHANGED 

Definition at line 118 of file Schema_Comm.h.

Constructor & Destructor Documentation

◆ Schema_Comm() [1/2]

Schema_Comm::Schema_Comm ( )

Construction d'un nouveau schema de communication.

Definition at line 58 of file Schema_Comm.cpp.

◆ Schema_Comm() [2/2]

Schema_Comm::Schema_Comm ( const Schema_Comm & schema)

Constructeur par copie (nouveau schema place en mode RESET).

Attention : tous les membres du Comm_Group doivent executer cette fonction simultanement.

Definition at line 89 of file Schema_Comm.cpp.

◆ ~Schema_Comm()

Schema_Comm::~Schema_Comm ( )

Destruction d'un schema de communication.

Definition at line 79 of file Schema_Comm.cpp.

Member Function Documentation

◆ begin_comm()

void Schema_Comm::begin_comm ( ) const

Reserve les buffers de comm pour une nouvelle communication.

Le schema passe de RESET a WRITING, on a maintenant le droit d'appeler send_buffer(). Interdiction d'appeler a nouveau begin_comm sur tous les objets de comm avant d'avoir fini cette communication avec end_comm().

Definition at line 167 of file Schema_Comm.cpp.

◆ check_send_recv_pe_list()

void Schema_Comm::check_send_recv_pe_list ( ) const
protected

Verifie que les send/recv_pe_list verifient la propriete "tu m'ecoutes quand je te parle".

Definition at line 565 of file Schema_Comm.cpp.

◆ ebuffer()

InputCommBuffer & Schema_Comm::ebuffer ( int pe)
inlinestaticprotected

Accesseur a un membre du tableau ebuffers_ (avec verification).

Definition at line 42 of file Schema_Comm.cpp.

◆ echange_messages() [1/2]

void Schema_Comm::echange_messages ( const ArrOfInt & recv_size) const

Cette methode lance l'echange de donnees.

On fournit la taille en octets des messages recus dans recv_size (tableau de la meme taille que recv_pe_list) En mode check_enabled, on verifie que la taille est correcte

Definition at line 412 of file Schema_Comm.cpp.

◆ echange_messages() [2/2]

void Schema_Comm::echange_messages ( const ArrOfInt & send_size,
const ArrOfInt & recv_size ) const
protected

Cette methode lance l'echange de donnees entre tous les processeurs.

La taille des messages recus doit etre deja connue. Le schema passe de WRITING a EXCHANGED.

Definition at line 316 of file Schema_Comm.cpp.

◆ echange_taille()

void Schema_Comm::echange_taille ( const ArrOfInt & send_size,
ArrOfInt & recv_size ) const
protected

Transmet la taille des messages a envoyer aux processeurs qui vont les recevoir.

La taille est le nombre de bytes des obuffers. send_pe_list et recv_pe_list doivent etre initialises. Le schema doit etre dans l'etat WRITING.

Definition at line 264 of file Schema_Comm.cpp.

◆ echange_taille_et_messages()

void Schema_Comm::echange_taille_et_messages ( ) const

Cette methode lance l'echange de donnees entre tous les processeurs.

La taille des messages recus n'a pas besoin d'etre connue a priori, on la transmet. Le schema passe de WRITING a EXCHANGED.

Definition at line 387 of file Schema_Comm.cpp.

◆ end_comm()

void Schema_Comm::end_comm ( ) const

Vide les buffers et libere les ressources: on a fini de lire les donnees recues dans les buffers.

Le schema passe de EXCHANGED a RESET

Definition at line 440 of file Schema_Comm.cpp.

◆ get_group()

const Comm_Group & Schema_Comm::get_group ( ) const

Renvoie le groupe auquel est associe le schema.

Definition at line 133 of file Schema_Comm.cpp.

◆ get_recv_pe_list()

const ArrOfInt & Schema_Comm::get_recv_pe_list ( ) const

Definition at line 530 of file Schema_Comm.cpp.

◆ get_send_pe_list()

const ArrOfInt & Schema_Comm::get_send_pe_list ( ) const

Definition at line 524 of file Schema_Comm.cpp.

◆ OBS_PTR()

Schema_Comm::OBS_PTR ( Comm_Group )
protected

◆ obuffer()

OutputCommBuffer & Schema_Comm::obuffer ( int pe)
inlinestaticprotected

Accesseur a un membre du tableau obuffers_ (avec verification).

Definition at line 33 of file Schema_Comm.cpp.

◆ operator=()

const Schema_Comm & Schema_Comm::operator= ( const Schema_Comm & schema)

Operateur copie : on copie la liste des processeurs qui communiquent.

Le nouveau schema est place dans l'etat RESET. Attention : tous les membres du Comm_Group doivent executer cette fonction simultanement.

Definition at line 103 of file Schema_Comm.cpp.

◆ recv_buffer()

Entree & Schema_Comm::recv_buffer ( int num_PE) const

renvoie le buffer correspondant au processeur num_PE pour y lire les donnees recues.

Le schema doit etre dans l'etat EXCHANGED.

Definition at line 510 of file Schema_Comm.cpp.

◆ send_buffer()

Sortie & Schema_Comm::send_buffer ( int num_PE) const

renvoie le buffer correspondant au processeur num_PE pour y entasser des donnees a envoyer.

Le schema doit etre dans l'etat WRITING.

echange_xxx();

Definition at line 490 of file Schema_Comm.cpp.

◆ set_all_to_allv_flag()

void Schema_Comm::set_all_to_allv_flag ( int x)
inline

Definition at line 105 of file Schema_Comm.h.

◆ set_group()

void Schema_Comm::set_group ( const Comm_Group & group)

Methode obsolete, le groupe associe au schema est le groupe courant au moment ou on cree le schema.

L'appel a cette methode n'est valide qu'avec le meme groupe que le groupe d'origine. La methode ne fait rien.

Definition at line 124 of file Schema_Comm.cpp.

◆ set_send_recv_pe_list()

void Schema_Comm::set_send_recv_pe_list ( const ArrOfInt & send_pe_list,
const ArrOfInt & recv_pe_list,
const int me_to_me = 0 )

Definit la liste des processeurs a qui on va envoyer et de qui on va recevoir des donnees.

Si me_to_me est non nul, on autorise l'envoi des messages a soi-meme, sinon non (argument optionnel : par defaut, me_to_me=0)

Definition at line 145 of file Schema_Comm.cpp.

Member Data Documentation

◆ me_to_me_

int Schema_Comm::me_to_me_
protected

Definition at line 125 of file Schema_Comm.h.

◆ recv_pe_list_

ArrOfInt Schema_Comm::recv_pe_list_
protected

Definition at line 124 of file Schema_Comm.h.

◆ send_pe_list_

ArrOfInt Schema_Comm::send_pe_list_
protected

Definition at line 123 of file Schema_Comm.h.

◆ status_

Schema_Comm::Static_Status Schema_Comm::status_ = UNINITIALIZED
staticprotected

Definition at line 119 of file Schema_Comm.h.

◆ use_all_to_allv_

int Schema_Comm::use_all_to_allv_
protected

Definition at line 128 of file Schema_Comm.h.


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