Distributed computing and learning