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