最近需要使用ligra平台来进行图计算改进的验证,从github上下载了ligra之后,简单的看了下readme,就开始了运行,还是遇到了许多问题,由于readme说的不是很清晰,而且ligra的参数鲁棒性也不是很好,不如之前的gap平台,但是运行稳定性和性能都是很好的,也是诸多顶会论文采用的对比平台,所以尽管用着不熟练,但还是要一步步摸索。
今天讲的问题是如何输入binary格式的文件,readme里只介绍了binary文件的生成,没有说如何将其作为输入文件来运行。使用adjtobinary将adj格式数据转换成.idx,.adj 和.config三个文件后(需要注意的是顺序不能打乱),我本以为需要使用这三个文件做为输入来运行即如下格式:
./pagerank -b /路径/name.idx /路径/name.adj /路径/name.config
但是如此输入后会报file size wrong的错,grep找了一下报错的来源发现是在IO.h文件里,经过一番探索知道了默认的输入格式为
./pagerank -b /路径/name
程序会自动读取三个文件,虽然原因比较简单,但是也耗费了我小半天的时间,不过好消息是binary文件节省了一半的运行时内存,能够愉快的跑更大的数据集了!!!