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