the-data-lab / GraphOne

"GraphOne: A Data Store for Real-time Analytics on Evolving Graphs", Usenix FAST'19
GNU General Public License v3.0
58 stars 31 forks source link

Error when running "make" #4

Closed xiaogouaiyaotou closed 5 years ago

xiaogouaiyaotou commented 5 years ago

Hello, when I was running make command, it showed me an error below. And I have already finished tbb's install. Could you tell me what's going on with it? And what's tbb version you uesd? I think it is possible that we install different tbb version. Thank you! WeChat3e6c58e0bd4a0f2b808d1c47840a9902 WeChat33dc6085aa9c4800be105d61b369ce74

pradeep-k commented 5 years ago

You can check if the problem is due to tbb or not by inlcuding TBB in it by changing CMakeLists.txt

Change this line

 set(COMPILE_FLAGS_COMMON "-std=c++1y -O3 -DOVER_COMMIT -DTBB -DPLAIN_GRAPH -fopenmp")

to this line

set(COMPILE_FLAGS_COMMON "-std=c++1z -O3 -DOVER_COMMIT -DPLAIN_GRAPH -fopenmp")

And this line

set(LINK_FLAGS_COMMON "-ltbb -fopenmp")

to this line

set(LINK_FLAGS_COMMON "-fopenmp")

And, then follow standard procedure to generate the make files and compile it.

I am away to my machine where it is developed. If above this doesn't work, I can check the tbb version and will let you know. But please inform if above changes worked or not.

xiaogouaiyaotou commented 5 years ago

Yes, it works! But I still have a naive question. When I was using an edge list file that I download from "http://snap.stanford.edu/data/ego-Twitter.html" as an input file to run the command in the second example you gave. It gave me a "segment fault" error response. WeChatb4a706bc27f8be52ea74d15143f48bea Is there some wrong with my command input or there's trouble in my input format? Below is the input file. WeChat89a10bbdc4e4172604741c07bee125ce Thank you very much.

pradeep-k commented 5 years ago

The original data is not in id format. You specified number of vertex as 81306, but looking into the text file data, edges contains number larger than 81306. You need the other option, the one which we used for lanl netfow data.

xiaogouaiyaotou commented 5 years ago

I am not sure is that the correct reason. If I use a dataset like this one: WeChat02c8a1ac261d4e14992dd87064910a3e This data file includes 2 ids of nodes. It also shows the same error. Could you provide me some download link of the dataset that can accept by this? I want to confirm is the trouble from my datasets or my command input.

pradeep-k commented 5 years ago

Sorry for the delay. I was away as I told you. Can you let me know how to download this live journal data. I can check, and let you know the reason.

pradeep-k commented 5 years ago

You can generate text graph files using generator https://github.com/the-data-lab/gstore/tree/master/graph500-generator. README is updated for your reference.

I just now created using this generator, and checked the master branch of GraphOne and worked perfectly. So, requesting you to again share the livejournal dataset, and I can try on my own.

Likely reason for your failures:

If you are still facing some issues, you can change -O3 to -g in CMakeLists.txt, and repeat the compilation process. Then, you can either debug, or generate a core and send it to me.

pradeep-k commented 5 years ago

https://github.com/the-data-lab/GraphOne/commit/0208947fd5cd48dd2fdbc8bcbd582d472d888c29 fixed the # character in data file issue.

xiaogouaiyaotou commented 5 years ago

This is the link of the live journal http://snap.stanford.edu/data/soc-LiveJournal1.html . I have changed -O3 to -g in that file. The command I input is below: d1bd7b1d100c39c0362d66abb95d496 About the generator, the command I used is: 6345de1f3906c43703bd1182bb3b5a6 a5744584dc38e32eacd8cc8f9015716 And whatever the edge list file I input or the binary edge list file generate in the generator you provide, they all showed segmentation fault. Do you is it possible that my machine lacks somethings or some restrictions didn't open cause this problem?

pradeep-k commented 5 years ago

What is the compiler you are using? Is is other than gcc? What is the lscpu command output? Can you add -t16 or -t8 or any number of thread you are interested in? It is possible that the program is not able to take the correct value of threads, assigns 0 instead (that is what i observed today when working in another machine, and the number of thread was 63, strange behavior).

In the worst case, you can debug using gdb.

pradeep-k commented 5 years ago

I am able to run on live journal as well (in the latest code base where options have changed, see README again):

[hi04] ./graphone32 -i ~/pscr/data/ -v 4847571
input dir = /sciclone/home20/pkumar/pscr/data/
Global vcount = 4847571
Threads Count = 0        <================= This was the error that I was taking about
huge page alloc failed while reading input dir
Reading 1 file time = 0.433507
total size = 1080598042
  Read/alloc time = 0.434614
Segmentation fault (core dumped)
[hi04] ./graphone32 -i ~/pscr/data/ -v 4847571 -t16
input dir = /sciclone/home20/pkumar/pscr/data/
Global vcount = 4847571
Threads Count = 16
huge page alloc failed while reading input dir
Reading 1 file time = 0.439948
total size = 1080598042
  Read/alloc time = 0.441206
  Batching time = 365.355 Edges = 68993777
Batch Update Time = 365.796
Make graph time = 366.116
static View creation = 0.545228
Top down = 1 Level = 1 Frontier Count = 436 Time = 0.142716
Top down = 1 Level = 2 Frontier Count = 49735 Time = 0.0484509
Top down = 1 Level = 3 Frontier Count = 1100212 Time = 0.139938
Top down = 1 Level = 4 Frontier Count = 2584350 Time = 0.778171
Top down = 1 Level = 5 Frontier Count = 962497 Time = 0.761668
Top down = 1 Level = 6 Frontier Count = 127863 Time = 0.167578
Top down = 1 Level = 7 Frontier Count = 16409 Time = 0.0292001
Top down = 1 Level = 8 Frontier Count = 2058 Time = 0.0147209
Top down = 1 Level = 9 Frontier Count = 350 Time = 0.0132859
Top down = 1 Level = 10 Frontier Count = 39 Time = 0.013123
Top down = 1 Level = 11 Frontier Count = 3 Time = 0.013103
Top down = 1 Level = 12 Frontier Count = 0 Time = 0.013083
BFS Time = 2.13672
 Level = 1 count = 1
 Level = 2 count = 436
 Level = 3 count = 49735
 Level = 4 count = 1100212
 Level = 5 count = 2584350
 Level = 6 count = 962497
 Level = 7 count = 127863
 Level = 8 count = 16409
 Level = 9 count = 2058
 Level = 10 count = 350
 Level = 11 count = 39
 Level = 12 count = 3
BFS complex = 2.37786
xiaogouaiyaotou commented 5 years ago

Thank you, it works very well now! The reason is not because of the wrong thread. That's because I downloaded a modified version from someone else and his code has some troubles. In addition, I found something that might make your document more perfect. For the parameter 'j', I think maybe you should provide what kind of algorithm it represents in your ReadMe.And another is, your parameter 'V' in your command explained as "vertex count". I think it has a little bit confusing for me. Because for some datasets with vertex labels greater than the vertices count, it will show "segmentation fault" or some other errors when I execute the command. I don't know if you know this. And thank you again for help me.

pradeep-k commented 5 years ago

Thanks for confirming that it works now.

Documentation is on-going work. Hopefully, I will be able to improve it from time to time based on user's feedback, like the one you gave. I will be updating it right away.

pradeep-k commented 5 years ago

Updated the README, see the commit logs at https://github.com/the-data-lab/GraphOne/commit/51290f0301d101c15da93f9cf55ac087af166666

and closing the issue. Raise separate issue for any problems with documentation.