[petsc-users] installing petsc via spack on ac922 (a summit like system)

Satish Balay balay at mcs.anl.gov
Tue Mar 10 08:25:58 CDT 2020


PETSc configure attempts to check for compiler libraries [so that one
can mix and use c,c++,fortran codes with a c linker] by running
compilers in verbose mode - and parsing the output. [i.e checkCLibraries(), checkFortranLibraries() ..]

Here IBM compiler is using different library internally based on 'xlc -V' vs 'xlc -fopenmp -V'. For most other compilers - its just an additional library [with corresponding include file]

So -fopenmp needs to be set before this step [checkCLibraries()] in configure.

PETSc configure treats -with-openmp as an additional package - and process this option after the above checkCLibraries() check.

However CFLAGS etc get processed and set before the call to checkCLibraries().

My suggestion is a workaround to get -fopenmp option set before checkCLibraries() are called.

Satish

On Tue, 10 Mar 2020, Cameron Smith wrote:

> Thank you.  I'll give that a shot.
> 
> Out of curiosity, how does passing the openmp flags relate to the
> '--with-openmp' option described here:
> 
> https://www.mcs.anl.gov/petsc/documentation/installation.html
> 
> under 'Installing packages that utilize OpenMP'?  Is this just passing the
> openmp flags into compile/link commands of the packages that petsc builds
> (via, --download-<package> options) and not to the petsc compile/link?
> 
> -Cameron
> 
> On 3/10/20 9:01 AM, Satish Balay wrote:
> > BTW: You might be able to do the same via spack.
> > 
> > spack install petsc at 3.7.7 ~hdf5 ~hypre ~superlu-dist cflags=-fopenmp
> > fflags=-fopenmp cxxflags=-fopenmp
> > 
> > Satish
> > 
> > On Tue, 10 Mar 2020, Satish Balay via petsc-users wrote:
> > 
> >> Cameron,
> >>
> >> You can try changing following petsc configure options and see if that
> >> works.. [i.e build petsc manually]
> >>
> >> CFLAGS=-fopenmp FFLAGS=-fopenmp CXXFLAGS=-fopenmp
> >>
> >> Satish
> >>
> >> On Tue, 10 Mar 2020, Cameron Smith wrote:
> >>
> >>> Thank you Mark.
> >>>
> >>> The configure.log is attached.
> >>>
> >>> Please let me know if any other info is needed.
> >>>
> >>> -Cameron
> >>>
> >>> On 3/10/20 7:31 AM, Mark Adams wrote:
> >>>> Hi Cameron,
> >>>>
> >>>> This can go on the list and we always want the configure.log file.
> >>>>
> >>>> I build on Summit, but have not used the XL compilers. I've built 3.7.7
> >>>> with
> >>>> GNU and PGI. (XGC usually wants PGI)
> >>>>
> >>>>
> >>>>
> >>>> On Mon, Mar 9, 2020 at 11:27 PM Cameron Smith <smithc11 at rpi.edu
> >>>> <mailto:smithc11 at rpi.edu>> wrote:
> >>>>
> >>>>      Hello,
> >>>>
> >>>>      I'm installing petsc 3.7.7 on a summit like system with the
> >>>>      following
> >>>>      spack spec:
> >>>>
> >>>>      petsc at 3.7.7 ~hdf5 ~hypre ~superlu-dist
> >>>>
> >>>>      with the XL 16.1.1 compiler and Spectrum MPI 10.3 .  This install
> >>>>      produces a `/path/to/petsc/install/lib/petsc/conf/petscvariables`
> >>>>      file
> >>>>      that contains '-lxlomp_ser' in the 'PETSC_EXTERNAL_LIB_BASIC' and
> >>>>      'PETSC_WITH_EXTERNAL_LIB' variables.
> >>>>
> >>>>      The application I'm building, XGC, has a makefile based build system
> >>>>      that includes '/path/to/petsc/install/lib/petsc/conf/variables'
> >>>>      which in
> >>>>      turn includes '/lib/petsc/conf/petscvariables'.
> >>>>
> >>>>       From what I can tell, xlomp_ser is a serial implementation of the
> >>>>      openmp library.  When XGC links this library it satisfies the openmp
> >>>>      symbols XGC wants and at run time results in openmp API calls like
> >>>>      'omp_get_max_threads()' returning 1 regardless of the
> >>>>      OMP_NUM_THREADS
> >>>>      setting.
> >>>>
> >>>>      Do you know how I can build petsc, with or without spack, and avoid
> >>>>      this
> >>>>      library being listed in 'lib/petsc/conf/petscvariables'?
> >>>>
> >>>>      If this should go to a petsc mailing list or git repo issues page I
> >>>>      can
> >>>>      send it there.
> >>>>
> >>>>      Thank-you,
> >>>>      Cameron
> >>>>
> >>>
> >>>
> >>
> 
> 


More information about the petsc-users mailing list