[petsc-dev] --download and spack

Smith, Barry F. bsmith at mcs.anl.gov
Sun Oct 21 13:19:12 CDT 2018



> On Oct 21, 2018, at 12:57 PM, Balay, Satish <balay at mcs.anl.gov> wrote:
> 
> Spack model is not to trust any system stuff - they are likely
> incomaptible [esp when there are multiple compiler configs].

   I'd trust system blas over OpenBLAS.

> 
> So one would have to explicitly list them in ~/.spack/package.py - if one wants it.

   It's the editing the damn file that is annoying. They should have some simple spack command to run that sets up the file for you.

> 
> But I haven't figured out how to specify vecLib on Mac to spack..

    This is how I did it (still seems to work)

    all:
        providers:
            # prefer OpenMPI over MPICH by default
            mpi: [mpich, openmpi]
            # Use Apple BLAS/LAPACK accelerator library instead of installing one
            blas: [veclibfort]
            lapack: [veclibfort]


> [one of the packages in xsdk need cblas interfaces - so I end up using
> openblas for most of my installs]
> 
> Satish
> 
> On Sun, 21 Oct 2018, Smith, Barry F. wrote:
> 
>> 
>>   Still prefers OpenBLAS over system BLAS.
>> 
>> 
>> 
>>> On Oct 21, 2018, at 12:31 PM, Barry Smith <bsmith at anl.gov> wrote:
>>> 
>>> 
>>>  How does one set the compiler for Spack to use. I read all of https://spack.readthedocs.io/en/latest/getting_started.html and it showed how to find compilers and add them to the spack compiler list but nothing about how to tell spack to use a particular compiler?
>>> 
>>> 
>>> 
>>>> On Oct 21, 2018, at 11:51 AM, Smith, Barry F. <bsmith at mcs.anl.gov> 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