SimGrid  3.13
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)
 

Function Documentation

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.

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.

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...

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)

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

s_mpi_coll_description_t mpi_coll_gather_description[]
Initial value:
= {
{"default", "gather default collective", (void*)smpi_mpi_gather},
COLL_GATHERS(COLL_DESCRIPTION, COLL_COMMA), {NULL, NULL, NULL}
}
XBT_PRIVATE 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:1045
s_mpi_coll_description_t mpi_coll_allgather_description[]
Initial value:
= {
{"default",
"allgather default collective",
COLL_ALLGATHERS(COLL_DESCRIPTION, COLL_COMMA),
{NULL, NULL, NULL}
}
XBT_PRIVATE 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:1146
s_mpi_coll_description_t mpi_coll_allgatherv_description[]
Initial value:
= {
{"default",
"allgatherv default collective",
COLL_ALLGATHERVS(COLL_DESCRIPTION, COLL_COMMA),
{NULL, NULL, NULL}
}
XBT_PRIVATE 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:1181
s_mpi_coll_description_t mpi_coll_allreduce_description[]
Initial value:
= {
{"default",
"allreduce default collective",
COLL_ALLREDUCES(COLL_DESCRIPTION, COLL_COMMA),
{NULL, NULL, NULL}
}
XBT_PRIVATE void smpi_mpi_allreduce(void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm)
Definition: smpi_base.cpp:1374
s_mpi_coll_description_t mpi_coll_reduce_scatter_description[]
Initial value:
= {
{"default",
"reduce_scatter default collective",
COLL_REDUCE_SCATTERS(COLL_DESCRIPTION, COLL_COMMA),
{NULL, NULL, NULL}
}
XBT_PRIVATE void smpi_mpi_reduce_scatter(void *sendbuf, void *recvbuf, int *recvcounts, MPI_Datatype datatype, MPI_Op op, MPI_Comm comm)
Definition: smpi_base.cpp:1083
s_mpi_coll_description_t mpi_coll_scatter_description[]
Initial value:
= {
{"default",
"scatter default collective",
COLL_SCATTERS(COLL_DESCRIPTION, COLL_COMMA),
{NULL, NULL, NULL}
}
XBT_PRIVATE 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:1217
s_mpi_coll_description_t mpi_coll_barrier_description[]
Initial value:
= {
{"default",
"barrier default collective",
COLL_BARRIERS(COLL_DESCRIPTION, COLL_COMMA),
{NULL, NULL, NULL}
}
XBT_PRIVATE void smpi_mpi_barrier(MPI_Comm comm)
Definition: smpi_base.cpp:1040
s_mpi_coll_description_t mpi_coll_alltoall_description[]
Initial value:
= {
{"default",
"Ompi alltoall default collective",
COLL_ALLTOALLS(COLL_DESCRIPTION, COLL_COMMA),
{"bruck",
"Alltoall Bruck (SG) collective",
{"basic_linear",
"Alltoall basic linear (SG) collective",
{NULL, NULL, NULL}
}
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:272
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:205
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:172
s_mpi_coll_description_t mpi_coll_alltoallv_description[]
Initial value:
= {
{"default",
"Ompi alltoallv default collective",
COLL_ALLTOALLVS(COLL_DESCRIPTION, COLL_COMMA),
{NULL, NULL, NULL}
}
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:328
s_mpi_coll_description_t mpi_coll_bcast_description[]
Initial value:
= {
{"default",
"bcast default collective ",
(void*)smpi_mpi_bcast},
COLL_BCASTS(COLL_DESCRIPTION, COLL_COMMA),
{NULL, NULL, NULL}
}
XBT_PRIVATE void smpi_mpi_bcast(void *buf, int count, MPI_Datatype datatype, int root, MPI_Comm comm)
Definition: smpi_base.cpp:1035
s_mpi_coll_description_t mpi_coll_reduce_description[]
Initial value:
= {
{"default",
"reduce default collective",
(void*)smpi_mpi_reduce},
COLL_REDUCES(COLL_DESCRIPTION, COLL_COMMA),
{NULL, NULL, NULL}
}
XBT_PRIVATE 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:1299
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)