SimGrid  3.14.159
Versatile Simulation of Distributed Systems
smpi_openmpi_selector.c File Reference
#include "colls_private.h"

Functions

int smpi_coll_tuned_allreduce_ompi (void *sbuf, void *rbuf, int count, MPI_Datatype dtype, MPI_Op op, MPI_Comm comm)
 
int smpi_coll_tuned_alltoall_ompi (void *sbuf, int scount, MPI_Datatype sdtype, void *rbuf, int rcount, MPI_Datatype rdtype, MPI_Comm comm)
 
int smpi_coll_tuned_alltoallv_ompi (void *sbuf, int *scounts, int *sdisps, MPI_Datatype sdtype, void *rbuf, int *rcounts, int *rdisps, MPI_Datatype rdtype, MPI_Comm comm)
 
int smpi_coll_tuned_barrier_ompi (MPI_Comm comm)
 
int smpi_coll_tuned_bcast_ompi (void *buff, int count, MPI_Datatype datatype, int root, MPI_Comm comm)
 
int smpi_coll_tuned_reduce_ompi (void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, int root, MPI_Comm comm)
 
int smpi_coll_tuned_reduce_scatter_ompi (void *sbuf, void *rbuf, int *rcounts, MPI_Datatype dtype, MPI_Op op, MPI_Comm comm)
 
int smpi_coll_tuned_allgather_ompi (void *sbuf, int scount, MPI_Datatype sdtype, void *rbuf, int rcount, MPI_Datatype rdtype, MPI_Comm comm)
 
int smpi_coll_tuned_allgatherv_ompi (void *sbuf, int scount, MPI_Datatype sdtype, void *rbuf, int *rcounts, int *rdispls, MPI_Datatype rdtype, MPI_Comm comm)
 
int smpi_coll_tuned_gather_ompi (void *sbuf, int scount, MPI_Datatype sdtype, void *rbuf, int rcount, MPI_Datatype rdtype, int root, MPI_Comm comm)
 
int smpi_coll_tuned_scatter_ompi (void *sbuf, int scount, MPI_Datatype sdtype, void *rbuf, int rcount, MPI_Datatype rdtype, int root, MPI_Comm comm)
 

Function Documentation

◆ smpi_coll_tuned_allreduce_ompi()

int smpi_coll_tuned_allreduce_ompi ( void sbuf,
void rbuf,
int  count,
MPI_Datatype  dtype,
MPI_Op  op,
MPI_Comm  comm 
)

Decision function based on MX results from the Grig cluster at UTK.

Currently, linear, recursive doubling, and nonoverlapping algorithms can handle both commutative and non-commutative operations. Ring algorithm does not support non-commutative operations.

◆ smpi_coll_tuned_alltoall_ompi()

int smpi_coll_tuned_alltoall_ompi ( void sbuf,
int  scount,
MPI_Datatype  sdtype,
void rbuf,
int  rcount,
MPI_Datatype  rdtype,
MPI_Comm  comm 
)

◆ smpi_coll_tuned_alltoallv_ompi()

int smpi_coll_tuned_alltoallv_ompi ( void sbuf,
int *  scounts,
int *  sdisps,
MPI_Datatype  sdtype,
void rbuf,
int *  rcounts,
int *  rdisps,
MPI_Datatype  rdtype,
MPI_Comm  comm 
)

◆ smpi_coll_tuned_barrier_ompi()

int smpi_coll_tuned_barrier_ompi ( MPI_Comm  comm)

◆ smpi_coll_tuned_bcast_ompi()

int smpi_coll_tuned_bcast_ompi ( void buff,
int  count,
MPI_Datatype  datatype,
int  root,
MPI_Comm  comm 
)

◆ smpi_coll_tuned_reduce_ompi()

int smpi_coll_tuned_reduce_ompi ( void sendbuf,
void recvbuf,
int  count,
MPI_Datatype  datatype,
MPI_Op  op,
int  root,
MPI_Comm  comm 
)

If the operation is non commutative we currently have choice of linear or in-order binary tree algorithm.

◆ smpi_coll_tuned_reduce_scatter_ompi()

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

◆ smpi_coll_tuned_allgather_ompi()

int smpi_coll_tuned_allgather_ompi ( void sbuf,
int  scount,
MPI_Datatype  sdtype,
void rbuf,
int  rcount,
MPI_Datatype  rdtype,
MPI_Comm  comm 
)

◆ smpi_coll_tuned_allgatherv_ompi()

int smpi_coll_tuned_allgatherv_ompi ( void sbuf,
int  scount,
MPI_Datatype  sdtype,
void rbuf,
int *  rcounts,
int *  rdispls,
MPI_Datatype  rdtype,
MPI_Comm  comm 
)

◆ smpi_coll_tuned_gather_ompi()

int smpi_coll_tuned_gather_ompi ( void sbuf,
int  scount,
MPI_Datatype  sdtype,
void rbuf,
int  rcount,
MPI_Datatype  rdtype,
int  root,
MPI_Comm  comm 
)

◆ smpi_coll_tuned_scatter_ompi()

int smpi_coll_tuned_scatter_ompi ( void sbuf,
int  scount,
MPI_Datatype  sdtype,
void rbuf,
int  rcount,
MPI_Datatype  rdtype,
int  root,
MPI_Comm  comm 
)