modifying scatter decision function to use binomial algorithm for
small message sizes. This commit was SVN r15798.
Этот коммит содержится в:
родитель
18315c4980
Коммит
daa10b277e
@ -708,8 +708,25 @@ int ompi_coll_tuned_scatter_intra_dec_fixed(void *sbuf, int scount,
|
|||||||
struct ompi_datatype_t *rdtype,
|
struct ompi_datatype_t *rdtype,
|
||||||
int root, struct ompi_communicator_t *comm)
|
int root, struct ompi_communicator_t *comm)
|
||||||
{
|
{
|
||||||
|
const size_t small_block_size = 300;
|
||||||
|
const size_t small_comm_size = 10;
|
||||||
|
int communicator_size;
|
||||||
|
size_t rdsize, block_size;
|
||||||
|
|
||||||
OPAL_OUTPUT((ompi_coll_tuned_stream,
|
OPAL_OUTPUT((ompi_coll_tuned_stream,
|
||||||
"ompi_coll_tuned_scatter_intra_dec_fixed"));
|
"ompi_coll_tuned_scatter_intra_dec_fixed"));
|
||||||
|
|
||||||
|
communicator_size = ompi_comm_size(comm);
|
||||||
|
/* Determine block size */
|
||||||
|
ompi_ddt_type_size(rdtype, &rdsize);
|
||||||
|
block_size = rdsize * rcount;
|
||||||
|
|
||||||
|
if ((communicator_size > small_comm_size) &&
|
||||||
|
(block_size < small_block_size)) {
|
||||||
|
return ompi_coll_tuned_scatter_intra_binomial (sbuf, scount, sdtype,
|
||||||
|
rbuf, rcount, rdtype,
|
||||||
|
root, comm);
|
||||||
|
}
|
||||||
return ompi_coll_tuned_scatter_intra_basic_linear (sbuf, scount, sdtype,
|
return ompi_coll_tuned_scatter_intra_basic_linear (sbuf, scount, sdtype,
|
||||||
rbuf, rcount, rdtype,
|
rbuf, rcount, rdtype,
|
||||||
root, comm);
|
root, comm);
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user