Communication Complexity and Parallel Computing