Harnessing parallelism in multicore clusters with the All-Pairs, Wavefront, and Makeflow abstractions