Comm_Group_MPI#

#include <Comm_Group_MPI.h>
Brief description

: Classe Comm_Group_MPI , derivee de la classe abstraite Comm_Group .

How to reference this class#

Copy the following pieces of RST/Markdown code to cite this element in other parts of the sphinx documentation (there is a copy button on the top-right when hovering the code block):

:ref:`Comm\_Group\_MPI <class-comm-group-mpi>`
[Comm\_Group\_MPI](#class-comm-group-mpi)

Detailed description#

Cette classe represente un groupe de communication qui repose sur MPI. Construction de l’objet : voir init_group_trio() pour le groupe_TRUST et init_group() pour les autres.

Inherits from#

Inheritance graph#

If the image is too small, right-click and open in new tab

../../../../../_images/classComm__Group__MPI__inherit__graph.png

List of Public Static Methods#

List of Public Methods#

List of Protected Methods#

List of Private Methods#

Complete Member Function Documentation#

cree_instance#

Definition
Objet_U * Comm_Group_MPI::cree_instance()
Brief description
Detailed description
How to reference this method:

Copy the following pieces of RST/Markdown code to cite this element in other parts of the sphinx documentation (there is a copy button on the top-right when hovering the code block):

:ref:`Objet_U * Comm_Group_MPI::cree_instance() <comm-group-mpi-public-static-objet-u-ptr-comm-group-mpi-cree-instance>`
[Objet_U * Comm_Group_MPI::cree_instance()](#comm-group-mpi-public-static-objet-u-ptr-comm-group-mpi-cree-instance)

get_trio_u_world#

Definition
MPI_Comm Comm_Group_MPI::get_trio_u_world()
Brief description
Detailed description
Referenced By
How to reference this method:

Copy the following pieces of RST/Markdown code to cite this element in other parts of the sphinx documentation (there is a copy button on the top-right when hovering the code block):

:ref:`MPI_Comm Comm_Group_MPI::get_trio_u_world() <comm-group-mpi-public-static-mpi-comm-comm-group-mpi-get-trio-u-world>`
[MPI_Comm Comm_Group_MPI::get_trio_u_world()](#comm-group-mpi-public-static-mpi-comm-comm-group-mpi-get-trio-u-world)

info#

Definition
const Type_info * Comm_Group_MPI::info()
Brief description
Detailed description
How to reference this method:

Copy the following pieces of RST/Markdown code to cite this element in other parts of the sphinx documentation (there is a copy button on the top-right when hovering the code block):

:ref:`const Type_info * Comm_Group_MPI::info() <comm-group-mpi-public-static-const-type-info-ptr-comm-group-mpi-info>`
[const Type_info * Comm_Group_MPI::info()](#comm-group-mpi-public-static-const-type-info-ptr-comm-group-mpi-info)

self_cast#

Definition
const Comm_Group_MPI & Comm_Group_MPI::self_cast(const Objet_U &)
Brief description
Detailed description
How to reference this method:

Copy the following pieces of RST/Markdown code to cite this element in other parts of the sphinx documentation (there is a copy button on the top-right when hovering the code block):

:ref:`const Comm_Group_MPI & Comm_Group_MPI::self_cast(const Objet_U &) <comm-group-mpi-public-static-const-comm-group-mpi-ref-comm-group-mpi-self-cast-const-objet-u-ref>`
[const Comm_Group_MPI & Comm_Group_MPI::self_cast(const Objet_U &)](#comm-group-mpi-public-static-const-comm-group-mpi-ref-comm-group-mpi-self-cast-const-objet-u-ref)

self_cast#

Definition
Comm_Group_MPI & Comm_Group_MPI::self_cast(Objet_U &)
Brief description
Detailed description
How to reference this method:

Copy the following pieces of RST/Markdown code to cite this element in other parts of the sphinx documentation (there is a copy button on the top-right when hovering the code block):

:ref:`Comm_Group_MPI & Comm_Group_MPI::self_cast(Objet_U &) <comm-group-mpi-public-static-comm-group-mpi-ref-comm-group-mpi-self-cast-objet-u-ref>`
[Comm_Group_MPI & Comm_Group_MPI::self_cast(Objet_U &)](#comm-group-mpi-public-static-comm-group-mpi-ref-comm-group-mpi-self-cast-objet-u-ref)

set_must_mpi_initialize#

Definition
void Comm_Group_MPI::set_must_mpi_initialize(bool flag)
Brief description
Detailed description
References
Referenced By
How to reference this method:

Copy the following pieces of RST/Markdown code to cite this element in other parts of the sphinx documentation (there is a copy button on the top-right when hovering the code block):

:ref:`void Comm_Group_MPI::set_must_mpi_initialize(bool flag) <comm-group-mpi-public-static-void-comm-group-mpi-set-must-mpi-initialize-bool-flag>`
[void Comm_Group_MPI::set_must_mpi_initialize(bool flag)](#comm-group-mpi-public-static-void-comm-group-mpi-set-must-mpi-initialize-bool-flag)

set_trio_u_world#

Definition
void Comm_Group_MPI::set_trio_u_world(MPI_Comm world)
Brief description

pour que trio_u n’utilise qu’une partie des processeurs de MPI_COMM_WORLD, il faut donner un communicateur a utiliser avant

Detailed description

d’appeler init_group_trio.

References
Referenced By
How to reference this method:

Copy the following pieces of RST/Markdown code to cite this element in other parts of the sphinx documentation (there is a copy button on the top-right when hovering the code block):

:ref:`void Comm_Group_MPI::set_trio_u_world(MPI_Comm world) <comm-group-mpi-public-static-void-comm-group-mpi-set-trio-u-world-mpi-comm-world>`
[void Comm_Group_MPI::set_trio_u_world(MPI_Comm world)](#comm-group-mpi-public-static-void-comm-group-mpi-set-trio-u-world-mpi-comm-world)

abort#

Definition
void Comm_Group_MPI::abort() const override
Brief description

appel a MPI_Abort et rend la main

Detailed description

Reimplements:

How to reference this method:

Copy the following pieces of RST/Markdown code to cite this element in other parts of the sphinx documentation (there is a copy button on the top-right when hovering the code block):

:ref:`void Comm_Group_MPI::abort() const override <comm-group-mpi-public-void-comm-group-mpi-abort-const-override>`
[void Comm_Group_MPI::abort() const override](#comm-group-mpi-public-void-comm-group-mpi-abort-const-override)

all_gather#

Definition
void Comm_Group_MPI::all_gather(const void *src_buffer, void *dest_buffer, int data_size) const override
Brief description
Detailed description

Reimplements:

References
How to reference this method:

Copy the following pieces of RST/Markdown code to cite this element in other parts of the sphinx documentation (there is a copy button on the top-right when hovering the code block):

:ref:`void Comm_Group_MPI::all_gather(const void *src_buffer, void *dest_buffer, int data_size) const override <comm-group-mpi-public-void-comm-group-mpi-all-gather-const-void-ptr-src-buffer-void-ptr-dest-buffer-int-data-size-const-override>`
[void Comm_Group_MPI::all_gather(const void *src_buffer, void *dest_buffer, int data_size) const override](#comm-group-mpi-public-void-comm-group-mpi-all-gather-const-void-ptr-src-buffer-void-ptr-dest-buffer-int-data-size-const-override)

all_gatherv#

Definition
void Comm_Group_MPI::all_gatherv(const void *src_buffer, void *dest_buffer, int send_size, const True_int *recv_size, const True_int *displs) const override
Brief description
Detailed description

Reimplements:

References
How to reference this method:

Copy the following pieces of RST/Markdown code to cite this element in other parts of the sphinx documentation (there is a copy button on the top-right when hovering the code block):

:ref:`void Comm_Group_MPI::all_gatherv(const void *src_buffer, void *dest_buffer, int send_size, const True_int *recv_size, const True_int *displs) const override <comm-group-mpi-public-void-comm-group-mpi-all-gatherv-const-void-ptr-src-buffer-void-ptr-dest-buffer-int-send-size-const-true-int-ptr-recv-size-const-true-int-ptr-displs-const-override>`
[void Comm_Group_MPI::all_gatherv(const void *src_buffer, void *dest_buffer, int send_size, const True_int *recv_size, const True_int *displs) const override](#comm-group-mpi-public-void-comm-group-mpi-all-gatherv-const-void-ptr-src-buffer-void-ptr-dest-buffer-int-send-size-const-true-int-ptr-recv-size-const-true-int-ptr-displs-const-override)

all_to_all#

Definition
void Comm_Group_MPI::all_to_all(const void *src_buffer, void *dest_buffer, int data_size) const override
Brief description
Detailed description

Reimplements:

References
How to reference this method:

Copy the following pieces of RST/Markdown code to cite this element in other parts of the sphinx documentation (there is a copy button on the top-right when hovering the code block):

:ref:`void Comm_Group_MPI::all_to_all(const void *src_buffer, void *dest_buffer, int data_size) const override <comm-group-mpi-public-void-comm-group-mpi-all-to-all-const-void-ptr-src-buffer-void-ptr-dest-buffer-int-data-size-const-override>`
[void Comm_Group_MPI::all_to_all(const void *src_buffer, void *dest_buffer, int data_size) const override](#comm-group-mpi-public-void-comm-group-mpi-all-to-all-const-void-ptr-src-buffer-void-ptr-dest-buffer-int-data-size-const-override)

all_to_allv#

Definition
void Comm_Group_MPI::all_to_allv(const void *src_buffer, int *send_data_size, int *send_data_offset, void *dest_buffer, int *recv_data_size, int *recv_data_offset) const
Brief description
Detailed description
References
How to reference this method:

Copy the following pieces of RST/Markdown code to cite this element in other parts of the sphinx documentation (there is a copy button on the top-right when hovering the code block):

:ref:`void Comm_Group_MPI::all_to_allv(const void *src_buffer, int *send_data_size, int *send_data_offset, void *dest_buffer, int *recv_data_size, int *recv_data_offset) const <comm-group-mpi-public-void-comm-group-mpi-all-to-allv-const-void-ptr-src-buffer-int-ptr-send-data-size-int-ptr-send-data-offset-void-ptr-dest-buffer-int-ptr-recv-data-size-int-ptr-recv-data-offset-const>`
[void Comm_Group_MPI::all_to_allv(const void *src_buffer, int *send_data_size, int *send_data_offset, void *dest_buffer, int *recv_data_size, int *recv_data_offset) const](#comm-group-mpi-public-void-comm-group-mpi-all-to-allv-const-void-ptr-src-buffer-int-ptr-send-data-size-int-ptr-send-data-offset-void-ptr-dest-buffer-int-ptr-recv-data-size-int-ptr-recv-data-offset-const)

barrier#

Definition
void Comm_Group_MPI::barrier(int tag) const override
Brief description

Point de synchronisation de tous les processeurs du groupe (permet de verifier que tout le monde est la.

Detailed description

..). Si check_enabled() est non nul, on utilise le tag pour verifier que tous les processeurs sont bien en train d’attendre le meme tag, sinon c’est une barriere simple. Le tag doit verifier 0 < = tag <max_tag (soit 32).

Reimplements:

References
How to reference this method:

Copy the following pieces of RST/Markdown code to cite this element in other parts of the sphinx documentation (there is a copy button on the top-right when hovering the code block):

:ref:`void Comm_Group_MPI::barrier(int tag) const override <comm-group-mpi-public-void-comm-group-mpi-barrier-int-tag-const-override>`
[void Comm_Group_MPI::barrier(int tag) const override](#comm-group-mpi-public-void-comm-group-mpi-barrier-int-tag-const-override)

broadcast#

Definition
void Comm_Group_MPI::broadcast(void *buffer, int size, int pe_source) const override
Brief description
Detailed description

Reimplements:

References
How to reference this method:

Copy the following pieces of RST/Markdown code to cite this element in other parts of the sphinx documentation (there is a copy button on the top-right when hovering the code block):

:ref:`void Comm_Group_MPI::broadcast(void *buffer, int size, int pe_source) const override <comm-group-mpi-public-void-comm-group-mpi-broadcast-void-ptr-buffer-int-size-int-pe-source-const-override>`
[void Comm_Group_MPI::broadcast(void *buffer, int size, int pe_source) const override](#comm-group-mpi-public-void-comm-group-mpi-broadcast-void-ptr-buffer-int-size-int-pe-source-const-override)

Comm_Group_MPI#

Definition
Comm_Group_MPI::Comm_Group_MPI()
Brief description

Constructeur par defaut.

Detailed description

Il faut ensuite appeler init_group() ou init_group_trio() pour finir la construction du groupe.

How to reference this method:

Copy the following pieces of RST/Markdown code to cite this element in other parts of the sphinx documentation (there is a copy button on the top-right when hovering the code block):

:ref:`Comm_Group_MPI::Comm_Group_MPI() <comm-group-mpi-public-comm-group-mpi-comm-group-mpi>`
[Comm_Group_MPI::Comm_Group_MPI()](#comm-group-mpi-public-comm-group-mpi-comm-group-mpi)

duplique#

Definition
int Comm_Group_MPI::duplique() const override
Brief description
Detailed description

Reimplements:

How to reference this method:

Copy the following pieces of RST/Markdown code to cite this element in other parts of the sphinx documentation (there is a copy button on the top-right when hovering the code block):

:ref:`int Comm_Group_MPI::duplique() const override <comm-group-mpi-public-int-comm-group-mpi-duplique-const-override>`
[int Comm_Group_MPI::duplique() const override](#comm-group-mpi-public-int-comm-group-mpi-duplique-const-override)

free#

Definition
void Comm_Group_MPI::free()
Brief description
Detailed description
How to reference this method:

Copy the following pieces of RST/Markdown code to cite this element in other parts of the sphinx documentation (there is a copy button on the top-right when hovering the code block):

:ref:`void Comm_Group_MPI::free() <comm-group-mpi-public-void-comm-group-mpi-free>`
[void Comm_Group_MPI::free()](#comm-group-mpi-public-void-comm-group-mpi-free)

free_all#

Definition
void Comm_Group_MPI::free_all()
Brief description

Free group and MPI communicator (to use for MPI subgroups only, MPI_COMM_WORLD can no be freed)

Detailed description
How to reference this method:

Copy the following pieces of RST/Markdown code to cite this element in other parts of the sphinx documentation (there is a copy button on the top-right when hovering the code block):

:ref:`void Comm_Group_MPI::free_all() <comm-group-mpi-public-void-comm-group-mpi-free-all>`
[void Comm_Group_MPI::free_all()](#comm-group-mpi-public-void-comm-group-mpi-free-all)

gather#

Definition
void Comm_Group_MPI::gather(const void *src_buffer, void *dest_buffer, int data_size, int root) const override
Brief description
Detailed description

Reimplements:

References
How to reference this method:

Copy the following pieces of RST/Markdown code to cite this element in other parts of the sphinx documentation (there is a copy button on the top-right when hovering the code block):

:ref:`void Comm_Group_MPI::gather(const void *src_buffer, void *dest_buffer, int data_size, int root) const override <comm-group-mpi-public-void-comm-group-mpi-gather-const-void-ptr-src-buffer-void-ptr-dest-buffer-int-data-size-int-root-const-override>`
[void Comm_Group_MPI::gather(const void *src_buffer, void *dest_buffer, int data_size, int root) const override](#comm-group-mpi-public-void-comm-group-mpi-gather-const-void-ptr-src-buffer-void-ptr-dest-buffer-int-data-size-int-root-const-override)

get_info#

Definition
const Type_info * Comm_Group_MPI::get_info() const override
Brief description

Donne des informations sur le type de l’ Objet_U .

Detailed description

Reimplements:

How to reference this method:

Copy the following pieces of RST/Markdown code to cite this element in other parts of the sphinx documentation (there is a copy button on the top-right when hovering the code block):

:ref:`const Type_info * Comm_Group_MPI::get_info() const override <comm-group-mpi-public-const-type-info-ptr-comm-group-mpi-get-info-const-override>`
[const Type_info * Comm_Group_MPI::get_info() const override](#comm-group-mpi-public-const-type-info-ptr-comm-group-mpi-get-info-const-override)

get_mpi_comm#

Definition
MPI_Comm Comm_Group_MPI::get_mpi_comm() const
Brief description
Detailed description
Referenced By
How to reference this method:

Copy the following pieces of RST/Markdown code to cite this element in other parts of the sphinx documentation (there is a copy button on the top-right when hovering the code block):

:ref:`MPI_Comm Comm_Group_MPI::get_mpi_comm() const <comm-group-mpi-public-mpi-comm-comm-group-mpi-get-mpi-comm-const>`
[MPI_Comm Comm_Group_MPI::get_mpi_comm() const](#comm-group-mpi-public-mpi-comm-comm-group-mpi-get-mpi-comm-const)

get_node_id#

Definition
int Comm_Group_MPI::get_node_id() const
Brief description

Retrieve ID of my numa node.

Detailed description
References
Referenced By
How to reference this method:

Copy the following pieces of RST/Markdown code to cite this element in other parts of the sphinx documentation (there is a copy button on the top-right when hovering the code block):

:ref:`int Comm_Group_MPI::get_node_id() const <comm-group-mpi-public-int-comm-group-mpi-get-node-id-const>`
[int Comm_Group_MPI::get_node_id() const](#comm-group-mpi-public-int-comm-group-mpi-get-node-id-const)

init_comm_on_node_master#

Definition
void Comm_Group_MPI::init_comm_on_node_master()
Brief description

Building MPI communicator containing only the master of my numa node (ie one different communicator for each node)

Detailed description
References
How to reference this method:

Copy the following pieces of RST/Markdown code to cite this element in other parts of the sphinx documentation (there is a copy button on the top-right when hovering the code block):

:ref:`void Comm_Group_MPI::init_comm_on_node_master() <comm-group-mpi-public-void-comm-group-mpi-init-comm-on-node-master>`
[void Comm_Group_MPI::init_comm_on_node_master()](#comm-group-mpi-public-void-comm-group-mpi-init-comm-on-node-master)

init_comm_on_numa_node#

Definition
void Comm_Group_MPI::init_comm_on_numa_node()
Brief description

Building MPI communicator based on numa node (ie one communicator for each node)

Detailed description
References
How to reference this method:

Copy the following pieces of RST/Markdown code to cite this element in other parts of the sphinx documentation (there is a copy button on the top-right when hovering the code block):

:ref:`void Comm_Group_MPI::init_comm_on_numa_node() <comm-group-mpi-public-void-comm-group-mpi-init-comm-on-numa-node>`
[void Comm_Group_MPI::init_comm_on_numa_node()](#comm-group-mpi-public-void-comm-group-mpi-init-comm-on-numa-node)

init_group_trio#

Definition
void Comm_Group_MPI::init_group_trio()
Brief description

constructeur du groupe “tous” Attention, ce constructeur ne doit etre appele qu’une seule fois.

Detailed description

Le groupe est associe a trio_u_world_ Si must_mpi_initialize_ = = false, on suppose que MPI_Init a deja ete appele. Apres l’appel a init_group_trio, il faut enregistrer le groupe dans PE_Groups Voir PE_Groups::initialize()

References
How to reference this method:

Copy the following pieces of RST/Markdown code to cite this element in other parts of the sphinx documentation (there is a copy button on the top-right when hovering the code block):

:ref:`void Comm_Group_MPI::init_group_trio() <comm-group-mpi-public-void-comm-group-mpi-init-group-trio>`
[void Comm_Group_MPI::init_group_trio()](#comm-group-mpi-public-void-comm-group-mpi-init-group-trio)

mp_collective_op#

Definition
void Comm_Group_MPI::mp_collective_op(const double *x, double *resu, const Collective_Op *op, int n) const override
Brief description
Detailed description

Reimplements:

References
How to reference this method:

Copy the following pieces of RST/Markdown code to cite this element in other parts of the sphinx documentation (there is a copy button on the top-right when hovering the code block):

:ref:`void Comm_Group_MPI::mp_collective_op(const double *x, double *resu, const Collective_Op *op, int n) const override <comm-group-mpi-public-void-comm-group-mpi-mp-collective-op-const-double-ptr-x-double-ptr-resu-const-collective-op-ptr-op-int-n-const-override>`
[void Comm_Group_MPI::mp_collective_op(const double *x, double *resu, const Collective_Op *op, int n) const override](#comm-group-mpi-public-void-comm-group-mpi-mp-collective-op-const-double-ptr-x-double-ptr-resu-const-collective-op-ptr-op-int-n-const-override)

mp_collective_op#

Definition
void Comm_Group_MPI::mp_collective_op(const double *x, double *resu, int n, Collective_Op op) const override
Brief description
Detailed description

Reimplements:

Referenced By
How to reference this method:

Copy the following pieces of RST/Markdown code to cite this element in other parts of the sphinx documentation (there is a copy button on the top-right when hovering the code block):

:ref:`void Comm_Group_MPI::mp_collective_op(const double *x, double *resu, int n, Collective_Op op) const override <comm-group-mpi-public-void-comm-group-mpi-mp-collective-op-const-double-ptr-x-double-ptr-resu-int-n-collective-op-op-const-override>`
[void Comm_Group_MPI::mp_collective_op(const double *x, double *resu, int n, Collective_Op op) const override](#comm-group-mpi-public-void-comm-group-mpi-mp-collective-op-const-double-ptr-x-double-ptr-resu-int-n-collective-op-op-const-override)

mp_collective_op#

Definition
void Comm_Group_MPI::mp_collective_op(const float *x, float *resu, const Collective_Op *op, int n) const override
Brief description
Detailed description

Reimplements:

References
How to reference this method:

Copy the following pieces of RST/Markdown code to cite this element in other parts of the sphinx documentation (there is a copy button on the top-right when hovering the code block):

:ref:`void Comm_Group_MPI::mp_collective_op(const float *x, float *resu, const Collective_Op *op, int n) const override <comm-group-mpi-public-void-comm-group-mpi-mp-collective-op-const-float-ptr-x-float-ptr-resu-const-collective-op-ptr-op-int-n-const-override>`
[void Comm_Group_MPI::mp_collective_op(const float *x, float *resu, const Collective_Op *op, int n) const override](#comm-group-mpi-public-void-comm-group-mpi-mp-collective-op-const-float-ptr-x-float-ptr-resu-const-collective-op-ptr-op-int-n-const-override)

mp_collective_op#

Definition
void Comm_Group_MPI::mp_collective_op(const float *x, float *resu, int n, Collective_Op op) const override
Brief description
Detailed description

Reimplements:

How to reference this method:

Copy the following pieces of RST/Markdown code to cite this element in other parts of the sphinx documentation (there is a copy button on the top-right when hovering the code block):

:ref:`void Comm_Group_MPI::mp_collective_op(const float *x, float *resu, int n, Collective_Op op) const override <comm-group-mpi-public-void-comm-group-mpi-mp-collective-op-const-float-ptr-x-float-ptr-resu-int-n-collective-op-op-const-override>`
[void Comm_Group_MPI::mp_collective_op(const float *x, float *resu, int n, Collective_Op op) const override](#comm-group-mpi-public-void-comm-group-mpi-mp-collective-op-const-float-ptr-x-float-ptr-resu-int-n-collective-op-op-const-override)

mp_collective_op#

Definition
void Comm_Group_MPI::mp_collective_op(const int *x, int *resu, const Collective_Op *op, int n) const override
Brief description
Detailed description

Reimplements:

References
How to reference this method:

Copy the following pieces of RST/Markdown code to cite this element in other parts of the sphinx documentation (there is a copy button on the top-right when hovering the code block):

:ref:`void Comm_Group_MPI::mp_collective_op(const int *x, int *resu, const Collective_Op *op, int n) const override <comm-group-mpi-public-void-comm-group-mpi-mp-collective-op-const-int-ptr-x-int-ptr-resu-const-collective-op-ptr-op-int-n-const-override>`
[void Comm_Group_MPI::mp_collective_op(const int *x, int *resu, const Collective_Op *op, int n) const override](#comm-group-mpi-public-void-comm-group-mpi-mp-collective-op-const-int-ptr-x-int-ptr-resu-const-collective-op-ptr-op-int-n-const-override)

mp_collective_op#

Definition
void Comm_Group_MPI::mp_collective_op(const int *x, int *resu, int n, Collective_Op op) const override
Brief description
Detailed description

Reimplements:

How to reference this method:

Copy the following pieces of RST/Markdown code to cite this element in other parts of the sphinx documentation (there is a copy button on the top-right when hovering the code block):

:ref:`void Comm_Group_MPI::mp_collective_op(const int *x, int *resu, int n, Collective_Op op) const override <comm-group-mpi-public-void-comm-group-mpi-mp-collective-op-const-int-ptr-x-int-ptr-resu-int-n-collective-op-op-const-override>`
[void Comm_Group_MPI::mp_collective_op(const int *x, int *resu, int n, Collective_Op op) const override](#comm-group-mpi-public-void-comm-group-mpi-mp-collective-op-const-int-ptr-x-int-ptr-resu-int-n-collective-op-op-const-override)

mp_collective_op#

Definition
void Comm_Group_MPI::mp_collective_op(const trustIdType *x, trustIdType *resu, const Collective_Op *op, int n) const override
Brief description
Detailed description

Reimplements:

References
How to reference this method:

Copy the following pieces of RST/Markdown code to cite this element in other parts of the sphinx documentation (there is a copy button on the top-right when hovering the code block):

:ref:`void Comm_Group_MPI::mp_collective_op(const trustIdType *x, trustIdType *resu, const Collective_Op *op, int n) const override <comm-group-mpi-public-void-comm-group-mpi-mp-collective-op-const-trustidtype-ptr-x-trustidtype-ptr-resu-const-collective-op-ptr-op-int-n-const-override>`
[void Comm_Group_MPI::mp_collective_op(const trustIdType *x, trustIdType *resu, const Collective_Op *op, int n) const override](#comm-group-mpi-public-void-comm-group-mpi-mp-collective-op-const-trustidtype-ptr-x-trustidtype-ptr-resu-const-collective-op-ptr-op-int-n-const-override)

mp_collective_op#

Definition
void Comm_Group_MPI::mp_collective_op(const trustIdType *x, trustIdType *resu, int n, Collective_Op op) const override
Brief description
Detailed description

Reimplements:

How to reference this method:

Copy the following pieces of RST/Markdown code to cite this element in other parts of the sphinx documentation (there is a copy button on the top-right when hovering the code block):

:ref:`void Comm_Group_MPI::mp_collective_op(const trustIdType *x, trustIdType *resu, int n, Collective_Op op) const override <comm-group-mpi-public-void-comm-group-mpi-mp-collective-op-const-trustidtype-ptr-x-trustidtype-ptr-resu-int-n-collective-op-op-const-override>`
[void Comm_Group_MPI::mp_collective_op(const trustIdType *x, trustIdType *resu, int n, Collective_Op op) const override](#comm-group-mpi-public-void-comm-group-mpi-mp-collective-op-const-trustidtype-ptr-x-trustidtype-ptr-resu-int-n-collective-op-op-const-override)

ptop_send_recv#

Definition
void Comm_Group_MPI::ptop_send_recv(const void *send_buf, int send_buf_size, int send_proc, void *recv_buf, int recv_buf_size, int recv_proc) const
Brief description
Detailed description
References
How to reference this method:

Copy the following pieces of RST/Markdown code to cite this element in other parts of the sphinx documentation (there is a copy button on the top-right when hovering the code block):

:ref:`void Comm_Group_MPI::ptop_send_recv(const void *send_buf, int send_buf_size, int send_proc, void *recv_buf, int recv_buf_size, int recv_proc) const <comm-group-mpi-public-void-comm-group-mpi-ptop-send-recv-const-void-ptr-send-buf-int-send-buf-size-int-send-proc-void-ptr-recv-buf-int-recv-buf-size-int-recv-proc-const>`
[void Comm_Group_MPI::ptop_send_recv(const void *send_buf, int send_buf_size, int send_proc, void *recv_buf, int recv_buf_size, int recv_proc) const](#comm-group-mpi-public-void-comm-group-mpi-ptop-send-recv-const-void-ptr-send-buf-int-send-buf-size-int-send-proc-void-ptr-recv-buf-int-recv-buf-size-int-recv-proc-const)

recv#

Definition
void Comm_Group_MPI::recv(int pe, void *buffer, int size, int tag) const override
Brief description

Reception blocante d’un message.

Detailed description

Reimplements:

References
How to reference this method:

Copy the following pieces of RST/Markdown code to cite this element in other parts of the sphinx documentation (there is a copy button on the top-right when hovering the code block):

:ref:`void Comm_Group_MPI::recv(int pe, void *buffer, int size, int tag) const override <comm-group-mpi-public-void-comm-group-mpi-recv-int-pe-void-ptr-buffer-int-size-int-tag-const-override>`
[void Comm_Group_MPI::recv(int pe, void *buffer, int size, int tag) const override](#comm-group-mpi-public-void-comm-group-mpi-recv-int-pe-void-ptr-buffer-int-size-int-tag-const-override)

send#

Definition
void Comm_Group_MPI::send(int pe, const void *buffer, int size, int tag) const override
Brief description

Envoi blocant.

Detailed description

Pour etre bien certain que le code est safe, on force une communication synchrone pour forcer le blocage en mode check (voir check_enabled() ). Sinon, on utilise MPI_Send qui est en general non blocant pour les petits messages (donc de meilleures performances).

Reimplements:

References
How to reference this method:

Copy the following pieces of RST/Markdown code to cite this element in other parts of the sphinx documentation (there is a copy button on the top-right when hovering the code block):

:ref:`void Comm_Group_MPI::send(int pe, const void *buffer, int size, int tag) const override <comm-group-mpi-public-void-comm-group-mpi-send-int-pe-const-void-ptr-buffer-int-size-int-tag-const-override>`
[void Comm_Group_MPI::send(int pe, const void *buffer, int size, int tag) const override](#comm-group-mpi-public-void-comm-group-mpi-send-int-pe-const-void-ptr-buffer-int-size-int-tag-const-override)

send_recv_finish#

Definition
void Comm_Group_MPI::send_recv_finish() const override
Brief description

Attend que l’ensemble des communications lancees par send_recv_start soient finie.

Detailed description

Reimplements:

References
How to reference this method:

Copy the following pieces of RST/Markdown code to cite this element in other parts of the sphinx documentation (there is a copy button on the top-right when hovering the code block):

:ref:`void Comm_Group_MPI::send_recv_finish() const override <comm-group-mpi-public-void-comm-group-mpi-send-recv-finish-const-override>`
[void Comm_Group_MPI::send_recv_finish() const override](#comm-group-mpi-public-void-comm-group-mpi-send-recv-finish-const-override)

send_recv_start#

Definition
void Comm_Group_MPI::send_recv_start(const ArrOfInt &send_list, const ArrOfInt &send_size, const char *const *const send_buffers, const ArrOfInt &recv_list, const ArrOfInt &recv_size, char *const *const recv_buffers, TypeHint typehint=CHAR) const override
Brief description

Demarre l’envoi et la reception des buffers.

Detailed description

Les buffers doivent rester valide jusqu’au retour de send_recv_finish() . Le graphe de communication et la taille des buffers doivent etre corrects ! send_list : liste des processeurs (numerotation sur groupe courant) a qui envoyer send_size : taille en octets de chaque message send_buffers : adresse des donnees a envoyer. recv_… : idem pour les donnees en reception.

Reimplements:

References
How to reference this method:

Copy the following pieces of RST/Markdown code to cite this element in other parts of the sphinx documentation (there is a copy button on the top-right when hovering the code block):

:ref:`void Comm_Group_MPI::send_recv_start(const ArrOfInt &send_list, const ArrOfInt &send_size, const char *const *const send_buffers, const ArrOfInt &recv_list, const ArrOfInt &recv_size, char *const *const recv_buffers, TypeHint typehint=CHAR) const override <comm-group-mpi-public-void-comm-group-mpi-send-recv-start-const-arrofint-ref-send-list-const-arrofint-ref-send-size-const-char-ptr-const-ptr-const-send-buffers-const-arrofint-ref-recv-list-const-arrofint-ref-recv-size-char-ptr-const-ptr-const-recv-buffers-typehint-typehint-equal-char-const-override>`
[void Comm_Group_MPI::send_recv_start(const ArrOfInt &send_list, const ArrOfInt &send_size, const char *const *const send_buffers, const ArrOfInt &recv_list, const ArrOfInt &recv_size, char *const *const recv_buffers, TypeHint typehint=CHAR) const override](#comm-group-mpi-public-void-comm-group-mpi-send-recv-start-const-arrofint-ref-send-list-const-arrofint-ref-send-size-const-char-ptr-const-ptr-const-send-buffers-const-arrofint-ref-recv-list-const-arrofint-ref-recv-size-char-ptr-const-ptr-const-recv-buffers-typehint-typehint-equal-char-const-override)

set_must_finalize#

Definition
void Comm_Group_MPI::set_must_finalize(int flag)
Brief description
Detailed description
How to reference this method:

Copy the following pieces of RST/Markdown code to cite this element in other parts of the sphinx documentation (there is a copy button on the top-right when hovering the code block):

:ref:`void Comm_Group_MPI::set_must_finalize(int flag) <comm-group-mpi-public-void-comm-group-mpi-set-must-finalize-int-flag>`
[void Comm_Group_MPI::set_must_finalize(int flag)](#comm-group-mpi-public-void-comm-group-mpi-set-must-finalize-int-flag)

taille_memoire#

Definition
unsigned Comm_Group_MPI::taille_memoire() const override
Brief description
Detailed description

Reimplements:

How to reference this method:

Copy the following pieces of RST/Markdown code to cite this element in other parts of the sphinx documentation (there is a copy button on the top-right when hovering the code block):

:ref:`unsigned Comm_Group_MPI::taille_memoire() const override <comm-group-mpi-public-unsigned-comm-group-mpi-taille-memoire-const-override>`
[unsigned Comm_Group_MPI::taille_memoire() const override](#comm-group-mpi-public-unsigned-comm-group-mpi-taille-memoire-const-override)

~Comm_Group_MPI#

Definition
Comm_Group_MPI::~Comm_Group_MPI() override
Brief description
Detailed description
How to reference this method:

Copy the following pieces of RST/Markdown code to cite this element in other parts of the sphinx documentation (there is a copy button on the top-right when hovering the code block):

:ref:`Comm_Group_MPI::~Comm_Group_MPI() override <comm-group-mpi-public-comm-group-mpi-dtor-comm-group-mpi-override>`
[Comm_Group_MPI::~Comm_Group_MPI() override](#comm-group-mpi-public-comm-group-mpi-dtor-comm-group-mpi-override)

init_group#

Definition
void Comm_Group_MPI::init_group(const ArrOfInt &pe_list) override
Brief description

Construction du groupe de processeurs a partir de la liste.

Detailed description

Reimplements:

References
How to reference this method:

Copy the following pieces of RST/Markdown code to cite this element in other parts of the sphinx documentation (there is a copy button on the top-right when hovering the code block):

:ref:`void Comm_Group_MPI::init_group(const ArrOfInt &pe_list) override <comm-group-mpi-protected-void-comm-group-mpi-init-group-const-arrofint-ref-pe-list-override>`
[void Comm_Group_MPI::init_group(const ArrOfInt &pe_list) override](#comm-group-mpi-protected-void-comm-group-mpi-init-group-const-arrofint-ref-pe-list-override)

internal_collective#

Definition
void Comm_Group_MPI::internal_collective(const double *x, double *resu, int nx, const Collective_Op *op, int nop, int level) const
Brief description
Detailed description
References
How to reference this method:

Copy the following pieces of RST/Markdown code to cite this element in other parts of the sphinx documentation (there is a copy button on the top-right when hovering the code block):

:ref:`void Comm_Group_MPI::internal_collective(const double *x, double *resu, int nx, const Collective_Op *op, int nop, int level) const <comm-group-mpi-protected-void-comm-group-mpi-internal-collective-const-double-ptr-x-double-ptr-resu-int-nx-const-collective-op-ptr-op-int-nop-int-level-const>`
[void Comm_Group_MPI::internal_collective(const double *x, double *resu, int nx, const Collective_Op *op, int nop, int level) const](#comm-group-mpi-protected-void-comm-group-mpi-internal-collective-const-double-ptr-x-double-ptr-resu-int-nx-const-collective-op-ptr-op-int-nop-int-level-const)

internal_collective#

Definition
void Comm_Group_MPI::internal_collective(const float *x, float *resu, int nx, const Collective_Op *op, int nop, int level) const
Brief description
Detailed description
References
How to reference this method:

Copy the following pieces of RST/Markdown code to cite this element in other parts of the sphinx documentation (there is a copy button on the top-right when hovering the code block):

:ref:`void Comm_Group_MPI::internal_collective(const float *x, float *resu, int nx, const Collective_Op *op, int nop, int level) const <comm-group-mpi-protected-void-comm-group-mpi-internal-collective-const-float-ptr-x-float-ptr-resu-int-nx-const-collective-op-ptr-op-int-nop-int-level-const>`
[void Comm_Group_MPI::internal_collective(const float *x, float *resu, int nx, const Collective_Op *op, int nop, int level) const](#comm-group-mpi-protected-void-comm-group-mpi-internal-collective-const-float-ptr-x-float-ptr-resu-int-nx-const-collective-op-ptr-op-int-nop-int-level-const)

internal_collective#

Definition
void Comm_Group_MPI::internal_collective(const int *x, int *resu, int nx, const Collective_Op *op, int nop, int level) const
Brief description
Detailed description
References
Referenced By
How to reference this method:

Copy the following pieces of RST/Markdown code to cite this element in other parts of the sphinx documentation (there is a copy button on the top-right when hovering the code block):

:ref:`void Comm_Group_MPI::internal_collective(const int *x, int *resu, int nx, const Collective_Op *op, int nop, int level) const <comm-group-mpi-protected-void-comm-group-mpi-internal-collective-const-int-ptr-x-int-ptr-resu-int-nx-const-collective-op-ptr-op-int-nop-int-level-const>`
[void Comm_Group_MPI::internal_collective(const int *x, int *resu, int nx, const Collective_Op *op, int nop, int level) const](#comm-group-mpi-protected-void-comm-group-mpi-internal-collective-const-int-ptr-x-int-ptr-resu-int-nx-const-collective-op-ptr-op-int-nop-int-level-const)

internal_collective#

Definition
void Comm_Group_MPI::internal_collective(const trustIdType *x, trustIdType *resu, int nx, const Collective_Op *op, int nop, int level) const
Brief description
Detailed description
References
How to reference this method:

Copy the following pieces of RST/Markdown code to cite this element in other parts of the sphinx documentation (there is a copy button on the top-right when hovering the code block):

:ref:`void Comm_Group_MPI::internal_collective(const trustIdType *x, trustIdType *resu, int nx, const Collective_Op *op, int nop, int level) const <comm-group-mpi-protected-void-comm-group-mpi-internal-collective-const-trustidtype-ptr-x-trustidtype-ptr-resu-int-nx-const-collective-op-ptr-op-int-nop-int-level-const>`
[void Comm_Group_MPI::internal_collective(const trustIdType *x, trustIdType *resu, int nx, const Collective_Op *op, int nop, int level) const](#comm-group-mpi-protected-void-comm-group-mpi-internal-collective-const-trustidtype-ptr-x-trustidtype-ptr-resu-int-nx-const-collective-op-ptr-op-int-nop-int-level-const)

printOn#

Definition
Sortie & Comm_Group_MPI::printOn(Sortie &x) const override
Brief description

Ecriture de l’objet sur un flot de sortie Methode a surcharger.

Detailed description

Reimplements:

References
How to reference this method:

Copy the following pieces of RST/Markdown code to cite this element in other parts of the sphinx documentation (there is a copy button on the top-right when hovering the code block):

:ref:`Sortie & Comm_Group_MPI::printOn(Sortie &x) const override <comm-group-mpi-protected-sortie-ref-comm-group-mpi-printon-sortie-ref-x-const-override>`
[Sortie & Comm_Group_MPI::printOn(Sortie &x) const override](#comm-group-mpi-protected-sortie-ref-comm-group-mpi-printon-sortie-ref-x-const-override)

readOn#

Definition
Entree & Comm_Group_MPI::readOn(Entree &) override
Brief description

Lecture d’un Objet_U sur un flot d’entree Methode a surcharger.

Detailed description

Reimplements:

References
How to reference this method:

Copy the following pieces of RST/Markdown code to cite this element in other parts of the sphinx documentation (there is a copy button on the top-right when hovering the code block):

:ref:`Entree & Comm_Group_MPI::readOn(Entree &) override <comm-group-mpi-protected-entree-ref-comm-group-mpi-readon-entree-ref-override>`
[Entree & Comm_Group_MPI::readOn(Entree &) override](#comm-group-mpi-protected-entree-ref-comm-group-mpi-readon-entree-ref-override)

mp_collective_op_template#

Definition
void Comm_Group_MPI::mp_collective_op_template(const _TYPE_ *x, _TYPE_ *resu, int n, Comm_Group::Collective_Op op, const Stat_Counter_Id &cnt_sum_id, const Stat_Counter_Id &cnt_min_id, const Stat_Counter_Id &cnt_max_id) const
Brief description
Detailed description
How to reference this method:

Copy the following pieces of RST/Markdown code to cite this element in other parts of the sphinx documentation (there is a copy button on the top-right when hovering the code block):

:ref:`void Comm_Group_MPI::mp_collective_op_template(const _TYPE_ *x, _TYPE_ *resu, int n, Comm_Group::Collective_Op op, const Stat_Counter_Id &cnt_sum_id, const Stat_Counter_Id &cnt_min_id, const Stat_Counter_Id &cnt_max_id) const <comm-group-mpi-private-void-comm-group-mpi-mp-collective-op-template-const-type-ptr-x-type-ptr-resu-int-n-comm-group-collective-op-op-const-stat-counter-id-ref-cnt-sum-id-const-stat-counter-id-ref-cnt-min-id-const-stat-counter-id-ref-cnt-max-id-const>`
[void Comm_Group_MPI::mp_collective_op_template(const _TYPE_ *x, _TYPE_ *resu, int n, Comm_Group::Collective_Op op, const Stat_Counter_Id &cnt_sum_id, const Stat_Counter_Id &cnt_min_id, const Stat_Counter_Id &cnt_max_id) const](#comm-group-mpi-private-void-comm-group-mpi-mp-collective-op-template-const-type-ptr-x-type-ptr-resu-int-n-comm-group-collective-op-op-const-stat-counter-id-ref-cnt-sum-id-const-stat-counter-id-ref-cnt-min-id-const-stat-counter-id-ref-cnt-max-id-const)

mppartial_sum_impl#

Definition
trustIdType Comm_Group_MPI::mppartial_sum_impl(trustIdType x) const
Brief description

Renvoie la somme des x sur les processeurs precedents du groupe (moi non compris).

Detailed description

Le resultat sur le premier processeur du groupe est donc toujours 0. Le resultat depend de l’ordre dans lequel les processeurs ont ete fournis dans le constructeur.

How to reference this method:

Copy the following pieces of RST/Markdown code to cite this element in other parts of the sphinx documentation (there is a copy button on the top-right when hovering the code block):

:ref:`trustIdType Comm_Group_MPI::mppartial_sum_impl(trustIdType x) const <comm-group-mpi-private-trustidtype-comm-group-mpi-mppartial-sum-impl-trustidtype-x-const>`
[trustIdType Comm_Group_MPI::mppartial_sum_impl(trustIdType x) const](#comm-group-mpi-private-trustidtype-comm-group-mpi-mppartial-sum-impl-trustidtype-x-const)

Attributes Documentation#

info_obj (public)
const Type_info Comm_Group_MPI::info_obj
current_msg_size_ (private)
int Comm_Group_MPI::current_msg_size_
mpi_maxrequests_ (private)
int Comm_Group_MPI::mpi_maxrequests_ = - 1
mpi_nrequests_ (private)
int Comm_Group_MPI::mpi_nrequests_ = - 1
mpi_requests_ (private)
MPI_Request * Comm_Group_MPI::mpi_requests_ = 0
mpi_status_ (private)
MPI_Status * Comm_Group_MPI::mpi_status_ = 0
must_mpi_initialize_ (private)
bool Comm_Group_MPI::must_mpi_initialize_ = true
trio_u_world_ (private)
MPI_Comm Comm_Group_MPI::trio_u_world_ = MPI_COMM_WORLD
groupe_pere_ (private)
TRUST_Ref<Comm_Group *> Comm_Group_MPI::groupe_pere_
mpi_comm_ (private)
MPI_Comm Comm_Group_MPI::mpi_comm_
mpi_group_ (private)
MPI_Group Comm_Group_MPI::mpi_group_
must_finalize_ (private)
int Comm_Group_MPI::must_finalize_