[petsc-dev] Scotch

Jose E. Roman jroman at dsic.upv.es
Sun Aug 21 12:21:41 CDT 2011


Ok. I will take the opportunity to update the other partitioners. By the way, the interface to Jostle is broken. Jostle is not distributed in source code, so I would vote for removing the interface. Any objection?

Question: I used identifiers such as MP_PTSCOTCH_QUALITY as a shortcut of MATPARTITIONING_PTSCOTCH_QUALITY. Should the long version be preferred?

Jose


El 20/08/2011, a las 22:17, Barry Smith escribió:

> 
>   I have updated all the Scotch stuff to use the proper PTScotch names:
> 
>     --download-ptscotch     -mat_partitioning_type ptscotch   MatPartitioningSetType(p,MATPARTITIONINGPTSCOTCH) Scotch.py to PTScotch.py   etc etc
> 
>    You will need to hg pull BuildSystem also.
> 
> 
>     Barry
> 
> 
> On Aug 20, 2011, at 3:10 AM, Jose E. Roman wrote:
> 
>> 
>> El 20/08/2011, a las 05:45, Barry Smith escribió:
>> 
>>> 
>>> Questions for anyone with knowledge on this subject:
>>> 
>>>    Are Scotch and ptscotch different packages? 
>> 
>> They are different libraries but are included in the same distribution file. The tarball contains both the serial and parallel versions (as opposed to e.g. Metis/Parmetis).
>> 
>>> 
>>>   How come the download site has scotch_5.1.11.tar.gz and scotch_5.1.11_esmumps.tar.gz and neither mentions ptscotch do one or both of them contain ptscotch? Do either contain scotch? What is the mumps business in the name?
>> 
>> Both of them contain scotch+ptscotch. I have diff'ed the two of them. The esmumps one contains an additional file esmumps.c with a single function esmumps(): "This routine acts as an interface between ordering software such as MUMPS and Scotch+Emilio." The other difference is that esmumps has
>>   typedef int32_t SCOTCH_Num;
>> instead of
>>   typedef int SCOTCH_Num;
>> (also for indices) so probably 64-bit integers/indices are disabled in this version.
>> 
>>> 
>>>   If this uses ptscotch why is the call in the source code SCOTCH_dgraphBuild()? and doesn't mention pt?
>> 
>> The differences in usage/interface between scotch and ptscotch are very small:
>> 1) One has to include either scotch.h or ptscotch.h, and link with -lscotch or -lptscotch
>> 2) For ptscotch one has to use distributed graphs, i.e. call SCOTCH_dgraph*() instead of SCOTCH_graph*()
>> Apart from this, the interface seems to be the same.
>> 
>>> 
>>>   If scotch and ptscotch are different shouldn't scotch.py be called ptscotch.py?  
>> 
>> They are different because the algorithms available in the parallel version are much more limited compared to the serial version. But since they are both included in the same distribution file, I guess it doesn't matter to call it scotch.py or ptscotch.py.
>> 
>> In terms of MatPartitioning, it could be possible to create two partitioners, one for scotch and another for ptscotch. But I think it is far more useful to have the ptscotch interface, because the sequential one would require gathering the whole graph in a single process (as it happens with chaco and party). Also, in that case one could also have another one for Metis (since the method is not exactly the same as Parmetis).
>> 
>> 
>>> 
>>>   Pastix seems to use either scotch or ptscotch?  Will anyone ever fix the install of pastix.py for PETSc? Will that require a --download-scotch that installs sequential scotch?
>> 
>> I have no idea about Pastix (I haven't seen pastix.py in petsc-dev), but I guess it will be enough to force --download-scotch together with --download-pastix.
>> 
>> Jose
>> 
>>> 
>>> 
>>>  Barry
>>> 
>>> 
>>> 
>>> 
>>> 
>>> On Aug 19, 2011, at 6:10 PM, Jose E. Roman wrote:
>>> 
>>>> I have rewritten the Scotch interface so that it can be used again as a MatPartitioning object. I have done limited testing, so please let me know if problems arise.
>>>> 
>>>> The interface is really to PT-Scotch rather than serial Scotch.
>>>> 
>>>> Some comments regarding configure's download-scotch option:
>>>> - It will probably fail in batch environments since the program 'dummysizes' must be run before compiling
>>>> - Compilation requires lex & yacc, I don't know if these are tested by configure.
>>>> 
>>>> Jose
>>>> 
>>> 
>> 
> 




More information about the petsc-dev mailing list