PETSc install instructions update
Dear Firedrakers, Some of you have recently had problems with installing PETSc recently. There is now a fix for this, and also new install URLs for PETSc and petsc4py which will hopefully reduce the number of ongoing PETSc install issues that people have. The short version is that the instructions for installing PETSc and petsc4py on our websites have been updated, so if you are installing or upgrading PETSc you should follow the new instructions: http://www.firedrakeproject.org/obtaining_pyop2.html#petsc The ever so slightly longer version is that we now point to our own fork of PETSc rather than the upstream master. We will update our forks as necessary and only after checking that the version we update to appears to work. This should hopefully reduce the number of random breakages users encounter in PETSc. Cheers, David -- Dr David Ham Departments of Mathematics and Computing Imperial College London http://www.imperial.ac.uk/people/david.ham
Hi David and Lawrence, I must be doing something wrong or maybe I'm simply using the wrong branch for my multigrid work. It was all working fine on my laptop, but I need to rebuilt PETSc as I want hypre as well (I hadn't included the --download-hypre flag before, but I really want to compare the performance of my Helmholzt solver to the split-preconditioner with AMG for the pressure system). To update my PETSc I proceeded as follows: 1. Added mapdes => https://bitbucket.org/mapdes/petsc.git to my remotes in /petsc 2. Fetched the mapdes master branch (and doing 'git branch -v' I seem to be on the correct commit: eikemueller@eikes-mbp $ git branch -v * master 862c682 Git branch management tools absolutely suck! next b1faa89 [ahead 1375, behind 1685] Merge branch 'knepley/fix-mat-missing-diagonal' into next 3. Applied Lawrence's DMPlex patch: diff --git a/src/dm/impls/plex/plexrefine.c b/src/dm/impls/plex/plexrefine.c index cafe490..bee9dfe 100644 --- a/src/dm/impls/plex/plexrefine.c +++ b/src/dm/impls/plex/plexrefine.c @@ -6166,6 +6166,12 @@ static PetscErrorCode CellRefinerCreateLabels(CellRefiner ierr = DMLabelGetStratumIS(label, values[val], &pointIS);CHKERRQ(ierr); ierr = ISGetLocalSize(pointIS, &numPoints);CHKERRQ(ierr); ierr = ISGetIndices(pointIS, &points);CHKERRQ(ierr); + /* Ensure refined label is created with same number of strata as + * original (even if no entries here). */ + if (!numPoints) { + ierr = DMLabelSetValue(labelNew, 0, values[val]);CHKERRQ(ierr); + ierr = DMLabelClearValue(labelNew, 0, values[val]);CHKERRQ(ierr); + } for (n = 0; n < numPoints; ++n) { const PetscInt p = points[n]; switch (refiner) { 4. configured and built PETSc as before, all works fine 5. Rebuilt petsc4py (https://em459@bitbucket.org/mapdes/petsc4py.git, branch moar-plex), PyOP2 (branch local-par_loop) and firedrake (branch multigrid-parallel, ran ./scripts/firedrake-clean before rebuilding with 'python setup.py build_ext --inplace'). If I then run my Helmholtz solver I get the following error message: Traceback (most recent call last): File "driver.py", line 339, in <module> main(parameter_filename) File "driver.py", line 127, in main mesh_hierarchy = MeshHierarchy(coarse_mesh,param_grid['nlevel']) File "/Users/eikemueller/PostDocBath/EllipticSolvers/firedrake/firedrake/multigrid.py", line 37, in __init__ fpoint_ises.append(dm.createCoarsePointIS()) AttributeError: 'petsc4py.PETSc.DMPlex' object has no attribute 'createCoarsePointIS' So this looks like a hierarchical grid issue, and maybe I'm using the wrong branch? It works on ARCHER, but there I'm using an older version of PETSc from the original PETSc repository. Thanks a lot, Eike -- Dr Eike Hermann Mueller Research Associate (PostDoc) Department of Mathematical Sciences University of Bath Bath BA2 7AY, United Kingdom +44 1225 38 5803 e.mueller@bath.ac.uk http://people.bath.ac.uk/em459/ On 17 Oct 2014, at 15:26, David Ham <David.Ham@imperial.ac.uk> wrote:
Dear Firedrakers,
Some of you have recently had problems with installing PETSc recently. There is now a fix for this, and also new install URLs for PETSc and petsc4py which will hopefully reduce the number of ongoing PETSc install issues that people have.
The short version is that the instructions for installing PETSc and petsc4py on our websites have been updated, so if you are installing or upgrading PETSc you should follow the new instructions: http://www.firedrakeproject.org/obtaining_pyop2.html#petsc
The ever so slightly longer version is that we now point to our own fork of PETSc rather than the upstream master. We will update our forks as necessary and only after checking that the version we update to appears to work. This should hopefully reduce the number of random breakages users encounter in PETSc.
Cheers,
David
-- Dr David Ham Departments of Mathematics and Computing Imperial College London
http://www.imperial.ac.uk/people/david.ham _______________________________________________ firedrake mailing list firedrake@imperial.ac.uk https://mailman.ic.ac.uk/mailman/listinfo/firedrake
On 18 Oct 2014, at 11:43, Eike Mueller <e.mueller@bath.ac.uk> wrote:
Hi David and Lawrence,
I must be doing something wrong or maybe I'm simply using the wrong branch for my multigrid work. It was all working fine on my laptop, but I need to rebuilt PETSc as I want hypre as well (I hadn't included the --download-hypre flag before, but I really want to compare the performance of my Helmholzt solver to the split-preconditioner with AMG for the pressure system).
To update my PETSc I proceeded as follows:
1. Added mapdes => https://bitbucket.org/mapdes/petsc.git to my remotes in /petsc
2. Fetched the mapdes master branch (and doing 'git branch -v' I seem to be on the correct commit: eikemueller@eikes-mbp $ git branch -v * master 862c682 Git branch management tools absolutely suck! next b1faa89 [ahead 1375, behind 1685] Merge branch 'knepley/fix-mat-missing-diagonal' into next
3. Applied Lawrence's DMPlex patch:
diff --git a/src/dm/impls/plex/plexrefine.c b/src/dm/impls/plex/plexrefine.c index cafe490..bee9dfe 100644 --- a/src/dm/impls/plex/plexrefine.c +++ b/src/dm/impls/plex/plexrefine.c @@ -6166,6 +6166,12 @@ static PetscErrorCode CellRefinerCreateLabels(CellRefiner ierr = DMLabelGetStratumIS(label, values[val], &pointIS);CHKERRQ(ierr); ierr = ISGetLocalSize(pointIS, &numPoints);CHKERRQ(ierr); ierr = ISGetIndices(pointIS, &points);CHKERRQ(ierr); + /* Ensure refined label is created with same number of strata as + * original (even if no entries here). */ + if (!numPoints) { + ierr = DMLabelSetValue(labelNew, 0, values[val]);CHKERRQ(ierr); + ierr = DMLabelClearValue(labelNew, 0, values[val]);CHKERRQ(ierr); + } for (n = 0; n < numPoints; ++n) { const PetscInt p = points[n]; switch (refiner) {
4. configured and built PETSc as before, all works fine
5. Rebuilt petsc4py (https://em459@bitbucket.org/mapdes/petsc4py.git, branch moar-plex), PyOP2 (branch local-par_loop) and firedrake (branch multigrid-parallel, ran ./scripts/firedrake-clean before rebuilding with 'python setup.py build_ext --inplace').
Please use the firedrake branch of petsc4py
If I then run my Helmholtz solver I get the following error message:
Traceback (most recent call last): File "driver.py", line 339, in <module> main(parameter_filename) File "driver.py", line 127, in main mesh_hierarchy = MeshHierarchy(coarse_mesh,param_grid['nlevel']) File "/Users/eikemueller/PostDocBath/EllipticSolvers/firedrake/firedrake/multigrid.py", line 37, in __init__ fpoint_ises.append(dm.createCoarsePointIS()) AttributeError: 'petsc4py.PETSc.DMPlex' object has no attribute 'createCoarsePointIS'
So this looks like a hierarchical grid issue, and maybe I'm using the wrong branch? It works on ARCHER, but there I'm using an older version of PETSc from the original PETSc repository.
Thanks a lot,
Eike
--
Dr Eike Hermann Mueller Research Associate (PostDoc)
Department of Mathematical Sciences University of Bath Bath BA2 7AY, United Kingdom
+44 1225 38 5803 e.mueller@bath.ac.uk http://people.bath.ac.uk/em459/
On 17 Oct 2014, at 15:26, David Ham <David.Ham@imperial.ac.uk> wrote:
Dear Firedrakers,
Some of you have recently had problems with installing PETSc recently. There is now a fix for this, and also new install URLs for PETSc and petsc4py which will hopefully reduce the number of ongoing PETSc install issues that people have.
The short version is that the instructions for installing PETSc and petsc4py on our websites have been updated, so if you are installing or upgrading PETSc you should follow the new instructions: http://www.firedrakeproject.org/obtaining_pyop2.html#petsc
The ever so slightly longer version is that we now point to our own fork of PETSc rather than the upstream master. We will update our forks as necessary and only after checking that the version we update to appears to work. This should hopefully reduce the number of random breakages users encounter in PETSc.
Cheers,
David
-- Dr David Ham Departments of Mathematics and Computing Imperial College London
http://www.imperial.ac.uk/people/david.ham _______________________________________________ firedrake mailing list firedrake@imperial.ac.uk https://mailman.ic.ac.uk/mailman/listinfo/firedrake
_______________________________________________ firedrake mailing list firedrake@imperial.ac.uk https://mailman.ic.ac.uk/mailman/listinfo/firedrake
Hi Lawrence, this fixes it and it runs fine again on my laptop. As far as I can see the petsc4py installation instructions on http://www.firedrakeproject.org/obtaining_pyop2.html#petsc still point to https://bitbucket.org/petsc/petsc4py.git, is this intended, or does the firedrake trunk indeed work with this setup? Thanks a lot, Eike -- Dr Eike Hermann Mueller Research Associate (PostDoc) Department of Mathematical Sciences University of Bath Bath BA2 7AY, United Kingdom +44 1225 38 5803 e.mueller@bath.ac.uk http://people.bath.ac.uk/em459/ On 17 Oct 2014, at 15:26, David Ham <David.Ham@imperial.ac.uk> wrote:
Dear Firedrakers,
Some of you have recently had problems with installing PETSc recently. There is now a fix for this, and also new install URLs for PETSc and petsc4py which will hopefully reduce the number of ongoing PETSc install issues that people have.
The short version is that the instructions for installing PETSc and petsc4py on our websites have been updated, so if you are installing or upgrading PETSc you should follow the new instructions: http://www.firedrakeproject.org/obtaining_pyop2.html#petsc
The ever so slightly longer version is that we now point to our own fork of PETSc rather than the upstream master. We will update our forks as necessary and only after checking that the version we update to appears to work. This should hopefully reduce the number of random breakages users encounter in PETSc.
Cheers,
David
-- Dr David Ham Departments of Mathematics and Computing Imperial College London
http://www.imperial.ac.uk/people/david.ham _______________________________________________ firedrake mailing list firedrake@imperial.ac.uk https://mailman.ic.ac.uk/mailman/listinfo/firedrake
participants (3)
- 
                
                David Ham
- 
                
                Eike Mueller
- 
                
                Lawrence Mitchell