Graph Reachability on Parallel Many-Core Architectures