16#ifndef Comm_Group_Noparallel_included
17#define Comm_Group_Noparallel_included
19#include <Comm_Group.h>
27 void abort()
const override;
36 void mp_collective_op(
const trustIdType *x, trustIdType *resu,
int n,
Collective_Op op)
const override { mp_collective_op_template<trustIdType>(x,resu,n,op); }
37 void mp_collective_op(
const trustIdType *x, trustIdType *resu,
const Collective_Op *op,
int n)
const override { mp_collective_op_template<trustIdType>(x,resu,op,n); }
40 void barrier(
int tag)
const override;
44 void 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,
48 void send(
int pe,
const void *buffer,
int size,
int tag)
const override;
49 void recv(
int pe,
void *buffer,
int size,
int tag)
const override;
50 void broadcast(
void *buffer,
int size,
int pe_source)
const override;
51 void all_to_all(
const void *src_buffer,
void *dest_buffer,
int data_size)
const override;
52 void all_gather(
const void *src_buffer,
void *dest_buffer,
int data_size)
const override;
53 void gather(
const void *src_buffer,
void *dest_buffer,
int data_size,
int root)
const override;
54 void all_gatherv(
const void *src_buffer,
void *dest_buffer,
int send_size,
const int* recv_size,
const int* displs)
const override;
57 void init_group(
const ArrOfInt& pe_list)
override;
64 template <
typename _TYPE_>
65 void mp_collective_op_template(
const _TYPE_ *x, _TYPE_ *resu,
int n,
Collective_Op op)
const
68 for (
int i = 0; i < n; i++) resu[i] = x[i];
70 for (
int i = 0; i < n; i++) resu[i] = 0;
79 template <
typename _TYPE_>
80 void mp_collective_op_template(
const _TYPE_ *x, _TYPE_ *resu,
const Collective_Op *op,
int n)
const
82 for (
int i = 0; i < n; i++)
void mp_collective_op(const int *x, int *resu, int n, Collective_Op op) const override
Comm_Group_Noparallel(const ArrOfInt &pe_list)
void mp_collective_op(const double *x, double *resu, int n, Collective_Op op) const override
void recv(int pe, void *buffer, int size, int tag) const override
void send_recv_finish() const override
void all_gather(const void *src_buffer, void *dest_buffer, int data_size) const override
void abort() const override
void mp_collective_op(const int *x, int *resu, const Collective_Op *op, int n) const override
void all_to_all(const void *src_buffer, void *dest_buffer, int data_size) const override
void mp_collective_op(const float *x, float *resu, const Collective_Op *op, int n) const override
void mp_collective_op(const float *x, float *resu, int n, Collective_Op op) const override
void init_group(const ArrOfInt &pe_list) override
constructeur pour un sous-groupe //
int reverse_send_recv_list(const ArrOfInt &src_list, ArrOfInt &dest_list) const
Comm_Group_Noparallel()
constructeur pour le groupe Tous
void 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
void broadcast(void *buffer, int size, int pe_source) const override
void gather(const void *src_buffer, void *dest_buffer, int data_size, int root) const override
void all_gatherv(const void *src_buffer, void *dest_buffer, int send_size, const int *recv_size, const int *displs) const override
void mp_collective_op(const double *x, double *resu, const Collective_Op *op, int n) const override
~Comm_Group_Noparallel() override
void send(int pe, const void *buffer, int size, int tag) const override
static void barrier()
Synchronise tous les processeurs du groupe courant (attend que tous les processeurs soient arrives a ...