[OMPI devel] MPI_Bcast algorithm

2017-01-19 Thread Emin Nuriyev
Hi,

I want to create broadcast function which allow me to select algorithm in
application layer.
For example :

MPI_Bcast_alg(void *buffer, int count, MPI_Datatype datatype, int root,
MPI_Comm comm, int alg)

Same arguments as MPI_Bcast() and plus  algorithm's id.

*coll_tune_bcast_decision.c* file contain function which allows us to
select function.

int ompi_coll_tuned_bcast_intra_do_this(void *buf, int count,
struct ompi_datatype_t *dtype,
int root,
struct ompi_communicator_t *comm,
mca_coll_base_module_t *module,
int algorithm, int faninout, int
segsize)

I've got some information about MCA. But yest, it is not clear for me how
to implement it ? How can I do it ?
___
devel mailing list
devel@lists.open-mpi.org
https://rfd.newmexicoconsortium.org/mailman/listinfo/devel

Re: [OMPI devel] MPI_Bcast algorithm

2017-01-19 Thread George Bosilca
Enim,

Before going into all these efforts to implement a new function, let me
describe what is there already and that you can use to achieve something
similar. It will not be exactly what you describe, because changing a
particular collective algorithm dynamically on a communicator might is not
as safe as it sounds. However, you can reconfigure the collective selection
before creating a new communicator.

For this you will have to set coll_tuned_use_dynamic_rules to 1. Assuming
that you want to play with broadcast, you need to force the MCA
parameter coll_tuned_bcast_algorithm to a new value (by calling the MCA
corresponding MCA function). In same time you can also define the
parameters that regulate the broadcast algorithms such as the segment size
(coll_tuned_bcast_algorithm_segmentsize). The next communication creation
call will inherit these new values.

  George.

PS: feel free to ping me privately if you want more info.

On Thu, Jan 19, 2017 at 1:27 PM, Emin Nuriyev 
wrote:

> Hi,
>
> I want to create broadcast function which allow me to select algorithm in
> application layer.
> For example :
>
> MPI_Bcast_alg(void *buffer, int count, MPI_Datatype datatype, int root,
> MPI_Comm comm, int alg)
>
> Same arguments as MPI_Bcast() and plus  algorithm's id.
>
> *coll_tune_bcast_decision.c* file contain function which allows us to
> select function.
>
> int ompi_coll_tuned_bcast_intra_do_this(void *buf, int count,
> struct ompi_datatype_t *dtype,
> int root,
> struct ompi_communicator_t *comm,
> mca_coll_base_module_t *module,
> int algorithm, int faninout, int
> segsize)
>
> I've got some information about MCA. But yest, it is not clear for me how
> to implement it ? How can I do it ?
>
> ___
> devel mailing list
> devel@lists.open-mpi.org
> https://rfd.newmexicoconsortium.org/mailman/listinfo/devel
>
___
devel mailing list
devel@lists.open-mpi.org
https://rfd.newmexicoconsortium.org/mailman/listinfo/devel