[petsc-dev] PTScotch 6

Jose E. Roman jroman at dsic.upv.es
Tue Mar 19 10:52:16 CDT 2013


El 19/03/2013, a las 16:44, Satish Balay escribió:

> On Mon, 18 Mar 2013, Jose E. Roman wrote:
> 
>> 
>> There is a new version of PTScotch. I tried configuring with --download-ptscotch=https://gforge.inria.fr/frs/download.php/31832/scotch_6.0.0_esmumps.tar.gz
>> 
>> It works on Linux with the patch below (note the missing whitespace should have been fixed in 3.3).
> 
> Hm - so this part of the patch should go into 'maint' tree - and then
> merged into 'next/master'? So we need 2 branches for applying this patch?
> one that goes into 'maint' & 'next/master' - the other that goes into
> 'next/master'?

I guess this is not so important to fix in 3.3.

> 
> [Will let the git experts comment on the workflow to use']
> 
> I dont' unserstand the 'maint' branch. It has merges from 3.3 - so I
> don't know if its eqivalent to petsc-3.3+bs-3.3 or not.  [ andI'm not
> sure if we'll have another patch update to 3.3]
> 
>> On Mac I had a compilation problem related to pthreads. After commenting out these lines in PTScotch.py it builds well.
>>    if self.libraries.add('-lpthread','pthread_key_create'):
>>      self.cflags = self.cflags + ' -DCOMMON_PTHREAD'
>>      ldflags += ' -lpthread'
> 
> Looks like pthread_barrierattr_t does not exist on OSX but this code
> appears to use it. Perhaps we should change the above test to:
> 
> #   OSX does not have pthread_barrierattr_t - so check for that
>    if self.libraries.add('-lpthread','pthread_barrierattr_t'):
> 
>> 
>> Jose
>> 
>> 
>> diff -r 19e6251ff91d config/PETSc/packages/PTScotch.py
>> --- a/config/PETSc/packages/PTScotch.py	Thu Mar 14 20:16:54 2013 -0500
>> +++ b/config/PETSc/packages/PTScotch.py	Mon Mar 18 18:29:11 2013 +0100
>> @@ -6,7 +6,7 @@
>>     #'https://gforge.inria.fr/frs/download.php/28978/scotch_5.1.12b_esmumps.tar.gz'
>>     self.download     = ['http://ftp.mcs.anl.gov/pub/petsc/externalpackages/scotch_5.1.12b_esmumps-p1.tar.gz']
> 
> Will have to update/keep both URLs.
>     self.download     = ['https://gforge.inria.fr/frs/download.php/31832/scotch_6.0.0_esmumps.tar.gz',
>                           http://ftp.mcs.anl.gov/pub/petsc/externalpackages/scotch_6.0.0_esmumps.tar.gz']
> 
>>     self.downloadfilename = 'scotch'
>> -    self.liblist      = [['libptesmumps.a', 'libptscotch.a','libptscotcherr.a']]
>> +    self.liblist      = [['libptscotch.a','libptscotcherr.a','libscotch.a','libscotcherr.a']]
> 
> So the library list has changed?

They have separated the sequential and parallel versions. From file INSTALL.txt:

  Since version 6.0, the Scotch and PT-Scotch packages can be made
  independent. The libScotch will not be tied by any dependency against
  any MPI package, while the libPTScotch has to depend on the one with
  which it has been compiled, in addition to the libScotch package that
  it uses.

  In versions 5.x, the libPTScotch also contained a modified copy of the
  libScotch. It is no longer the case, which will result in lower disk
  footprint.

I guess now it could be possible to have --download-ptscotch and --download-scotch.
However, the tarball is unique.

Jose



> 
> thanks,
> Satish
> 
>>     self.functions    = ['SCOTCH_archBuild']
>>     self.includes     = ['ptscotch.h']
>>     self.requires32bitint = 0
>> @@ -56,7 +56,7 @@
>>       ldflags += ' -lpthread'
>>     if self.libraries.add('-lm','sin'): ldflags += ' -lm'
>>     if self.libraries.add('-lrt','timer_create'): ldflags += ' -lrt'
>> -    self.cflags = self.cflags + '-DCOMMON_RANDOM_FIXED_SEED'
>> +    self.cflags = self.cflags + ' -DCOMMON_RANDOM_FIXED_SEED'
>>     # do not use -DSCOTCH_PTHREAD because requires MPI built for threads.
>>     self.cflags = self.cflags + ' -DSCOTCH_RENAME -Drestrict="" '
>>     # this is needed on the Mac, because common2.c includes common.h which DOES NOT include mpi.h because
>> 
>> 
>> 
> 




More information about the petsc-dev mailing list