Reduction operation can reduce on multiple ranks?

Reduction operation can reduce on multiple ranks?

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!

AllegatoDimensione
Download sec-reduce-add.cpp420 byte
5 post / 0 nuovi
Ultimo contenuto
Per informazioni complete sulle ottimizzazioni del compilatore, consultare l'Avviso sull'ottimizzazione

Hello Phillippe,

     What compiler (and version) are you using?

 

Thanks,

 

Balaji V. Iyer.

I'm using icc version 13.1.0. 

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.

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:

 for (int i = 0; i < rows; i++) { sum[i] = __sec_reduce_add(a[i][:]); } 

Lascia un commento

Eseguire l'accesso per aggiungere un commento. Non siete membri? Iscriviti oggi