The communication is probably happening in other parts of the code. How large a problem are you trying? Can you post the full code in a gist or a git repository? I will try it out. This is a good example to have in our manual as well, and I just haven't got around to it.
-viral On Sunday, June 22, 2014 4:53:02 PM UTC+5:30, Pietro Benedusi wrote: > > Yes, I'm using the function distribute(). This is the hotspot of my code > (C = A*B) > > C_local = pmap(fetch, {@spawnat p localpart(dA)*localpart(dB) > for p in procs(dA)}) > > > Is it the right way to procede? In this way the multiplication is very > slow ( I'm using 4 workers). > > Many thanks for helping. > > > > Il giorno domenica 22 giugno 2014 07:14:52 UTC+2, Viral Shah ha scritto: >> >> Are you using DArrays? You should be able to move data with indexing. For >> the Cannon algorithm, you should be able to organize your communication so >> that each processor moves the data it needs - IIRC. >> >> -viral >> >> On Saturday, June 21, 2014 11:08:06 PM UTC+5:30, Pietro Benedusi wrote: >>> >>> Hello, >>> >>> I need to write a distributed Cannon algorithm for matrix >>> multiplication. >>> In every iteration I have to shift all the blocks of the involved >>> matrices or equivalently to move blocks between remote procs. How can I >>> move blocks from a remote proc to an other? >>> >>> Thnaks >>> >>