Large-scale Distributed Computing and Applications