quantal target needlessly contains petsc build

Asked by Nico Schlömer

Ubuntu Quantal Quetzal contains PETSc 3.2, cf. http://packages.ubuntu.com/source/quantal/petsc. According to Dolfin's main CMakeLists.txt, this version is sufficient for building Dolfin.
Still, by default, Dorsal builds PETSc on quantal (cf. FEniCS/platforms/supported/quantal.platform). This is a pretty huge build since it pulls in all sorts of other dependencies. Why not use Ubuntu's PETSc by default?

Question information

Language:
English Edit question
Status:
Solved
For:
Dorsal Edit question
Assignee:
No assignee Edit question
Solved by:
Nico Schlömer
Solved:
Last query:
Last reply:
Revision history for this message
Garth Wells (garth-wells) said :
#1

On Thu, Dec 6, 2012 at 5:56 PM, Nico Schlömer
<email address hidden> wrote:
> New question #216118 on Dorsal:
> https://answers.launchpad.net/dorsal/+question/216118
>
> Ubuntu Quantal Quetzal contains PETSc 3.2, cf. http://packages.ubuntu.com/source/quantal/petsc. According to Dolfin's main CMakeLists.txt, this version is sufficient for building Dolfin.
> Still, by default, Dorsal builds PETSc on quantal (cf. FEniCS/platforms/supported/quantal.platform). This is a pretty huge build since it pulls in all sorts of other dependencies. Why not use Ubuntu's PETSc by default?
>

I don't use Dorsal, but it's probably to get some good stuff with
PETSc, e.g. ML.

Also, the Ubuntu science/number crunching-related packages a generally
old and rubbish.

Garth

> --
> You received this question notification because you are a member of
> Dorsal, which is an answer contact for Dorsal.

Revision history for this message
Nico Schlömer (nschloe) said :
#2

> I don't use Dorsal, but it's probably to get some good stuff with PETSc, e.g. ML.

ML specifically is part of Trilinos, but anyways PETSc is the default linear algebra backend so it's certainly worthwhile to have it. :)

> Also, the Ubuntu science/number crunching-related packages a generally old and rubbish.

They aren't as bad as some think they may be. They're certainly not compiled with -O3, but -O2 should be in the list. Also, Quantual features PETSc 3.2 which isn't horribly outdated either.
Besides, if looking for speed, one would probably want to look at the whole linear algebra stack. After all, PETSc wraps fanciness around the actual number crunchers BLAS and LAPACK. Those are not rebuild by Dorsal.
It comes down to the question what the purpose of Dorsal is. If it's supposed to build

  (a) a fast system: Build the entire stack (starting with BLAS, LAPACK).
  (b) a running system: Use whatever is provided by the operating system, and build whatever isn't.

The latter seems somewhat more consistent to me.

Revision history for this message
Anders Logg (logg) said :
#3

On Fri, Dec 07, 2012 at 10:41:19AM -0000, Nico Schlömer wrote:
> Question #216118 on Dorsal changed:
> https://answers.launchpad.net/dorsal/+question/216118
>
> Status: Answered => Open
>
> Nico Schlömer is still having a problem:
> > I don't use Dorsal, but it's probably to get some good stuff with
> PETSc, e.g. ML.
>
> ML specifically is part of Trilinos, but anyways PETSc is the default
> linear algebra backend so it's certainly worthwhile to have it. :)
>
> > Also, the Ubuntu science/number crunching-related packages a generally
> old and rubbish.
>
> They aren't as bad as some think they may be. They're certainly not compiled with -O3, but -O2 should be in the list. Also, Quantual features PETSc 3.2 which isn't horribly outdated either.
> Besides, if looking for speed, one would probably want to look at
> the whole linear algebra stack. After all, PETSc wraps fanciness
> around the actual number crunchers BLAS and LAPACK. Those are not
> rebuild by Dorsal.

Yes, they are if you use either the precice-hpc.platform or
quantal-hpc.platform. Those platform files build everything including
the ATLAS optimized BLAS/LAPACK.

> It comes down to the question what the purpose of Dorsal is. If it's supposed to build
>
> (a) a fast system: Build the entire stack (starting with BLAS,
> LAPACK). (b) a running system: Use whatever is provided by the
> operating system, and build whatever isn't.

Both, depending on which platform file you use. The default is to rely
as much as possible on standard packages and only build when necessary.
Sometimes this means building also PETSc if the PETSc package is
missing important features.

--
Anders

Revision history for this message
Nico Schlömer (nschloe) said :
#4

> The default is to rely as much as possible on standard packages

Perfect; this reflects my opinion too.

> Sometimes this means building also PETSc if the PETSc package is missing important features.

So I guess the required PETSc version should be raised to 3.3 in Dolfin's CMakeLists.txt?

Revision history for this message
Nico Schlömer (nschloe) said :
#5

Okay, I found that PETSc 3.3 is indeed a requirement and filed a bug for it at https://bugs.launchpad.net/dolfin/+bug/1088483.

Revision history for this message
Johannes Ring (johannr) said :
#6

Why should we require PETSc version 3.3?