Re: [firedrake] The wonderful world of firedrake-install
Hi All, I have a branch going through testing now which will handle PETSC_CONFIGURE_OPTIONS in a smarter way. Basically we'll just make sure that the things which are required are there, and we'll also honour anything the user has already set. I've also updated docs to say that that's what happens. I am also open to the suggestion that we could add more configuration options to the default set. Would anyone like to suggest what they should be? Cheers, David On Fri, 28 Aug 2015 at 10:25 Mitchell, Lawrence < lawrence.mitchell@imperial.ac.uk> wrote:
On 27 Aug 2015, at 23:57, Justin Chang <jychang48@gmail.com> wrote:
David,
A few comments:
1) If I run that script (w/ --developer) and have the latest installed petsc-dev and established $PETSC_DIR, the installation of petsc4py will produce an error similar to the one reported in this thread: http://lists.mcs.anl.gov/pipermail/petsc-users/2015-July/026404.html to which I had to either: a) use the patch Satish provided or b) clone from https://bitbucket.org/petsc/petsc4py and not mapdes/petsc4py. If I unset $PETSC_DIR then the installation works fine. Not a major problem or anything but it seems to me that the installation script is using a somewhat outdated petsc4py so I was wondering if this was intentional or not.
The installation uses a matching set of PETSc/petsc4py, that are "up-to-date" and known good. But unfortunately it appears that if PETSC_DIR is set to a more recent PETSc, then the downloaded petsc4py might not match. The script provides a warning in this case, but it was maybe missed in all the other output. Perhaps if PETSC_DIR is set the script should exit with an error (overridable if you definitely want to use the external PETSc).
2) Some of my problems require some PETSc external packages like hypre, but I see that the default configure options only include chaco, ctegen, and triangle. I had to manually add the --download-hypre to the firedrake-install to get what I wanted, but do you think y'all can also include other important packages like mumps, superlu_dist, hdf5, metis, parmetis, etc?
You can add options to the petsc configure call by setting the environment variable PETSC_CONFIGURE_OPTIONS to appropriate values. Make sure you include the necessary packages (chaco, ctetgen and triangle). Perhaps instead one should be able specify additional PETSc configure options with something like:
firedrake-install ... --petsc-options="..."
Cheers,
Lawrence
On 28 Aug 2015, at 14:01, David Ham <David.Ham@imperial.ac.uk> wrote:
Hi All,
I have a branch going through testing now which will handle PETSC_CONFIGURE_OPTIONS in a smarter way. Basically we'll just make sure that the things which are required are there, and we'll also honour anything the user has already set. I've also updated docs to say that that's what happens.
I am also open to the suggestion that we could add more configuration options to the default set. Would anyone like to suggest what they should be?
I think --download-hypre=1 at least. Maybe also a sparse direct solver (mumps?) which I think needs --download-metis --download-parmetis --download-mumps (maybe some others?) Lawrence
I agree that hype and a sparse direct solver like mumps is necessary. The latter needs --download-metis --download-parmetis --download-scalapack. More comments: 4) If mumps is to be included, the install script has to ensure that one has cmake >=2.5 when configuring metis, otherwise PETSc configure will return an error. Perhaps include "brew install cmake" and "sudo apt-get install cmake" in the script? 5) Should --download-exodusii (and it's dependencies --download-netcdf --download-hdf5) also be included in the PETSC_CONFIGURE_OPTIONS? I imagine that if one wants to solve problems on large-scale unstructured grids, .exo files would be more feasible to use over .msh files. Or is exodusii already accounted for in firedrake/PyOP2/etc? 6) If I run the script on a pristine MacOSX, I get an error saying "OSError: Unable to find SWIG installation. Please install SWIG version 2.0.0 or higher." I am guessing "brew install swig" was somehow missed in the firedrake-install script? 7) Perhaps not as important, but do y'all think it's possible to make this script more non-Ubuntu HPC system friendly? For isntance, either a) require the user to install his or her own local OpenMPI and Python libraries from source, b) let script download the tarballs/git repositories remotely and install it for you (kind of like how PETSc handles external packages through --download-<package>), or c) enable the user to point to the system provided OpenMPI and Python libraries. Same would need to be done for CMake, SWIG, and PCRE as these packages cannot simply be obtained from pip. Thanks, Justin On Fri, Aug 28, 2015 at 7:20 AM, Lawrence Mitchell <lawrence.mitchell@imperial.ac.uk> wrote:
On 28 Aug 2015, at 14:01, David Ham <David.Ham@imperial.ac.uk> wrote:
Hi All,
I have a branch going through testing now which will handle PETSC_CONFIGURE_OPTIONS in a smarter way. Basically we'll just make sure that the things which are required are there, and we'll also honour anything the user has already set. I've also updated docs to say that that's what happens.
I am also open to the suggestion that we could add more configuration options to the default set. Would anyone like to suggest what they should be?
I think --download-hypre=1 at least. Maybe also a sparse direct solver (mumps?) which I think needs --download-metis --download-parmetis --download-mumps (maybe some others?)
Lawrence
_______________________________________________ firedrake mailing list firedrake@imperial.ac.uk https://mailman.ic.ac.uk/mailman/listinfo/firedrake
participants (3)
- 
                
                David Ham
- 
                
                Justin Chang
- 
                
                Lawrence Mitchell