Distributed Computing and Combinatorial Topology