Hello,

I would like to know if Open MPI provides some kind of mechanism to select
collective algorithms such as MPI broadcast during run time depending on
some logic. For example, I would like to
use something like this:

if (some_condition)  ompi_binomial_broadcast(...);
else   ompi_pipeline_broadcast(...);

I know it is possible to use some fixed algorithm by
coll_tuned_use_dynamic_rules
or to define a custom selection rule using coll_tuned_dynamic_rules_filename.
But
I think it is not suitable in this situation as the dynamic rules mainly
based on the message size, segment size and communicator size.

Another option could be using Open MPI internal APIS like

ompi_coll_tuned_bcast_intra_binomial( buf, count, dtype, root, comm,
module, segsize);

But it highly depends on Open MPI internals as it uses
mca_coll_base_module_t .

Is there any better option? (except using my own implementation of
collectives)

Any suggestion highly appreciated.

Thanks

Regards,
Khalid

Reply via email to