On May 9, 2011, at 6:57 AM, hi wrote:

> Test program works fine; but you can notice the difference between the
> callstack images of test program and of my actual application.
> 
> In test program it calls mca_coll_self_allreduce_intra while in my

It doesn't for me...?  

The "self" in there refers to the fact that this is a collective on 
MPI_COMM_SELF (or a dup of it).  If you run with np -1, MPI_COMM_WORLD is 
effectively a dup of MPI_COMM_SEFL.

Hence, it's essentially a no-op.

> application it calls mca_coll_basic_allreduce_intra.

The "basic" in there means that this is not a no-op and it needs to do 
something.

I ran your test program with -np 2 and -np 4 and it seemed to work ok.

> So I want to know which parameter or setting makes call to
> mca_coll_basic_allreduce_intra compared to
> mca_coll_self_allreduce.intra; if you can comment on this would be
> helpful.
> 
> Just for more information:
> op->o_func.intrinsic.fns[27]  points to 0 when using
> MPI_Allreduce(...,...,...,MPI_DOUBLE_PRECISION, MPI_SUM,...,...)

You didn't answer my prior questions.  :-)

Also note that the op pointers are not set by communicator -- they're fixed for 
all uses of that op.

-- 
Jeff Squyres
jsquy...@cisco.com
For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/


Reply via email to