Software Archive
Read-only legacy content
17060 Discussions

Reduction operation can reduce on multiple ranks?

Philippe_T_Intel
Employee
443 Views

Theoretically, 

sum = __sec_reduce_add(a[:][:]); //sum across the whole array 'a'

sum_of_column[:]=__sec_reduce_add(a[:][:]); //sum across the column of 'a'

Actually, when I tested the second statement, the sum_of_column got always the sum across the whole array of a, no matter the rank of sum_of_column. 

For a given execution context of rank m and a reduction array section argument with rank n, where n>m, it is the last n-m ranks of the array section argument who should be reduced, right? What went wrong? 

Thank you for your help!

0 Kudos
4 Replies
Balaji_I_Intel
Employee
443 Views

Hello Phillippe,

     What compiler (and version) are you using?

 

Thanks,

 

Balaji V. Iyer.

0 Kudos
Philippe_T_Intel
Employee
443 Views

I'm using icc version 13.1.0. 

0 Kudos
BelindaLiviero
Employee
443 Views

To the person who is reporting and responding to this issue on behalf of Philippe, can you please send me a private message containing your personal email address.  There seems to be a profile conflict problem.

0 Kudos
Chang-Sun_L_Intel
443 Views

Thanks for trying out our language feature. The reduction operations are simply defined---they always reduce everything down to a single scalar value. To do a column sum, an outer loop is needed: [cpp] for (int i = 0; i < rows; i++) { sum = __sec_reduce_add(a[:]); } [/cpp]

0 Kudos
Reply