Re: GCC 9 OpenMP issues

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 2019-02-13 at 13:42 -0700, Christoph Junghans wrote:
> On Tue, Feb 12, 2019 at 5:39 PM Orion Poplawski <orion@xxxxxxxx>
> wrote:
> > 
> > On 2/12/19 1:02 AM, Jakub Jelinek wrote:
> > > On Mon, Feb 11, 2019 at 07:17:25PM -0700, Orion Poplawski wrote:
> > > > Looks like GCC 9 is finally enforcing an OpenMP change:
> > > > 
> > > >  From https://gcc.gnu.org/ml/gcc-patches/2018-11/msg00628.html
> > > 
> > > Please see 
> > > https://gcc.gnu.org/gcc-9/porting_to.html#ompdatasharing
> > > which documents what you can do and what works with both
> > > compilers and what
> > > doesn't.
> > 
> > Thanks for the reference.
> > 
> > > > GCC 8 complains about just adding fp_stderr to shared():
> > > > 
> > > > nco_omp.c: In function 'nco_openmp_ini':
> > > > nco_omp.c:205:43: error: 'fp_stderr' is predetermined 'shared'
> > > > for 'shared'
> > > >   # pragma omp parallel default(none)
> > > > shared(fp_stderr,thr_nbr_act)
> > > 
> > > Yes, either you want firstprivate(fp_stderr), or drop
> > > default(none) if you
> > > want to make it work with both compilers.
> > 
> > Okay.  In this case we'll probably drop default(none).  Many people
> > have
> > gotten into the habit of using default(none) though in order to
> > force
> > declaring the form of all variables.
> > 
> > > > And apparently complains if you drop default(none) as well
> > > > (from another
> > > > project with the same problem):
> > > > 
> > > > [  9%] Building CXX object
> > > > CMakeFiles/_CuraEngine.dir/src/layerPart.cpp.o
> > > > /home/ruben/Projects/CuraEngine/src/layerPart.cpp: In function
> > > > ‘void
> > > > cura::createLayerParts(cura::SliceMeshStorage&,
> > > > cura::Slicer*)’:
> > > > /home/ruben/Projects/CuraEngine/src/layerPart.cpp:52:78: error:
> > > > ‘total_layers’ is predetermined ‘shared’ for ‘shared’
> > > >   #pragma omp parallel for shared(mesh, slicer, total_layers)
> > > > schedule(dynamic)
> > > 
> > > That is with GCC 8 or earlier, right?  Just leave total_layers
> > > out
> > > of the shared clause.
> > 
> > Right, because the default is to be shared.  Thanks.
> 
> For the lammps package I chatted with upstream:
> https://github.com/lammps/lammps/issues/1326
> and they already had a hack_openmp script in their source for the PGI
> compiler, which basically boils down to something like:
> find . -type f \( -name "*.cpp" -or -name "*.h" \) -exec sed -e
> '/#pragma omp/s/default(none)/default(shared)/' -e '/#pragma
> omp/s/shared([^)]\+)//' -i {} +
> and that did the trick for now, while upstream is fixing it for good:
> https://github.com/lammps/lammps/pull/1330

Thanks for sharing your solution, but seems to me more simpler the
Orion solution than what I saw in lammps [1] .
The Orion solution is just drop "default(none)" [2] , hope that is
useful information for you ... 

Best regards, 

[1] 
https://src.fedoraproject.org/rpms/lammps/blob/master/f/lammps.spec#_129

[2]
https://github.com/sergiomb2/ufraw/commit/ac8c74699cba65d65f918b3f4cba2de64e039ada

> Cheers,
> 
> Christoph
> > 
> > --
> > Orion Poplawski
> > Manager of NWRA Technical Systems          720-772-5637
> > NWRA, Boulder/CoRA Office             FAX: 303-415-9702
> > 3380 Mitchell Lane                       orion@xxxxxxxx
> > Boulder, CO 80301                 https://www.nwra.com/
> > _______________________________________________
> > devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
> > To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
> > Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
> > List Guidelines: 
> > https://fedoraproject.org/wiki/Mailing_list_guidelines
> > List Archives: 
> > https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx
> 
> 
> 
> -- 
> Christoph Junghans
> Web: http://www.compphys.de
> _______________________________________________
> devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
> To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
> Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
> List Guidelines: 
> https://fedoraproject.org/wiki/Mailing_list_guidelines
> List Archives: 
> https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx
-- 
Sérgio M. B.
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux