This is the code for I/O-Efficient Butterfly Counting at Scale.
The code of IOBufs is at DynamicBatch fold.
CUDA Toolkit 11.6; g++ 7.5.0;
compile the code
$ make -j
run the code
$ ./butterfly.bin /data/dataset/dataset/livejournal/ GPU 100 edge-centric 12000000000 108 -1 adaptiveRecy 32 blockForSmallWorkload
Input parameter is
- input graph folder
- platform: CPU or GPU
- partition strategy: radix, random or range
- variant: edge-centric or wedge-centric
- memory size
- thread num (CPU)/ block num(GPU)
- batch num (automatically generated when setting -1)
- Hashtable recycle option for GPU: adaptiveRecy, scanHashtableRecy or scanWedgeRecy
- subwarp size for block-level parallelism in GPU
- benchmark warp and block for small workload when setting blockForSmallWorkload