Contiguous Partitions Log Out | Topics | Search
Moderators | Edit Profile

Discussion about George's Research » METIS - Serial Graph Partitioning » General Usage Questions » Contiguous Partitions « Previous Next »

Author Message
Top of pagePrevious messageNext messageBottom of page Link to this message

Anonymous
Posted From: 200.74.69.135
Posted on Tuesday, December 02, 2003 - 07:16 pm:   

Hi,

[I hope that this thread is not much off topic....we'll I'm the first one (not test post), so mistakes can happen ;-) ]

By reading the FAQ it's clear that Metis can't be forced to give only contiguos partitions as solutions (I all ready test it my self).

My question is: Is ParMetis able of do that? Or.. What other Software can I use to obtain that kind of solutions?

Thank you, and thank you for Metis, it's a great program!
JIS.
Top of pagePrevious messageNext messageBottom of page Link to this message

george
Posted From: 65.29.55.79
Posted on Thursday, December 04, 2003 - 06:18 am:   

Neither Metis nor ParMetis ensure contigous partitions. This is something that will probably be an option in Metis in the 5.0 release that is under works. However, it will be very difficult to implement it in ParMetis.
Top of pagePrevious messageNext messageBottom of page Link to this message

JIS
Posted From: 200.74.69.135
Posted on Thursday, December 04, 2003 - 05:53 pm:   

Ok, Thank you George for the info.
BTW, Is there any release plan / schedule for the 5.0 release?

Thank you.
JIS.
Top of pagePrevious messageNext messageBottom of page Link to this message

george
Posted From: 65.29.55.79
Posted on Friday, December 05, 2003 - 03:25 am:   

I'm hoping that 5.0 will be out sometime in February.
Top of pagePrevious messageNext messageBottom of page Link to this message

Anonymous
Posted From: 128.255.17.234
Posted on Tuesday, January 27, 2004 - 07:36 pm:   

How do I use Metis lib from a fortran code?
Can I use a CALL METIS_PartGraphKway(.....)?
Top of pagePrevious messageNext messageBottom of page Link to this message

george
Posted From: 65.29.55.79
Posted on Thursday, January 29, 2004 - 05:53 am:   

Yes, you should be able to just call METIS's functions.
Top of pagePrevious messageNext messageBottom of page Link to this message

mohsen
Posted From: 129.100.226.170
Posted on Tuesday, April 13, 2004 - 11:20 am:   

george

I am starting using either metis or parmetis in my code, which is written in F90. I have already installed them both on my cluster and tested them. The question is that first of all, do I need to include 'metis.h' into my code, second of all when I call a metis function is there any additional parameter required as an error checksum (similar to that for PETSc)? Third of all if I use metis instead of parmetis in a serial preprocessing code, will the quality of the results be as good as parmetis (the number of my processes will not be that many, say less than 64)?
Top of pagePrevious messageNext messageBottom of page Link to this message

mohsen
Posted From: 129.100.226.170
Posted on Tuesday, April 13, 2004 - 11:26 am:   

george

I appreciate it if you answer this one too:

The method I am using is unstructured finite volume. So basically, I have to put the center of control volumes as a node and treat the neighboring CV's using the connecting edges.
My data is not in a proper order so that when I use petsc, it requires lots of data communications. I think the best is to use fill reducing ordering. I am wondering if you could give me an advice.

Thank You
Top of pagePrevious messageNext messageBottom of page Link to this message

george
Posted From: 128.101.36.117
Posted on Wednesday, April 14, 2004 - 09:42 am:   

Here are some answers:

1. metis.h needs to be included.
2. There is no error checksum parameter in metis/parmetis. If there are any problems with your mesh/graph, the program just aborts :-(
3. There are some small quality differences < 5% between metis and parmetis with metis in general being somewhat better.
4. You should not use a fill-reducing ordering, just partition the graph whose nodes correspond to the control volumes with edges between adjacent control volumes, redistribute the graph according to this partitioning, and you should be good to go.
Top of pagePrevious messageNext messageBottom of page Link to this message

Mohsen
Posted From: 129.100.226.170
Posted on Monday, April 19, 2004 - 04:47 pm:   

George

Thank you for the help.

I still have a problem with "metis.h"

"metis.h" is a C header file and when I include it in my F90 code, it issues errors for every single line of metis.h and all its sub-header files.

I am wondering if there is a F90 version of "metis.h" or any other way to round this problem.

In fact is there any example of a fortran program implementing METIS, so that I can start with?
Top of pagePrevious messageNext messageBottom of page Link to this message

george
Posted From: 128.101.32.69
Posted on Sunday, April 25, 2004 - 09:47 pm:   

Unfortunately, I do not have a f90 header file for Metis. I personally never use f90 so I do not have any code to provide you.

Top of pagePrevious messageNext messageBottom of page Link to this message

Renato Elias
Posted From: 200.217.245.151
Posted on Thursday, July 22, 2004 - 09:32 pm:   

I've been using the METIS_PartMeshDual Metis subroutine in Window$, Linux and Unicos platforms with the following Fortran "module interface" written by myself.

--------------------------------------------
c.
c. Interface module used by METIS library
c.
MODULE libmetis
INTERFACE
SUBROUTINE METIS_PartMeshDual ( ne ,
. nn ,
. elmnts ,
. etype ,
. numflag,
. nparts ,
. edgecut,
. epart ,
. npart )
!DEC$ ATTRIBUTES C :: METIS_PartMeshDual
!DEC$ ATTRIBUTES REFERENCE :: ne
!DEC$ ATTRIBUTES REFERENCE :: nn
!DEC$ ATTRIBUTES REFERENCE :: elmnts
!DEC$ ATTRIBUTES REFERENCE :: etype
!DEC$ ATTRIBUTES REFERENCE :: numflag
!DEC$ ATTRIBUTES REFERENCE :: nparts
!DEC$ ATTRIBUTES REFERENCE :: edgecut
!DEC$ ATTRIBUTES REFERENCE :: epart
!DEC$ ATTRIBUTES REFERENCE :: npart
INTEGER ne, nn, etype, numflag, nparts,
. edgecut, elmnts(1:4,1:ne), epart(1:ne), npart(1:nn)
END SUBROUTINE
END INTERFACE
END MODULE libmetis

--------------------------------------------

-libmetis.a static library should be linked with
other Fortran object files, like this:

[LINKER] -o [MY_PROGRAM] *.o libmetis.a

I think that It will be useful...

Renato N. Elias
NACAD/COPPE/UFRJ
Rio de Janeiro/Brasil
http://www.nacad.ufrj.br/~rnelias

Top of pagePrevious messageNext messageBottom of page Link to this message

Ash
Posted From: 128.82.214.35
Posted on Thursday, December 01, 2005 - 04:10 pm:   

A quick question about the xadj and the adjncy vectors as input to METIS. Suppose i have constructed a sparse matrix in the compressed row format (with the diagonal elements included). A case in point:

Say - my A is (50*50) (has max of 7 entries per row - including the diagonal).

So i will have a xadj (has 51 entries) and an adjncy of size (<=350)

Now my question is that since i am including the diagonal elements (the adjncy vector will contain column numbers for each row including the diagonal).

Is it erroneous to pass to METIS such a xadj and adjncy vectors for reordering ? Also - in the documentation it is mentioned that METIS_NODEND/METIS_EDGND accept (n,xadj,adjncy..)the question is how to pass the size of adjncy vector ?

-Ash
Top of pagePrevious messageNext messageBottom of page Link to this message

george
Posted From: 65.29.55.79
Posted on Saturday, December 03, 2005 - 05:00 am:   

The adjncy array should not have the diagonals entries. The size of the adjncy array is determined
by xadj[n].

Add Your Message Here
Posting is currently disabled in this topic. Contact your discussion moderator for more information.

Topics | Last Day | Last Week | Tree View | Search | Help/Instructions | Program Credits Administration