Open aavash1 opened 2 years ago
Dear @aavash1,
Apparently, there has been a segmentation fault in the native implementation of KaHyPar to which the Java library delegates the hypergraph partitioning. With the information you sent me, I cannot say more for the moment. In particular, I cannot identify where in the code the error occurred.
Is the hypergraph given to JKaHyPar given as an input file? If so, could you please attach your input hypergraph? If you programmatically created the hypergraph (with the builder provided by JKaHyPar), could you give me your code? This would allow me to reproduce your bug to investigate the error.
@romainwallon the hypergraph is given as an input file. Initially, the graph was a road network dataset of SanFrancisco, extracted from the site: https://www.cs.utah.edu/~lifeifei/SpatialDataset.htm with edge dataset containing [edgeId | source_vertex_id | destination_vertex_id | edge_length]. Then I converted that to hypergraph format with 1st line containing information of the number of hyperedges and number of vertices. And the remaining line stores the source and destination vertex information. In this case, I am treating every edge as a hyperedge. Please check the dataset here. SFEdgeTest.zip
Thanks @aavash1 for the file. I will try to find what is wrong when partitioning this hypergraph.
@romainwallon did you manage to tackle the error if it occurred on your machine? I am still not able to figure out the issue!
I will be uploading my code, just in case if you want to see my code. Just basic code to read the road network graph file and partition it. HypergraphUsingJHMetis.zip the main class is located in [src>normalPackage>HypergraphPartition.java] Datasets are located in [src>Resources.Datasets] CalUnweighted.hgr=California dataset OldenUnweighted.hgr=Oldenburg dataset SFUnweighted.hgr=San Francisco dataset TestRM.hgr=Test dataset created by me
Dear @aavash1,
Thanks for sending your files.
I am sorry for the delay. I am currently facing another issue on my computer, as I am now using a Mac with Apple Silicon, and I have some troubles compiling the native KaHyPar library for this architecture (see https://github.com/kahypar/kahypar/issues/98). I need to find another machine to be able to run JKaHyPar and reproduce the bug. I will keep you inform as soon as I can run JKaHyPar again.
@romainwallon Thank you for looking on to this issue.
@romainwallon Could you please try the steps I outlined in https://github.com/kahypar/kahypar/issues/98? If that works I'll try to integrate that more consistently.
Dear @aavash1,
Sorry for this late answer.
I made some tries on my side, and there is indeed a problem when running the partitioning on your graph.
I did not get exactly the same error though: I get a SIGBUS
instead.
This may be due to the fact that I do not use the same OS.
However, I think the issue does not come from JKaHyPar
, as running KaHyPar
on your hypergraph with the same configuration also produces a SIGBUS
.
Could you try running the original implementation of KaHyPar
on your hypergraph to see if you indeed have the same issue?
Hey @aavash1 and @romainwallon , I just took a look at this and I think I found the issue.
The SFEdgeTest.hgr
hypergraph is malformed, because vertex ids start at 0
instead of 1
. Here's the hypergraph header line and the first 3 hyperedges:
223001 174956
0 5
0 2
0 1
Why this results in a SIGBUS
though is still a mystery to me and I'd have to investigate further.
@romainwallon I am using the road network dataset and converted the edge dataset with the corresponding format. I am treating each edge as a hyperedge. However, I ran into the error below. Could you please look into this error? The number of hyperEdges=223001 and vertices=174956