Dear Richard,

Thanks a lot for the fast response. Here I send you a self contained example. I 
took it from openACC tutorial in [1]. I modified the code and added a dummy 
vector of size 1, lines 140-160 in the attached file (jsolvef_mikel.F90). The 
dummy vector (residual_v)  is the array form of the variable residual.

If the reduction clause (line 142) is commented both residual and residual_v 
give the same result. If in the reduction clause residual_v is given a 
compilation error appears, that the reduction clause does not support this 
variable datatype. In [2] I added the OpenACC 3.1 documentation. In section 
1.12 the changes from v2.6 to v2.7 are described. More precisely, in line 
612-613 the next is quoted:

"Arrays, subarrays and composite variables are now allowed in reduction 
clauses; see Sections 2.9.11 reduction clause and 2.5.14 reduction clause.”
I hope I could explain myself properly!
Thanks a lot :) 

Mikel Mendizabal


[1] 
https://github.com/OpenACCUserGroup/openacc-users-group/blob/master/Contributed_Sample_Codes/Tutorial1/solver/jsolvef.F90
 
<https://github.com/OpenACCUserGroup/openacc-users-group/blob/master/Contributed_Sample_Codes/Tutorial1/solver/jsolvef.F90>
 
[2] 
https://www.openacc.org/sites/default/files/inline-images/Specification/OpenACC-3.1-final.pdf
 
<https://www.openacc.org/sites/default/files/inline-images/Specification/OpenACC-3.1-final.pdf>
 



> On 11. Jan 2022, at 14:26, Richard Biener <richard.guent...@gmail.com> wrote:
> 
> On Tue, Jan 11, 2022 at 1:52 PM Mikel Mendizabal via Gcc
> <gcc@gcc.gnu.org <mailto:gcc@gcc.gnu.org>> wrote:
>> 
>> Dear GCC developers,
>> 
>> In the past year we started the offload of our software to GPUs. We decided 
>> to go with OpenACC. The program we are trying to offload is Millepede2 
>> (MP2),  a tracker alignment software used to align the CMS experiment 
>> tracker at the large hadron collider.
>> 
>> We are using gcc as our main compiler. However, we found a major 
>> inconvenience with OpenACC 2.6, the REDUCTION clause does not accept arrays. 
>> Thus, it not possible for us to parallelise our largest loops due to array 
>> dependencies. We managed to offload MP2 for small datasets, we worked around 
>> the reduction issue. Nonetheless, if our alignment campaign is large the 
>> workarounds are not useful anymore.
>> 
>> I went thought the new versions of OpenACC and I found that v2.7 accepts 
>> arrays for the REDUCTION clause. I was wondering if it is in your plans to 
>> include a newer version of OpenACC for the next releases.
> 
> Can you produce a self-contained example with an array for the
> REDUCTION clause that should be accepted with OpenACC v2.7?
> 
> Thanks,
> Richard.
> 
>> Sincerely,
>> Mikel Mendizabal

Reply via email to