On Thursday, September 09, 2010 12:29:19 pm Josh Milthorpe wrote:
> Hi Christoph,
> 
> this type:
> 
> x10::array::DistArray<x10aux::ref<x10::array::Array<double>  >  >
> 
> looks like the type of v_dst and v_src and not of A.  This suggests 
> that for some reason the evaluations of v_dst(pt) and v_src(pt) are not 
> reused between iterations of the for loop.  Can you pull them out of the 
> loop i.e.
> 
> val p:Place = v_src.dist()(pt);
> val dst = v_dst(pt);
> val src = v_src(pt);
> for ( (i,j) in (A|p) ) {
>      dst(i) += A(i,j)*src(j);
> }
> 
> and report whether this makes a difference?
> 
> Cheers,
> 
> Josh

Josh,

thanks for pointing that out. It makes a big difference.
$ mpiexec -np 1 ./matmul 500 10 1
****************************************************
* X10 test program for matrix vector multiplication
****************************************************

matrix size = 500
loop count  = 10
places      = 1
axis for parallelization = 1

The time is 1.162122911000552 s

This narrows the gap to 2.10 orders of magnitude.

The previous hot spot has disappeared.
Flat profile:

Each sample counts as 0.01 seconds.
  %   cumulative   self              self     total           
 time   seconds   seconds    calls  ms/call  ms/call  name    
 47.37      0.09     0.09                             
matmul__closure__15::apply()
 26.32      0.14     0.05      342     0.15     0.15  
x10aux::alloc_internal(unsigned int, bool)
 15.79      0.17     0.03  5513626     0.00     0.00  
x10::lang::Iterator<x10aux::ref<x10::array::Point> 
>::itable<x10::lang::Reference>* 
x10aux::findITable<x10::lang::Iterator<x10aux::ref<x10::array::Point> > 
>(x10aux::itable_entry*)
  5.26      0.18     0.01   250000     0.00     0.00  
matmul__closure__1::_getITables()
  5.26      0.19     0.01        1    10.00    23.01  
x10_array_DistArray__closure__0<double>::apply()


-- 

Mit freundlichen Grüßen / Kind regards

Dr. Christoph Pospiech
High Performance & Parallel Computing
Phone:  +49-351 86269826
Mobile: +49-171-765 5871
E-Mail: christoph.pospi...@de.ibm.com
-------------------------------------
IBM Deutschland GmbH
Vorsitzender des Aufsichtsrats: Erich Clementi 
Geschäftsführung: Martin Jetter (Vorsitzender), 
Reinhard Reschke, Christoph Grandpierre, 
Klaus Lintelmann, Michael Diemer, Martina Koederitz 
Sitz der Gesellschaft: Ehningen / Registergericht: Amtsgericht Stuttgart, HRB 
14562 WEEE-Reg.-Nr. DE 99369940


------------------------------------------------------------------------------
This SF.net Dev2Dev email is sponsored by:

Show off your parallel programming skills.
Enter the Intel(R) Threading Challenge 2010.
http://p.sf.net/sfu/intel-thread-sfd
_______________________________________________
X10-users mailing list
X10-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/x10-users

Reply via email to