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. -- Jeff Squyres jsquy...@cisco.com