Nimble Algorithms for Cloud Computing

Cloud computing is a new paradigm where data is stored across multiple servers and the goal is to compute a function of all the data. We focus on a simple setting, where each server uses polynomial time and space, but communication among servers is more expensive and is ideally bounded by a polylogarithmic function of the input size. We dub algorithms that satisfy these types of resource bounds as {\it nimble}. The main contribution of the paper is to develop nimble algorithms for several areas which involve massive data and for that reason have been extensively studied in the context of streaming algorithms. The areas are approximation of frequency moments, counting bipartite homomorphisms, rank- approximation to a matrix, and -means clustering. For frequency moments, we use a new importance sampling technique based on high powers of the frequencies. Estimating the -th frequency moment for in the cloud setting has a communication lower bound of . We achieve a nearly matching upper bound of improving upon previous results of Woodruff and Zhang. In the streaming model, this problem has a space lower bound of . We reduce the problem of counting homomorphisms to estimating implicitly defined frequency moments. For low-rank approximation of an matrix , , in which is held by the -th server, we avoid communication dependent on in streaming lower bounds by allowing each party to locally output the projection of his/her input matrix onto the same -dimensional subspace found by the algorithm, so that the sum of the projections is a rank- approximation to . For clustering, we use our rank- approximation and the small coreset of Chen of size at most polynomial in the dimension. We show that the computation of the coreset can be done by a nimble algorithm.
View on arXiv