[petsc-dev] --download and spack
Balay, Satish
balay at mcs.anl.gov
Sun Oct 21 12:46:01 CDT 2018
I don't think spack is really a replacemet for --download-package yet.
For one - it has some initial setup hump users have to go over. [how
does one specify compilers, and my prebuilt MPI?]
And then - we would need to update petsc support in spack to be as
externsive wrt externalpackages as we currently have.
And if you want to build any branch of petsc from spack - it requires
additional configs to spack code [an entry for each petsc branch].
One feature that petsc configure has - that spack does not yet have
(as far as I know) is 'self.dlib' - which I just used in p4est.py: [Ah
- I see a bug in my code - there should also be a corresponding usage
of 'self.dinclude'].
And then there is the compiler library detection issue. [ideally spack
should detect this and pass it down to all packages]. Curently some
packages have hacks for this.
var/spack/repos/builtin/packages/zoltan/package.py: config_args.append('--with-libs=-lgfortran')
var/spack/repos/builtin/packages/mfem/package.py: libs += LibraryList(find_system_libraries('libdl'))
etc..
Wrt the issue below:
> ==> zlib at 1.2.8 : externally installed in /usr
> ==> zlib at 1.2.8 : generating module file
> ==> zlib at 1.2.8 : registering into DB
its likely due to incorrect zlib entry in ~/.spack/packages.py
Satish
On Sun, 21 Oct 2018, Smith, Barry F. wrote:
>
> Needs some more work
>
>
> ./bin/spack install petsc+hypre
> ==> mpich at 3.2 : externally installed in /usr/local
> ==> mpich at 3.2 : generating module file
> ==> mpich at 3.2 : registering into DB
> ==> zlib at 1.2.8 : externally installed in /usr
> ==> zlib at 1.2.8 : generating module file
> ==> zlib at 1.2.8 : registering into DB
> ==> Installing hdf5
> ==> Fetching https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.10/hdf5-1.10.3/src/hdf5-1.10.3.tar.gz
> ######################################################################## 100.0%
> ==> Staging archive: /Users/barrysmith/Src/spack/var/spack/stage/hdf5-1.10.3-qe62ngz3szijov3frsc6sclbfylst3qk/hdf5-1.10.3.tar.gz
> ==> Created stage in /Users/barrysmith/Src/spack/var/spack/stage/hdf5-1.10.3-qe62ngz3szijov3frsc6sclbfylst3qk
> ==> No patches needed for hdf5
> ==> Building hdf5 [AutotoolsPackage]
> ==> Executing phase: 'autoreconf'
> ==> Executing phase: 'configure'
> ==> Executing phase: 'build'
> ==> Executing phase: 'install'
> ==> Successfully installed hdf5
> Fetch: 4.37s. Build: 2m 5.47s. Total: 2m 9.84s.
> [+] /Users/barrysmith/Src/spack/opt/spack/darwin-mojave-x86_64/clang-10.0.0-apple/hdf5-1.10.3-qe62ngz3szijov3frsc6sclbfylst3qk
> ==> Installing veclibfort
> ==> Fetching https://github.com/mcg1969/vecLibFort/archive/0.4.2.tar.gz
> ######################################################################## 100.0%
> ==> Staging archive: /Users/barrysmith/Src/spack/var/spack/stage/veclibfort-0.4.2-jgzyxocuu54r2lqckfugttbk3gpvhthk/0.4.2.tar.gz
> ==> Created stage in /Users/barrysmith/Src/spack/var/spack/stage/veclibfort-0.4.2-jgzyxocuu54r2lqckfugttbk3gpvhthk
> ==> No patches needed for veclibfort
> ==> Building veclibfort [Package]
> ==> Executing phase: 'install'
> ==> Successfully installed veclibfort
> Fetch: 1.02s. Build: 1.73s. Total: 2.75s.
> [+] /Users/barrysmith/Src/spack/opt/spack/darwin-mojave-x86_64/clang-10.0.0-apple/veclibfort-0.4.2-jgzyxocuu54r2lqckfugttbk3gpvhthk
> ==> Installing hypre
> ==> Fetching https://github.com/LLNL/hypre/archive/v2.15.0.tar.gz
> ######################################################################## 100.0%
> ==> Staging archive: /Users/barrysmith/Src/spack/var/spack/stage/hypre-2.15.0-zzqagb6smd7uzznitrlvx3eor4oay3dg/v2.15.0.tar.gz
> ==> Created stage in /Users/barrysmith/Src/spack/var/spack/stage/hypre-2.15.0-zzqagb6smd7uzznitrlvx3eor4oay3dg
> ==> No patches needed for hypre
> ==> Building hypre [Package]
> ==> Executing phase: 'install'
> ==> Successfully installed hypre
> Fetch: 1.68s. Build: 45.02s. Total: 46.70s.
> [+] /Users/barrysmith/Src/spack/opt/spack/darwin-mojave-x86_64/clang-10.0.0-apple/hypre-2.15.0-zzqagb6smd7uzznitrlvx3eor4oay3dg
> ==> cmake at 3.7.1 : externally installed in /usr/local/bin
> ==> cmake at 3.7.1 : generating module file
> ==> cmake at 3.7.1 : registering into DB
> ==> Installing metis
> ==> Fetching http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/metis-5.1.0.tar.gz
> ######################################################################## 100.0%
> ==> Staging archive: /Users/barrysmith/Src/spack/var/spack/stage/metis-5.1.0-x7k25qyuivjq4t4jb32gxagfa3qc4b3y/metis-5.1.0.tar.gz
> ==> Created stage in /Users/barrysmith/Src/spack/var/spack/stage/metis-5.1.0-x7k25qyuivjq4t4jb32gxagfa3qc4b3y
> ==> Applied patch install_gklib_defs_rename.patch
> ==> Ran patch() for metis
> ==> Building metis [Package]
> ==> Executing phase: 'install'
> ==> Successfully installed metis
> Fetch: 3.86s. Build: 8.33s. Total: 12.19s.
> [+] /Users/barrysmith/Src/spack/opt/spack/darwin-mojave-x86_64/clang-10.0.0-apple/metis-5.1.0-x7k25qyuivjq4t4jb32gxagfa3qc4b3y
> ==> Installing parmetis
> ==> Fetching http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis/parmetis-4.0.3.tar.gz
> ######################################################################## 100.0%
> ==> Staging archive: /Users/barrysmith/Src/spack/var/spack/stage/parmetis-4.0.3-st6cbngrj2r5jgtenru4f6jbtrbvhp3h/parmetis-4.0.3.tar.gz
> ==> Created stage in /Users/barrysmith/Src/spack/var/spack/stage/parmetis-4.0.3-st6cbngrj2r5jgtenru4f6jbtrbvhp3h
> ==> Applied patch enable_external_metis.patch
> ==> Applied patch pkg-parmetis-1c1a9fd0f408dc4d42c57f5c3ee6ace411eb222b.patch
> ==> Applied patch pkg-parmetis-82409d68aa1d6cbc70740d0f35024aae17f7d5cb.patch
> ==> Building parmetis [CMakePackage]
> ==> Executing phase: 'cmake'
> ==> Executing phase: 'build'
> ==> Executing phase: 'install'
> ==> Successfully installed parmetis
> Fetch: 3.71s. Build: 8.08s. Total: 11.79s.
> [+] /Users/barrysmith/Src/spack/opt/spack/darwin-mojave-x86_64/clang-10.0.0-apple/parmetis-4.0.3-st6cbngrj2r5jgtenru4f6jbtrbvhp3h
> ==> python at 2.7.1 : externally installed in /usr
> ==> python at 2.7.1 : generating module file
> ==> python at 2.7.1 : registering into DB
> ==> Installing superlu-dist
> ==> Fetching https://github.com/xiaoyeli/superlu_dist/archive/v5.4.0.tar.gz
> ######################################################################## 100.0%
> ==> Staging archive: /Users/barrysmith/Src/spack/var/spack/stage/superlu-dist-5.4.0-zfeg63fl3jxidb2irxucgz7nvmintbzn/v5.4.0.tar.gz
> ==> Created stage in /Users/barrysmith/Src/spack/var/spack/stage/superlu-dist-5.4.0-zfeg63fl3jxidb2irxucgz7nvmintbzn
> ==> No patches needed for superlu-dist
> ==> Building superlu-dist [CMakePackage]
> ==> Executing phase: 'cmake'
> ==> Executing phase: 'build'
> ==> Executing phase: 'install'
> ==> Successfully installed superlu-dist
> Fetch: 2.03s. Build: 22.54s. Total: 24.57s.
> [+] /Users/barrysmith/Src/spack/opt/spack/darwin-mojave-x86_64/clang-10.0.0-apple/superlu-dist-5.4.0-zfeg63fl3jxidb2irxucgz7nvmintbzn
> ==> Installing petsc
> ==> Fetching http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc-3.10.2.tar.gz
> ######################################################################## 100.0%
> ==> Staging archive: /Users/barrysmith/Src/spack/var/spack/stage/petsc-3.10.2-7fmmtqrr42secdvbosssdjc5lxnohh6b/petsc-3.10.2.tar.gz
> ==> Created stage in /Users/barrysmith/Src/spack/var/spack/stage/petsc-3.10.2-7fmmtqrr42secdvbosssdjc5lxnohh6b
> ==> No patches needed for petsc
> ==> Building petsc [Package]
> ==> Executing phase: 'install'
> ==> Error: ProcessError: Command exited with status 2:
> 'make' 'MAKE_NP=8'
>
> 1 error found in build log:
> 52
> 53 ==> 'make' 'MAKE_NP=8'
> 54 makefile:15: lib/petsc/conf/petscvariables: No such file or directory
> 55 makefile:16: /lib/petsc/conf/variables: No such file or directory
> 56 makefile:17: /lib/petsc/conf/rules: No such file or directory
> 57 makefile:18: /lib/petsc/conf/test.common: No such file or directory
> >> 58 make: *** No rule to make target `/lib/petsc/conf/test.common'. Stop.
>
> See build log for details:
> /Users/barrysmith/Src/spack/var/spack/stage/petsc-3.10.2-7fmmtqrr42secdvbosssdjc5lxnohh6b/petsc-3.10.2/spack-build.out
>
> Then in the build log
>
> File "/private/var/folders/c1/ldz_dt8n2r3dtwv_chp5pfr40000gn/T/barrysmith/spack-stage/spack-stage-hFL0xI/petsc-3.10.2/config/BuildSystem/nargs.py", line 360, in setValue
> raise ValueError('Invalid directory: '+str(dir)+' for key '+str(self.key))
> ===============================================================================
> Configuring PETSc to compile on your system
> ===============================================================================
> *******************************************************************************
> ERROR in COMMAND LINE ARGUMENT to ./configure
> -------------------------------------------------------------------------------
> Invalid directory: /usr/include for key with-zlib-include
> *******************************************************************************
>
>
> Apple OS doesn't come with a /usr/include
>
>
> > On Oct 20, 2018, at 10:47 PM, Jed Brown <jed at jedbrown.org> wrote:
> >
> > We're currently maintaining a (somewhat clumsy and limited, albeit
> > functional) package manager in the form of the --download functionality.
> > What do people think of outsourcing this to Spack, which would handle
> > dependency resolution and report includes/libraries to PETSc? That
> > would enable reuse of installed packages between different PETSC_ARCH
> > and be more reliable regarding upgrade/downgrade when switching
> > branches.
>
More information about the petsc-dev
mailing list