Thanks for the answers.

Would you have a better suggestion on how to do what I want?

As I explained, I am trying to fill two arrays where each array element is 
a function of the loop index. I realize that at the end of each loop, 
because the memory is not shared, each array will only have one element 
filled, and the rest will be zeroes. Adding all of these mostly zeroes 
arrays together to get the full one does not seem very efficient (or 
elegant).

Even if I had only one array to fill, the same efficiency issue exists.

I suppose a better way would be for each loop to return only the element, 
but I would also need to return each elements' array coordinate so that I 
could build the matrix properly at the end...

On Monday, May 25, 2015 at 2:57:38 PM UTC-4, Mohammed El-Beltagy wrote:
>
> Indeed. Also on second thought, I think that reduction on complex types is 
> not a very good idea. I suspect that with memory allocation at each step 
> and data copied across processes, it will make for a pretty slow parallel 
> code. 
>
> On Mon, May 25, 2015 at 8:15 PM, Toivo Henningsson <[email protected] 
> <javascript:>> wrote:
>
>> Though you shouldn't really redefine + for types that you haven't created 
>> yourself. But you could make your own container type where you define it, 
>> or maybe it's enough to put the two return values in an array. 
>
>
>

Reply via email to