[petsc-dev] PETSc-3.4 PR open at https://github.com/Homebrew/homebrew-science/pull/343

Satish Balay balay at mcs.anl.gov
Sat Oct 12 11:43:19 CDT 2013


On Sat, 12 Oct 2013, Dominique Orban wrote:

> 
> On 2013-10-12, at 11:38 AM, Aron Ahmadia <aron at ahmadia.net> wrote:
> 
> >> I think we decided that with prefix installs, people use a different
> >> prefix to distinguish different PETSC_ARCH.  Do you want to revisit that
> >> choice?

I thought we wanted to use the autoconf/automake model here - so
prefix is the unique key for multiple installs. So it can be whatever
user chooses.

> > I'm okay with using a different prefix to determine a different
> > PETSC_ARCH.  This is one of the core ideas facilitated by HashDist.  I
> > just wanted to raise it up as another option.
> 
> So this is perhaps something I'm misunderstanding from the PETSc install instructions. If I set the prefix to, say, /usr/local/petsc, everything will be installed under /usr/local/petsc, not under /usr/local/petsc/$PETSC_ARCH.

For prefix install PETSC_ARCH is just a intermediate thing for the
build tools [to support multiple simultaneous/incremental builds in
the same build tree]

I.e you could do:
configure --prefix=/usr/local/petsc-b1 PETSC_ARCH=foo && make && make install
configure --prefix=/usr/local/petsc-b2 PETSC_ARCH=bar && make && make install

[or you could use PETSC_ARCH=foo for the second build - overwriting the intermediate build files from the first build]

And the user would use this build [via petsc makefiles using either:

PETSC_DIR=/usr/local/petsc-b1 or PETSC_DIR=/usr/local/petsc-b2

My suggestion here would be to use the notation:

--prefix=/usr/local/petsc-VER-ARCH

> TAO, which builds upon PETSc, installs in $TAO_DIR/$PETSC_ARCH by default. But it looks for PETSc stuff under $PETSC_DIR/$PETSC_ARCH. So when I install TAO, I have to trick it by temporarily unsetting PETSC_ARCH.
> 
> SLEPc doesn't go look for stuff in $PETSC_DIR/$PETSC_ARCH.
> 
> Unless I'm missing something, I think there's room for some standardization here.

sure - all packages could follow the same model.

> I could just set the PETSc prefix to /usr/local/petsc/$PETSC_ARCH but technically, PETSC_ARCH isn't known at configure time. It would make sense to me if PETSc installed everything that's machine-dependent under $PETSC_DIR/$PETSC_ARCH and everything that's common to all architectures (the .h files perhaps?) under $PETSC_DIR. But this needs to be synchronized with other major projects that use PETSc.

This is the model for non-prefix [inplace install].

With prefix install - we don't want to share files between multiple installs - and there is no concept of PETSC_ARCH
[same as any other autoconf/automake  package  that supports prefix install]

Satish



More information about the petsc-dev mailing list