|
TrioCFD 1.9.8
TrioCFD documentation
|
#include <Schema_Comm.h>
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_Group & | get_group () const |
| Renvoie le groupe auquel est associe le schema. | |
| const Schema_Comm & | operator= (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. | |
| Sortie & | send_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. | |
| Entree & | recv_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 OutputCommBuffer & | obuffer (int pe) |
| Accesseur a un membre du tableau obuffers_ (avec verification). | |
| static InputCommBuffer & | ebuffer (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 |
Definition at line 80 of file Schema_Comm.h.
|
protected |
| Enumerator | |
|---|---|
| UNINITIALIZED | |
| RESET | |
| WRITING | |
| EXCHANGED | |
Definition at line 118 of file Schema_Comm.h.
| Schema_Comm::Schema_Comm | ( | ) |
Construction d'un nouveau schema de communication.
Definition at line 58 of file Schema_Comm.cpp.
| 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 | ( | ) |
Destruction d'un schema de communication.
Definition at line 79 of file Schema_Comm.cpp.
| 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.
|
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.
|
inlinestaticprotected |
Accesseur a un membre du tableau ebuffers_ (avec verification).
Definition at line 42 of file Schema_Comm.cpp.
| 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.
|
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.
|
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.
| 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.
| 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.
| 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.
| const ArrOfInt & Schema_Comm::get_recv_pe_list | ( | ) | const |
Definition at line 530 of file Schema_Comm.cpp.
| const ArrOfInt & Schema_Comm::get_send_pe_list | ( | ) | const |
Definition at line 524 of file Schema_Comm.cpp.
|
protected |
|
inlinestaticprotected |
Accesseur a un membre du tableau obuffers_ (avec verification).
Definition at line 33 of file Schema_Comm.cpp.
| 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.
| 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.
| 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.
|
inline |
Definition at line 105 of file Schema_Comm.h.
| 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.
| 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.
|
protected |
Definition at line 125 of file Schema_Comm.h.
|
protected |
Definition at line 124 of file Schema_Comm.h.
|
protected |
Definition at line 123 of file Schema_Comm.h.
|
staticprotected |
Definition at line 119 of file Schema_Comm.h.
|
protected |
Definition at line 128 of file Schema_Comm.h.