error in handling download external packages

2008-10-22 Thread Barry Smith

After we have compiled the external package libraries we copy them  
over to the install site, ok.
But we also blindly copy over ALL of its include files over to the  
install site so that the PETSc interface
for that package can be built. But then we leave all those includes  
there even though they are not
needed by the user of the installed PETSc.

   Possible correction: put those includes in another directory that  
is used for building PETSc but not used
when compiling user code. Somehow need to pass the appropriate -I only  
when building PETSc
and not for user code.

   Barry

Even when we do not install the package, that is we use one someone  
already installed, we point
to its include files in our makefile system and continue to point to  
them (with -I stuff) when users
build code.




who updated the MUMPS package in petsc-dev

2008-10-22 Thread Barry Smith


It seems to be severely broken

Warning: Label 887 at (1) defined but not used
smumps_load.F:2311.4:

  049 CONTINUE
1
Warning: Label 49 at (1) defined but not used
smumps_load.F:1922.4:

  666  CONTINUE
1
Warning: Label 666 at (1) defined but not used
smumps_ooc.F:201.29:

   OOC_VADDR=>id%OOC_VADDR
 1
Error: 'ooc_vaddr' at (1) is not a member of the 'smumps_struc'  
structure
smumps_ooc.F:219.30:

   ALLOCATE(id%OOC_NB_FILES(OOC_NB_FILE_TYPE), stat=allocok)
  1
Error: Syntax error in ALLOCATE statement at (1)
smumps_ooc.F:537.12:

 id%OOC_TOTAL_NB_NODES(I)=I_CUR_HBUF_NEXTPOS(I)-1
1
Error: Unclassifiable statement at (1)
smumps_ooc.F:569.34:

 DO I=1,id%OOC_NB_FILES(I1)
  1
Error: Syntax error in DO statement at (1)
smumps_ooc.F:583.12:

  ENDDO
1
Error: Expecting END IF statement at (1)
smumps_ooc.F:618.32:


Why won't it build for me? I am using gfortran. Has this been tested?
Could this issue please be resolved.

Barry





who updated the MUMPS package in petsc-dev

2008-10-22 Thread Satish Balay
Works for me.

Satish

--

[petsc:externalpackages/MUMPS_4.8.3/src] petsc> rm smumps_load.o smumps_ooc.o
rm: remove regular file `smumps_load.o'? y
rm: remove regular file `smumps_ooc.o'? y
[petsc:externalpackages/MUMPS_4.8.3/src] petsc> make smumps_load.o smumps_ooc.o
/sandbox/petsc/petsc-dev/linux-mumps/bin/mpif90 -g -fPIC -fPIC  -g  
-I/sandbox/petsc/petsc-dev/linux-mumps/include -Dmetis -Dpord -I. -I../include 
-c smumps_load.F
/sandbox/petsc/petsc-dev/linux-mumps/bin/mpif90 -g -fPIC -fPIC  -g  
-I/sandbox/petsc/petsc-dev/linux-mumps/include -Dmetis -Dpord -I. -I../include 
-c smumps_ooc.F
[petsc:externalpackages/MUMPS_4.8.3/src] petsc> 
/sandbox/petsc/petsc-dev/linux-mumps/bin/mpif90 -show
gfortran -g -fPIC -fPIC -g -I/sandbox/petsc/petsc-dev/linux-mumps/include 
-I/sandbox/petsc/petsc-dev/linux-mumps/include 
-L/sandbox/petsc/petsc-dev/linux-mumps/lib -lmpichf90 -Wl,-rpath 
-Wl,/sandbox/petsc/petsc-dev/linux-mumps/lib -lmpichf90 -lmpich -lpthread -lrt
[petsc:externalpackages/MUMPS_4.8.3/src] petsc> gfortran -v
Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v 
--enable-languages=c,c++,fortran,objc,obj-c++,treelang --prefix=/usr 
--enable-shared --with-system-zlib --libexecdir=/usr/lib 
--without-included-gettext --enable-threads=posix --enable-nls 
--with-gxx-include-dir=/usr/include/c++/4.2 --program-suffix=-4.2 
--enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-mpfr 
--enable-targets=all --enable-checking=release --build=i486-linux-gnu 
--host=i486-linux-gnu --target=i486-linux-gnu
Thread model: posix
gcc version 4.2.3 (Ubuntu 4.2.3-2ubuntu7)
[petsc:externalpackages/MUMPS_4.8.3/src] petsc> 

-

On Wed, 22 Oct 2008, Barry Smith wrote:

> 
> 
> It seems to be severely broken
> 
> Warning: Label 887 at (1) defined but not used
> smumps_load.F:2311.4:
> 
> 049 CONTINUE
>   1
> Warning: Label 49 at (1) defined but not used
> smumps_load.F:1922.4:
> 
> 666  CONTINUE
>   1
> Warning: Label 666 at (1) defined but not used
> smumps_ooc.F:201.29:
> 
>  OOC_VADDR=>id%OOC_VADDR
>1
> Error: 'ooc_vaddr' at (1) is not a member of the 'smumps_struc' structure
> smumps_ooc.F:219.30:
> 
>  ALLOCATE(id%OOC_NB_FILES(OOC_NB_FILE_TYPE), stat=allocok)
> 1
> Error: Syntax error in ALLOCATE statement at (1)
> smumps_ooc.F:537.12:
> 
>id%OOC_TOTAL_NB_NODES(I)=I_CUR_HBUF_NEXTPOS(I)-1
>   1
> Error: Unclassifiable statement at (1)
> smumps_ooc.F:569.34:
> 
>DO I=1,id%OOC_NB_FILES(I1)
> 1
> Error: Syntax error in DO statement at (1)
> smumps_ooc.F:583.12:
> 
> ENDDO
>   1
> Error: Expecting END IF statement at (1)
> smumps_ooc.F:618.32:
> 
> 
> Why won't it build for me? I am using gfortran. Has this been tested?
> Could this issue please be resolved.
> 
>   Barry
> 
> 




who updated the MUMPS package in petsc-dev

2008-10-22 Thread Hong Zhang
Barry,

smumps_* are in single precision of mumps, which I've never 
tested it.
I'll check it later,

Hong

On Wed, 22 Oct 2008, Barry Smith wrote:

>
>
> It seems to be severely broken
>
> Warning: Label 887 at (1) defined but not used
> smumps_load.F:2311.4:
>
> 049 CONTINUE
>  1
> Warning: Label 49 at (1) defined but not used
> smumps_load.F:1922.4:
>
> 666  CONTINUE
>  1
> Warning: Label 666 at (1) defined but not used
> smumps_ooc.F:201.29:
>
> OOC_VADDR=>id%OOC_VADDR
>   1
> Error: 'ooc_vaddr' at (1) is not a member of the 'smumps_struc' structure
> smumps_ooc.F:219.30:
>
> ALLOCATE(id%OOC_NB_FILES(OOC_NB_FILE_TYPE), stat=allocok)
>1
> Error: Syntax error in ALLOCATE statement at (1)
> smumps_ooc.F:537.12:
>
>   id%OOC_TOTAL_NB_NODES(I)=I_CUR_HBUF_NEXTPOS(I)-1
>  1
> Error: Unclassifiable statement at (1)
> smumps_ooc.F:569.34:
>
>   DO I=1,id%OOC_NB_FILES(I1)
>1
> Error: Syntax error in DO statement at (1)
> smumps_ooc.F:583.12:
>
>ENDDO
>  1
> Error: Expecting END IF statement at (1)
> smumps_ooc.F:618.32:
>
>
> Why won't it build for me? I am using gfortran. Has this been tested?
> Could this issue please be resolved.
>
>  Barry
>
>




who updated the MUMPS package in petsc-dev

2008-10-22 Thread Satish Balay
Barry,

Can you do 'rm -rf PETSC_ARCH externalpackages' and retry?

[also make sure to pull BuildSystem]

Satish

On Wed, 22 Oct 2008, Satish Balay wrote:

> Works for me.




who updated the MUMPS package in petsc-dev

2008-10-22 Thread Barry Smith

   Already tried this, but I'll try again

   Barry

On Oct 22, 2008, at 9:59 AM, Satish Balay wrote:

> Barry,
>
> Can you do 'rm -rf PETSC_ARCH externalpackages' and retry?
>
> [also make sure to pull BuildSystem]
>
> Satish
>
> On Wed, 22 Oct 2008, Satish Balay wrote:
>
>> Works for me.
>




who updated the MUMPS package in petsc-dev

2008-10-22 Thread Barry Smith

   I'm not trying to use smumps; I just asked config/configure.py to  
download mumps and build
it in the usual way.

Barry

On Oct 22, 2008, at 9:48 AM, Hong Zhang wrote:

> Barry,
>
> smumps_* are in single precision of mumps, which I've never tested it.
> I'll check it later,
>
> Hong
>
> On Wed, 22 Oct 2008, Barry Smith wrote:
>
>>
>>
>> It seems to be severely broken
>>
>> Warning: Label 887 at (1) defined but not used
>> smumps_load.F:2311.4:
>>
>> 049 CONTINUE
>> 1
>> Warning: Label 49 at (1) defined but not used
>> smumps_load.F:1922.4:
>>
>> 666  CONTINUE
>> 1
>> Warning: Label 666 at (1) defined but not used
>> smumps_ooc.F:201.29:
>>
>>OOC_VADDR=>id%OOC_VADDR
>>  1
>> Error: 'ooc_vaddr' at (1) is not a member of the 'smumps_struc'  
>> structure
>> smumps_ooc.F:219.30:
>>
>>ALLOCATE(id%OOC_NB_FILES(OOC_NB_FILE_TYPE), stat=allocok)
>>   1
>> Error: Syntax error in ALLOCATE statement at (1)
>> smumps_ooc.F:537.12:
>>
>>  id%OOC_TOTAL_NB_NODES(I)=I_CUR_HBUF_NEXTPOS(I)-1
>> 1
>> Error: Unclassifiable statement at (1)
>> smumps_ooc.F:569.34:
>>
>>  DO I=1,id%OOC_NB_FILES(I1)
>>   1
>> Error: Syntax error in DO statement at (1)
>> smumps_ooc.F:583.12:
>>
>>   ENDDO
>> 1
>> Error: Expecting END IF statement at (1)
>> smumps_ooc.F:618.32:
>>
>>
>> Why won't it build for me? I am using gfortran. Has this been tested?
>> Could this issue please be resolved.
>>
>> Barry
>>
>>
>




who updated the MUMPS package in petsc-dev

2008-10-22 Thread Satish Balay
Which version of gfortran? I can try to reproduce..

Satish

On Wed, 22 Oct 2008, Barry Smith wrote:

> 
>   Already tried this, but I'll try again
> 
>   Barry
> 
> On Oct 22, 2008, at 9:59 AM, Satish Balay wrote:
> 
> > Barry,
> > 
> > Can you do 'rm -rf PETSC_ARCH externalpackages' and retry?
> > 
> > [also make sure to pull BuildSystem]
> > 
> > Satish
> > 
> > On Wed, 22 Oct 2008, Satish Balay wrote:
> > 
> > > Works for me.
> > 
> 
> 




who updated the MUMPS package in petsc-dev

2008-10-22 Thread Barry Smith

   Satish,

You where correct. Removing the stuff in arch/include/*mumps*  
solved the problem.
Hmm, removing the externalpackages/directory should be enough, I  
wonder why.


Barry

On Oct 22, 2008, at 10:34 AM, Barry Smith wrote:

>
>  Already tried this, but I'll try again
>
>  Barry
>
> On Oct 22, 2008, at 9:59 AM, Satish Balay wrote:
>
>> Barry,
>>
>> Can you do 'rm -rf PETSC_ARCH externalpackages' and retry?
>>
>> [also make sure to pull BuildSystem]
>>
>> Satish
>>
>> On Wed, 22 Oct 2008, Satish Balay wrote:
>>
>>> Works for me.
>>
>




error in handling download external packages

2008-10-22 Thread Satish Balay
For one - I think each external package should have its own 'make
install' - this should copy its public include files to the prefix
location. [currently we do 'cp' for some packages - and this might
copy both internal and public include files to the install location].

The current model is to have the same 'prefix' provided to PETSc be
the prefix for all external packages. Placing package includes in a
separate location breaks this mode. [and then we have to figure out
which packages user will include via petsc include - like mpi.h etc,
and ones that are not directly included - perhaps like mumps.h]

So I don't see the benefit [except for reduced number of files in
prefix/include] by hiding the includes in a different location - and
complicating the install model.

The current model benifits users in the sense that - if they were to
have some usercode that uses externalpackages directly aswell - then
they can rely on PETSc install of these packages..

Satish

Satish On Wed, 22 Oct 2008, Barry Smith wrote:

> 
>   After we have compiled the external package libraries we copy them over to
> the install site, ok.
> But we also blindly copy over ALL of its include files over to the install
> site so that the PETSc interface
> for that package can be built. But then we leave all those includes there even
> though they are not
> needed by the user of the installed PETSc.
> 
>  Possible correction: put those includes in another directory that is used for
> building PETSc but not used
> when compiling user code. Somehow need to pass the appropriate -I only when
> building PETSc
> and not for user code.
> 
>  Barry
> 
> Even when we do not install the package, that is we use one someone already
> installed, we point
> to its include files in our makefile system and continue to point to them
> (with -I stuff) when users
> build code.
> 




who updated the MUMPS package in petsc-dev

2008-10-22 Thread Satish Balay
On Wed, 22 Oct 2008, Barry Smith wrote:

> 
>  Satish,
> 
>   You where correct. Removing the stuff in arch/include/*mumps* solved the
> problem.
> Hmm, removing the externalpackages/directory should be enough, I wonder why.

Because of the presence of includes from previous version of mumps in
PETSC_ARCH/include. [This -Iarch/include is passed in to mumps build
as a depencency for other dependent package - perhaps MPI dependency]

Satish




error in handling download external packages

2008-10-22 Thread Barry Smith

On Oct 22, 2008, at 10:55 AM, Satish Balay wrote:

> For one - I think each external package should have its own 'make
> install' - this should copy its public include files to the prefix
> location. [currently we do 'cp' for some packages - and this might
> copy both internal and public include files to the install location].

We should only doing the cp/mv for packages that do not have their
own proper make install. (I don't know if we use it when we should not
anywhere). We should try to improve this and eliminate at least some
of the private include files from getting over.
>
>
> The current model is to have the same 'prefix' provided to PETSc be
> the prefix for all external packages.

   We should probably have support for using a different prefix for all
of the externals, this wouldn't be hard to do. (but use the same by  
default).
Of course, this doesn't really solve the problem anyways since we would
still have to point to this other directory when compiling user code  
because
of the mpi.h as you point out.

> Placing package includes in a
> separate location breaks this mode. [and then we have to figure out
> which packages user will include via petsc include - like mpi.h etc,
> and ones that are not directly included - perhaps like mumps.h]
>
> So I don't see the benefit [except for reduced number of files in
> prefix/include] by hiding the includes in a different location - and
> complicating the install model.
>
> The current model benifits users in the sense that - if they were to
> have some usercode that uses externalpackages directly aswell - then
> they can rely on PETSc install of these packages..

   This is true.

I wasn't saying we had to solve this problem, but I do think it
is a problem.  A users code could easily pick up the wrong include
for something since we now have hundreds in our arch/include location.

>
>
> Satish
>
> Satish On Wed, 22 Oct 2008, Barry Smith wrote:
>
>>
>>  After we have compiled the external package libraries we copy them  
>> over to
>> the install site, ok.
>> But we also blindly copy over ALL of its include files over to the  
>> install
>> site so that the PETSc interface
>> for that package can be built. But then we leave all those includes  
>> there even
>> though they are not
>> needed by the user of the installed PETSc.
>>
>> Possible correction: put those includes in another directory that  
>> is used for
>> building PETSc but not used
>> when compiling user code. Somehow need to pass the appropriate -I  
>> only when
>> building PETSc
>> and not for user code.
>>
>> Barry
>>
>> Even when we do not install the package, that is we use one someone  
>> already
>> installed, we point
>> to its include files in our makefile system and continue to point  
>> to them
>> (with -I stuff) when users
>> build code.
>>
>




error in handling download external packages

2008-10-22 Thread Satish Balay
On Wed, 22 Oct 2008, Barry Smith wrote:

>   I wasn't saying we had to solve this problem, but I do think it
> is a problem.  A users code could easily pick up the wrong include
> for something since we now have hundreds in our arch/include location.

I guess part of the problem is namespace issue [This would be the
primary reason for picking up the wrong include]. In that sense
include/packagename/pkginc.h might be a valid thing. But the package
has to support this internally [as in 'make install' provides
include/pkgname/pkginclude'. And the recommended usage from user code
would be:

#inlcude "package/pkginc.h"

[this model is not in sync with curent PETSc model of supporing both
install in PETSC_DIR-src and 'make install with prefix']. It might be
better to identify the namespace conflicts and ask the packages to fix
the names..

The other kind of conflict is: user installs superlu separately - and
then tries to use PETSc installed with --download-superlu. These 2
versions of superlu will conflict with each other.. The fix in this
case is to not use the duplicate install of superlu anyway...

Satish




who updated the MUMPS package in petsc-dev

2008-10-22 Thread Barry Smith

This is what got my rant started on sticking package includes in  
there :-(

   Barry

On Oct 22, 2008, at 10:59 AM, Satish Balay wrote:

> On Wed, 22 Oct 2008, Barry Smith wrote:
>
>>
>> Satish,
>>
>>  You where correct. Removing the stuff in arch/include/*mumps*  
>> solved the
>> problem.
>> Hmm, removing the externalpackages/directory should be enough, I  
>> wonder why.
>
> Because of the presence of includes from previous version of mumps in
> PETSC_ARCH/include. [This -Iarch/include is passed in to mumps build
> as a depencency for other dependent package - perhaps MPI dependency]
>
> Satish
>




who updated the MUMPS package in petsc-dev

2008-10-22 Thread Satish Balay
On Wed, 22 Oct 2008, Barry Smith wrote:

>   This is what got my rant started on sticking package includes in there :-(

moving includes to a sub-dir will help slightly with 'external
package' upgrades - but not completely.

- For one - some old files could still lay arround [causing problems
during PETSc build - but not package build]

- the current f arch/conf/packagename test [to rebuilding of a
package] wont't work. [ it checks only compiler options - not the
package version].

Ideally we should have a better check on when to invoke a
'recompile/install' on the external packages. [maybe also stash
externaldir name? - or some md5checksum if the sources change - but
not the dirname?] etc..

And before this recompile is done - we should do a proper 'uninstall'
of the package. We have an uninstall script for 'prefix' install of
PETSc libraries. Perhaps we can somehow extend this to do a proper
'package-uninstall' for individual externalpackages.. [to be used
during this externalpackage-reinstall step]

Satish




error in handling download external packages

2008-10-22 Thread Matthew Knepley
I have a problem with hiding the package includes. If I tell PETSc to install
ParMetis, I think I should be able to use ParMetis however I want. I do not
just want to use it through the PETSc interface. I have done this numerous
times. I think most users think this way as well. What is the motivation for
hiding the includes?

  Thanks,

Matt

On Wed, Oct 22, 2008 at 11:18 AM, Satish Balay  wrote:
> On Wed, 22 Oct 2008, Barry Smith wrote:
>
>>   I wasn't saying we had to solve this problem, but I do think it
>> is a problem.  A users code could easily pick up the wrong include
>> for something since we now have hundreds in our arch/include location.
>
> I guess part of the problem is namespace issue [This would be the
> primary reason for picking up the wrong include]. In that sense
> include/packagename/pkginc.h might be a valid thing. But the package
> has to support this internally [as in 'make install' provides
> include/pkgname/pkginclude'. And the recommended usage from user code
> would be:
>
> #inlcude "package/pkginc.h"
>
> [this model is not in sync with curent PETSc model of supporing both
> install in PETSC_DIR-src and 'make install with prefix']. It might be
> better to identify the namespace conflicts and ask the packages to fix
> the names..
>
> The other kind of conflict is: user installs superlu separately - and
> then tries to use PETSc installed with --download-superlu. These 2
> versions of superlu will conflict with each other.. The fix in this
> case is to not use the duplicate install of superlu anyway...
>
> Satish
>
>



-- 
What most experimenters take for granted before they begin their
experiments is infinitely more interesting than any results to which
their experiments lead.
-- Norbert Wiener




who updated the MUMPS package in petsc-dev

2008-10-22 Thread Jed Brown
On Wed 2008-10-22 11:34, Satish Balay wrote:
> On Wed, 22 Oct 2008, Barry Smith wrote:
> 
> >   This is what got my rant started on sticking package includes in there :-(
>
> moving includes to a sub-dir will help slightly with 'external
> package' upgrades - but not completely.

The MPI wrappers should find `mpi.h' and if you installed an MPI then
wouldn't you be using the wrappers?  If you're not using wrappers then
certainly that -I needs to be there.  For other headers, it doesn't seem
like too much to ask a user who uses an external package directly to add
their own -I flag.

> And before this recompile is done - we should do a proper 'uninstall'
> of the package. We have an uninstall script for 'prefix' install of
> PETSc libraries. Perhaps we can somehow extend this to do a proper
> 'package-uninstall' for individual externalpackages.. [to be used
> during this externalpackage-reinstall step]

Beware of Hypre's make uninstall which is rm -rf $prefix/{lib,include}!
Some packages install lots of un-namespaced headers (fortran.h,
timing.h, misc.h, matrix.h, qr.h -- SPAI and Hypre seem to be the big
offenders here) so the uninstall would have to be somewhat manual and
re-tuned for new releases, but getting reconfigure to work properly
through package upgrades is worthwhile.  I also think it's good to get
these headers out of the user's default namespace.

Jed
-- next part --
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: not available
URL: 
<http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20081022/846854dc/attachment.pgp>


error in handling download external packages

2008-10-22 Thread Barry Smith

On Oct 22, 2008, at 12:16 PM, Matthew Knepley wrote:

> I have a problem with hiding the package includes. If I tell PETSc  
> to install
> ParMetis, I think I should be able to use ParMetis however I want. I  
> do not
> just want to use it through the PETSc interface. I have done this  
> numerous
> times. I think most users think this way as well. What is the  
> motivation for
> hiding the includes?

   Per our previous decisions, not hiding the includes, but having an  
option
of putting all their includes in a different place then the PETSc  
include directory.
Now if they have PETSc install ParMetis the includes are ALWAYS put in
the same place as the PETSc ones.

Barry

So someone use the ParMetis, but not using PETSc needs to have a
-I/somewhere/petsc-install-location/include instead of a
-I/somehere/parmetis-install-location/include


>
>
>  Thanks,
>
>Matt
>
> On Wed, Oct 22, 2008 at 11:18 AM, Satish Balay   
> wrote:
>> On Wed, 22 Oct 2008, Barry Smith wrote:
>>
>>>  I wasn't saying we had to solve this problem, but I do think it
>>> is a problem.  A users code could easily pick up the wrong include
>>> for something since we now have hundreds in our arch/include  
>>> location.
>>
>> I guess part of the problem is namespace issue [This would be the
>> primary reason for picking up the wrong include]. In that sense
>> include/packagename/pkginc.h might be a valid thing. But the package
>> has to support this internally [as in 'make install' provides
>> include/pkgname/pkginclude'. And the recommended usage from user code
>> would be:
>>
>> #inlcude "package/pkginc.h"
>>
>> [this model is not in sync with curent PETSc model of supporing both
>> install in PETSC_DIR-src and 'make install with prefix']. It might be
>> better to identify the namespace conflicts and ask the packages to  
>> fix
>> the names..
>>
>> The other kind of conflict is: user installs superlu separately - and
>> then tries to use PETSc installed with --download-superlu. These 2
>> versions of superlu will conflict with each other.. The fix in this
>> case is to not use the duplicate install of superlu anyway...
>>
>> Satish
>>
>>
>
>
>
> -- 
> What most experimenters take for granted before they begin their
> experiments is infinitely more interesting than any results to which
> their experiments lead.
> -- Norbert Wiener
>