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


Reply via email to