SimGrid  3.14.159
Versatile Simulation of Distributed Systems
smpi_coll.cpp File Reference
#include <stdio.h>
#include <string.h>
#include <assert.h>
#include "private.h"
#include "colls/colls.h"
#include "simgrid/sg_config.h"

Functions

 XBT_LOG_NEW_DEFAULT_SUBCATEGORY (smpi_coll, smpi, "Logging specific to SMPI (coll)")
 
void coll_help (const char *category, s_mpi_coll_description_t *table)
 Displays the long description of all registered models, and quit. More...
 
int find_coll_description (s_mpi_coll_description_t *table, char *name, const char *desc)
 
int smpi_coll_tuned_alltoall_ompi2 (void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm)
 
int smpi_coll_tuned_alltoall_bruck (void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm)
 Alltoall Bruck. More...
 
int smpi_coll_tuned_alltoall_basic_linear (void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm)
 Alltoall basic_linear (STARMPI:alltoall-simple) More...
 
int smpi_coll_basic_alltoallv (void *sendbuf, int *sendcounts, int *senddisps, MPI_Datatype sendtype, void *recvbuf, int *recvcounts, int *recvdisps, MPI_Datatype recvtype, MPI_Comm comm)
 

Variables

s_mpi_coll_description_t mpi_coll_gather_description []
 
s_mpi_coll_description_t mpi_coll_allgather_description []
 
s_mpi_coll_description_t mpi_coll_allgatherv_description []
 
s_mpi_coll_description_t mpi_coll_allreduce_description []
 
s_mpi_coll_description_t mpi_coll_reduce_scatter_description []
 
s_mpi_coll_description_t mpi_coll_scatter_description []
 
s_mpi_coll_description_t mpi_coll_barrier_description []
 
s_mpi_coll_description_t mpi_coll_alltoall_description []
 
s_mpi_coll_description_t mpi_coll_alltoallv_description []
 
s_mpi_coll_description_t mpi_coll_bcast_description []
 
s_mpi_coll_description_t mpi_coll_reduce_description []
 
int(* mpi_coll_gather_fun )(void *, int, MPI_Datatype, void *, int, MPI_Datatype, int root, MPI_Comm)
 
int(* mpi_coll_allgather_fun )(void *, int, MPI_Datatype, void *, int, MPI_Datatype, MPI_Comm)
 
int(* mpi_coll_allgatherv_fun )(void *, int, MPI_Datatype, void *, int *, int *, MPI_Datatype, MPI_Comm)
 
int(* mpi_coll_allreduce_fun )(void *sbuf, void *rbuf, int rcount, MPI_Datatype dtype, MPI_Op op, MPI_Comm comm)
 
int(* mpi_coll_alltoall_fun )(void *, int, MPI_Datatype, void *, int, MPI_Datatype, MPI_Comm)
 
int(* mpi_coll_alltoallv_fun )(void *, int *, int *, MPI_Datatype, void *, int *, int *, MPI_Datatype, MPI_Comm)
 
int(* mpi_coll_bcast_fun )(void *buf, int count, MPI_Datatype datatype, int root, MPI_Comm com)
 
int(* mpi_coll_reduce_fun )(void *buf, void *rbuf, int count, MPI_Datatype datatype, MPI_Op op, int root, MPI_Comm comm)
 
int(* mpi_coll_reduce_scatter_fun )(void *sbuf, void *rbuf, int *rcounts, MPI_Datatype dtype, MPI_Op op, MPI_Comm comm)
 
int(* mpi_coll_scatter_fun )(void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm)
 
int(* mpi_coll_barrier_fun )(MPI_Comm comm)
 
void(* smpi_coll_cleanup_callback )()
 

Function Documentation

§ XBT_LOG_NEW_DEFAULT_SUBCATEGORY()

XBT_LOG_NEW_DEFAULT_SUBCATEGORY ( smpi_coll  ,
smpi  ,
"Logging specific to SMPI (coll)"   
)

§ coll_help()

void coll_help ( const char *  category,
s_mpi_coll_description_t *  table 
)

Displays the long description of all registered models, and quit.

§ find_coll_description()

int find_coll_description ( s_mpi_coll_description_t *  table,
char *  name,
const char *  desc 
)

§ smpi_coll_tuned_alltoall_ompi2()

int smpi_coll_tuned_alltoall_ompi2 ( void sendbuf,
int  sendcount,
MPI_Datatype  sendtype,
void recvbuf,
int  recvcount,
MPI_Datatype  recvtype,
MPI_Comm  comm 
)

§ smpi_coll_tuned_alltoall_bruck()

int smpi_coll_tuned_alltoall_bruck ( void sendbuf,
int  sendcount,
MPI_Datatype  sendtype,
void recvbuf,
int  recvcount,
MPI_Datatype  recvtype,
MPI_Comm  comm 
)

Alltoall Bruck.

Openmpi calls this routine when the message size sent to each rank < 2000 bytes and size < 12 FIXME: uh, check smpi_pmpi again, but this routine is called for > 12, not less...

§ smpi_coll_tuned_alltoall_basic_linear()

int smpi_coll_tuned_alltoall_basic_linear ( void sendbuf,
int  sendcount,
MPI_Datatype  sendtype,
void recvbuf,
int  recvcount,
MPI_Datatype  recvtype,
MPI_Comm  comm 
)

Alltoall basic_linear (STARMPI:alltoall-simple)

§ smpi_coll_basic_alltoallv()

int smpi_coll_basic_alltoallv ( void sendbuf,
int *  sendcounts,
int *  senddisps,
MPI_Datatype  sendtype,
void recvbuf,
int *  recvcounts,
int *  recvdisps,
MPI_Datatype  recvtype,
MPI_Comm  comm 
)

Variable Documentation

§ mpi_coll_gather_description

s_mpi_coll_description_t mpi_coll_gather_description[]
Initial value:
= {
{"default", "gather default collective", reinterpret_cast<void*>(&smpi_mpi_gather)},
COLL_GATHERS(COLL_DESCRIPTION, COLL_COMMA), {nullptr, nullptr, nullptr}
}
void smpi_mpi_gather(void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm)
Definition: smpi_base.cpp:995
#define COLL_GATHERS(action, COLL_sep)
Definition: colls.h:40
#define COLL_COMMA
Definition: colls.h:28
#define COLL_DESCRIPTION(cat, ret, args, name)
Definition: colls.h:18

§ mpi_coll_allgather_description

s_mpi_coll_description_t mpi_coll_allgather_description[]
Initial value:
= { {"default", "allgather default collective",
reinterpret_cast<void*>(&smpi_mpi_allgather)}, COLL_ALLGATHERS(COLL_DESCRIPTION, COLL_COMMA), {nullptr, nullptr, nullptr}}
void smpi_mpi_allgather(void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm)
Definition: smpi_base.cpp:1090
#define COLL_ALLGATHERS(action, COLL_sep)
Definition: colls.h:63
#define COLL_COMMA
Definition: colls.h:28
#define COLL_DESCRIPTION(cat, ret, args, name)
Definition: colls.h:18

§ mpi_coll_allgatherv_description

s_mpi_coll_description_t mpi_coll_allgatherv_description[]
Initial value:
= {{"default", "allgatherv default collective",
{nullptr, nullptr, nullptr}
}
#define COLL_ALLGATHERVS(action, COLL_sep)
Definition: colls.h:97
void smpi_mpi_allgatherv(void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int *recvcounts, int *displs, MPI_Datatype recvtype, MPI_Comm comm)
Definition: smpi_base.cpp:1126
#define COLL_COMMA
Definition: colls.h:28
#define COLL_DESCRIPTION(cat, ret, args, name)
Definition: colls.h:18

§ mpi_coll_allreduce_description

s_mpi_coll_description_t mpi_coll_allreduce_description[]
Initial value:
= { {"default", "allreduce default collective",
{nullptr, nullptr, nullptr}
}
void smpi_mpi_allreduce(void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm)
Definition: smpi_base.cpp:1310
#define COLL_ALLREDUCES(action, COLL_sep)
Definition: colls.h:120
#define COLL_COMMA
Definition: colls.h:28
#define COLL_DESCRIPTION(cat, ret, args, name)
Definition: colls.h:18

§ mpi_coll_reduce_scatter_description

s_mpi_coll_description_t mpi_coll_reduce_scatter_description[]
Initial value:
= {{"default", "reduce_scatter default collective",
{nullptr, nullptr, nullptr}
}
#define COLL_COMMA
Definition: colls.h:28
void smpi_mpi_reduce_scatter(void *sendbuf, void *recvbuf, int *recvcounts, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm)
Definition: smpi_base.cpp:1032
#define COLL_REDUCE_SCATTERS(action, COLL_sep)
Definition: colls.h:278
#define COLL_DESCRIPTION(cat, ret, args, name)
Definition: colls.h:18

§ mpi_coll_scatter_description

s_mpi_coll_description_t mpi_coll_scatter_description[]
Initial value:
= { {"default", "scatter default collective",
reinterpret_cast<void*>(&smpi_mpi_scatter)}, COLL_SCATTERS(COLL_DESCRIPTION, COLL_COMMA), {nullptr, nullptr, nullptr}}
#define COLL_SCATTERS(action, COLL_sep)
Definition: colls.h:303
void smpi_mpi_scatter(void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm)
Definition: smpi_base.cpp:1161
#define COLL_COMMA
Definition: colls.h:28
#define COLL_DESCRIPTION(cat, ret, args, name)
Definition: colls.h:18

§ mpi_coll_barrier_description

s_mpi_coll_description_t mpi_coll_barrier_description[]
Initial value:
= { {"default", "barrier default collective",
reinterpret_cast<void*>(&smpi_mpi_barrier)}, COLL_BARRIERS(COLL_DESCRIPTION, COLL_COMMA), {nullptr, nullptr, nullptr}}
#define COLL_COMMA
Definition: colls.h:28
#define COLL_BARRIERS(action, COLL_sep)
Definition: colls.h:322
void smpi_mpi_barrier(MPI_Comm comm)
Definition: smpi_base.cpp:990
#define COLL_DESCRIPTION(cat, ret, args, name)
Definition: colls.h:18

§ mpi_coll_alltoall_description

s_mpi_coll_description_t mpi_coll_alltoall_description[]
Initial value:
= { {"default", "Ompi alltoall default collective",
{"bruck", "Alltoall Bruck (SG) collective",
reinterpret_cast<void*>(&smpi_coll_tuned_alltoall_bruck)},
{"basic_linear", "Alltoall basic linear (SG) collective",
reinterpret_cast<void*>(&smpi_coll_tuned_alltoall_basic_linear)}, {nullptr, nullptr, nullptr}}
int smpi_coll_tuned_alltoall_basic_linear(void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm)
Alltoall basic_linear (STARMPI:alltoall-simple)
Definition: smpi_coll.cpp:205
#define COLL_ALLTOALLS(action, COLL_sep)
Definition: colls.h:154
#define COLL_COMMA
Definition: colls.h:28
int smpi_coll_tuned_alltoall_bruck(void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm)
Alltoall Bruck.
Definition: smpi_coll.cpp:145
#define COLL_DESCRIPTION(cat, ret, args, name)
Definition: colls.h:18
int smpi_coll_tuned_alltoall_ompi2(void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, MPI_Comm comm)
Definition: smpi_coll.cpp:125

§ mpi_coll_alltoallv_description

s_mpi_coll_description_t mpi_coll_alltoallv_description[]
Initial value:
= { {"default", "Ompi alltoallv default collective",
{nullptr, nullptr, nullptr}
}
int smpi_coll_basic_alltoallv(void *sendbuf, int *sendcounts, int *senddisps, MPI_Datatype sendtype, void *recvbuf, int *recvcounts, int *recvdisps, MPI_Datatype recvtype, MPI_Comm comm)
Definition: smpi_coll.cpp:256
#define COLL_ALLTOALLVS(action, COLL_sep)
Definition: colls.h:186
#define COLL_COMMA
Definition: colls.h:28
#define COLL_DESCRIPTION(cat, ret, args, name)
Definition: colls.h:18

§ mpi_coll_bcast_description

s_mpi_coll_description_t mpi_coll_bcast_description[]
Initial value:
= { {"default", "bcast default collective ",
reinterpret_cast<void*>(&smpi_mpi_bcast)}, COLL_BCASTS(COLL_DESCRIPTION, COLL_COMMA), {nullptr, nullptr, nullptr}}
#define COLL_BCASTS(action, COLL_sep)
Definition: colls.h:212
#define COLL_COMMA
Definition: colls.h:28
#define COLL_DESCRIPTION(cat, ret, args, name)
Definition: colls.h:18
void smpi_mpi_bcast(void *buf, int count, MPI_Datatype datatype, int root, MPI_Comm comm)
Definition: smpi_base.cpp:985

§ mpi_coll_reduce_description

s_mpi_coll_description_t mpi_coll_reduce_description[]
Initial value:
= { {"default", "reduce default collective",
reinterpret_cast<void*>(&smpi_mpi_reduce)}, COLL_REDUCES(COLL_DESCRIPTION, COLL_COMMA), {nullptr, nullptr, nullptr} }
#define COLL_REDUCES(action, COLL_sep)
Definition: colls.h:248
#define COLL_COMMA
Definition: colls.h:28
void smpi_mpi_reduce(void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, int root, MPI_Comm comm)
Definition: smpi_base.cpp:1240
#define COLL_DESCRIPTION(cat, ret, args, name)
Definition: colls.h:18

§ mpi_coll_gather_fun

int(* mpi_coll_gather_fun) (void *, int, MPI_Datatype, void *, int, MPI_Datatype, int root, MPI_Comm)

§ mpi_coll_allgather_fun

int(* mpi_coll_allgather_fun) (void *, int, MPI_Datatype, void *, int, MPI_Datatype, MPI_Comm)

§ mpi_coll_allgatherv_fun

int(* mpi_coll_allgatherv_fun) (void *, int, MPI_Datatype, void *, int *, int *, MPI_Datatype, MPI_Comm)

§ mpi_coll_allreduce_fun

int(* mpi_coll_allreduce_fun) (void *sbuf, void *rbuf, int rcount, MPI_Datatype dtype, MPI_Op op, MPI_Comm comm)

§ mpi_coll_alltoall_fun

int(* mpi_coll_alltoall_fun) (void *, int, MPI_Datatype, void *, int, MPI_Datatype, MPI_Comm)

§ mpi_coll_alltoallv_fun

int(* mpi_coll_alltoallv_fun) (void *, int *, int *, MPI_Datatype, void *, int *, int *, MPI_Datatype, MPI_Comm)

§ mpi_coll_bcast_fun

int(* mpi_coll_bcast_fun) (void *buf, int count, MPI_Datatype datatype, int root, MPI_Comm com)

§ mpi_coll_reduce_fun

int(* mpi_coll_reduce_fun) (void *buf, void *rbuf, int count, MPI_Datatype datatype, MPI_Op op, int root, MPI_Comm comm)

§ mpi_coll_reduce_scatter_fun

int(* mpi_coll_reduce_scatter_fun) (void *sbuf, void *rbuf, int *rcounts, MPI_Datatype dtype, MPI_Op op, MPI_Comm comm)

§ mpi_coll_scatter_fun

int(* mpi_coll_scatter_fun) (void *sendbuf, int sendcount, MPI_Datatype sendtype, void *recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm)

§ mpi_coll_barrier_fun

int(* mpi_coll_barrier_fun) (MPI_Comm comm)

§ smpi_coll_cleanup_callback

void(* smpi_coll_cleanup_callback) ()