Distributed computing problems