[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