On Jan 14, 2010, at 3:08 PM, Roland Schulz wrote:
> is it possible to set MCA parameters from within the MPI program itself? The FAQ only mentions how to set them through files or environment variables.
Not really (other than setenv()). Most MCA parameters are read during MPI_INIT and not examined again afterwards.
> I would like to set coll_tuned_use_dynamic_rules and coll_tuned_alltoall_algorithm.
I'm not sure offhand if the coll tuned module re-examines these values after MPI_INIT? It *might* look at them as each communicator is created, but I don't know.
George? (if George doesn't answer here, go knock on his door -- I assume you're close by ;-) )
> I assume there is a function to do this in include/opal/mca but I'm not sure which one. And I couldn't find any documentation explaining it.
> I'm aware that this will only work with OpenMPI and is probably not part of the public api thus the interface might change between version.
Yep -- we do have some internal functions to do this, but they are not public functions.
> My plan is to benchmark all alltoall algorithms at start up and then use this algorithm for all later AllToAll calls. I have benchmarked that manually choosing the algorithm can make a large difference. Also all my alltoall communication is of the same data size thus tuning is easy.
It might actually be easier to write up a shell/perl/whatever script to iterate over all the values that you want to run -- setenv the values you want and then mpirun (or set the appropriate mpirun command line params, etc.). I have done this kind of thing in the past and it's worked out easier than I thought it would.