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
>>>
>>

Reply via email to