Parallel Graph & Mesh Partitioning
My confusion is about numflag option for ParMETIS_V3_PartKway()
The manual say that when the numflag is set to 0 for ParMETIS_V3_PartKway(), c-style numbering applies to vtxdist, xadj, adjncy, and part.
However, when I tried parmetis with a adjacency file that contains 0, it was hanging. I checked the parmetis.c code, and numflag is set to 0 (c-style). 'graphchk' would not pass a vertex id being 0.
I tried without 0 vertex, and parmetis, metis, and graphchk all works. However, the generated xxx.part file is in c-style including partition id 0.
I am wondering whether I can use 0 for vtxdist and xadj.
Hello everyone,I have seen that the ParMetis is not valid for directed graph partition unless convert it into undirected graph in this forum,but after I deleting some edges of a undirected graph at some lines(the rotor.graph in Parmetis Graph),it also can run correctly.How to explain it? It may means directed graph also can run in the ParMetis programs.Is it right?
- Login to post comments
Hi,
I'm new in ParMetis and I'm trying to run a few simple test running the program parmetis.c provided together with the library. However, whatever changes I make in this code aren't updated after compiling the whole code. Is there any specific make command I should use?
Thanks,
Caroline.
- Login to post comments
Hi
I am using the command line tool gpmetis,
a typical call looks like this:
gpmetis -objtype=vol -minconn my.graph 4
Now I want to do this with parmetis. But parmetis doesn't have all the command line tools of metis, there is only parmetis. So I wonder how the call might look with parmetis, I tried this
mpiexec -np 4 parmetis my.graph 1 4 0 0 0 0
But the partitioning is not as good as with gpmetis.
Thanks for any help!
Magnus
Hi,
I am trying to use ParMETIS and using ParMETIS_V3_PartKway . My code seems to works 64 processes. When I run it on 128 processes I get the following error. For 128 processes, I am trying to partition the graph 16 ways.
Maximum memory used: 3143092 bytes
Current memory used: 503516 bytes
***Memory realloc failed for cnbrpoolGet: cnbrpool. Requested size: 1523232 bytes
I not sure what this error means. I get a segmentation violation within the partitioning calls. I am not sure what kind of information you need, here are some details of the distributed graph:
vtxdist(17): 0 1885 3770 5655 7540 9425 11310 13195 15080 16965 18850 20735 22620 24505 26390 28275 30169
double* tpwgts = new double[ncon*nparts];
for( int i = 0 ; i < nparts ; i++ )
for( int j = 0 ; j < ncon ; j++ )
tpwgts[i*ncon+j] = 1.0 / nparts;
double* ubvec = new double[ncon];
for( int i =0 ; i < ncon ; i++ )
ubvec[i] = 1.05;
int options[3];
options[0] = 1;
Hello,
I am trying to partition a mesh with periodic boundaries. Since this periodic boundaries are small in regard to the number of total nodes in the mesh, (for the sake of simplicity and avoiding parallel communication) i would like to partition it such that these nodes are located in the same partition.
So I'm wondering, if is there a way to achieve this with parmetis?
Thanks:
Th
Dear all,
I am trying to use parmetis in a test program with a small hand-made mesh and ParMETIS_V3_PartKway, and got a linking error. My system is kubuntu 9.10, I am using metis 5.0 (built separately from parmetis) and parmetis 4.0.2. The error message is too long, but below I am sending a small portion of it, and I will be very much grateful if anyone could point out a solution to this problem. The program is composed of a main routine only and I am including metis.h and parmetis.h.
Best regards,
Felix C. G. Santos
______________________________________
Department of Mechanical Engineering
Federal University of Pernambuco
Brazil
Building target: parM
Invoking: GCC C++ Linker
/home/fcgs/mpich2-install/bin/mpic++ -L/usr/local/bin/ -L/home/fcgs/mpich2-install/lib -o"parM" ./main.o -lmpich -lmetis -lparmetis
Hello,
I'm using both Metis and ParMETIS packages and could somebody clarify for me the subject of the topic ?
Speaking in another words - can I use the limetis library, built from the sources of the libparmetis library, to get partitioning ? Will it be the same to partitioning generated by "originally serial" Metis ?
Thank you.
P.S. I could find any differences between the source folders.
ParMETIS_V3_PartGeomKway crashes with version 4.0.2, while it ran OK with ParMETIS 3. After some investigation, I have determined that it is overstepping the bounds on the array emarkers at line 114 of xyzpart.c. Changing the line to
if (cand[i].key <= emarkers[j+1]) {
fixes the problem. This catches the case where cand[i].key = emarkers[nbins]. Please let me know if you need more information, or if my fix is incorrect.
The Metis mesh partitioning routine ParMETIS_V3_PartMeshKway seems unable to provide the partitioning vector for the nodes of a mesh.
To me, that seems weird because the serial Metis routine METIS PartMeshDual is capable of providing npart as the partitioning vector of nodes.
Is there any work-around solution to get partitioning vector for the nodes of a mesh while also let the metis routine run in parallel?
- Login to post comments