Closed bibrakc closed 6 years ago
Hi. Since your downloaded file is in WebGraph format, you need to write a program using the WebGraph library to decode the downloaded data and write out the edges in binary (i.e. each edge consists of two 32-bit integers representing source and destination, and an optional weight if you need to run algorithms on a weighted graph). Note that the byte orders of Java and C++ programs on your machine may be different (big-endians vs. little-endians) so you might need to pay attention to that.
Thanks for that! Ok so what I did is that I wrote a simple C program that reads from the graph an ASCII file and writes it into a binary file, as required by Gemini.
Here is that code: here The file src/ASCII2Bin.c contains the converter The file data/scale16_s.mm is the input to it, it has 65535 vertices and 1818848 edges
When I run: mpirun -n 1 ./sssp ./scale16_s.bin 65535 39
It seems to estimate the number of edges correctly. Further it gives the following output and halts with this error message:
mpirun noticed that process rank 0 with PID 22558 on node tulip exited on signal 6 (Aborted).
Hi, we assume the vertices are numbered from 0. So you need to replace 65535 with 65536 as the number of vertices and then it should work.
That helps!
I changed the code to do a decrement of vertex ids when I read them from the file, so it offsets it. The file that I am using starts from index 1 not 0.
I have downloaded the graph files from here
I used cnr-2000 file which has 325557 nodes (vertices) and I get the following output (error) for pagerank:
Seems like there are at least two problems:
1) It estimates that the number of Edges is 145605, whereas on the database website it says that arcs (edges) are 3216152
2) src = 1112356484 <-- is certainly out of bounds and therefore there is a segmentation fault.
Any idea what is going on and how to fix it?
Or perhaps GeminiGraph needs some other format in which the graph is stored. Could you please specify as to what that format is?