Synchronous Parallel Computation: A Survey