Ligra: A Lightweight Graph Processing Framework for Shared Memory