Khalid, i am not aware of such a mechanism.
/* there might be a way to use MPI_T_* mechanisms to force the algorithm, and i will let other folks comment on that */ you definetly cannot directly invoke ompi_coll_tuned_bcast_intra_binomial (abstraction violation, non portable, and you miss the some parameters) out of curiosity, what do you have in mind for (some_condition) ? /* since it seems implicit (some_condition) is independant of communicator size, and message size */ Cheers, Gilles On Tue, Mar 10, 2015 at 10:04 PM, Khalid Hasanov <xali...@gmail.com> wrote: > 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 > > _______________________________________________ > users mailing list > us...@open-mpi.org > Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users > Link to this post: > http://www.open-mpi.org/community/lists/users/2015/03/26446.php >