Implementation Optimization Tricks
adopt bidirectional csr(better memory access)
adopt tcmalloc(thread-local cache memory) to replace glibc's malloc
adopt SFMT(simd fast rand generator), and reuse the allocated memory
adopt BinarySearchForGallopingSearchAVX2, using avx2 and cache pre-fetching instructions (256-bit operations) to implement binary search
single pair query
./bprw soc-LiveJournal1 0 1
./bprw-std soc-LiveJournal1 0 1
./flpmc -d soc-LiveJournal1 -x 0 -y 1 -c 0.6
./bflpmc soc-LiveJournal1 0 1
all pair profiling
./bprw-ap ca-GrQc
./flpmc-ap ca-GrQc
./bflpmc-ap ca-GrQc
mkdir build
cd build
cmake ..
make -j
better heap: support incre-key, max-key, unique pair, residual sum update
sparse hash-map: mainly better find and insert, possibly supporting multi-threading environment
Random Pair Input Serialization/DeSerialization
output results to verify correctness for 4 small datasets
consider high degree random pairs(dense local structure) and normal random pairs