122
87

Nimble Algorithms for Cloud Computing

Abstract

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-kk approximation to a matrix, and kk-means clustering. For frequency moments, we use a new importance sampling technique based on high powers of the frequencies. Estimating the kk-th frequency moment for k>2k>2 in the cloud setting has a communication lower bound of Ω(sk1)\Omega(s^{k-1}). We achieve a nearly matching upper bound of O(sk)O(s^k) improving upon previous results of Woodruff and Zhang. In the streaming model, this problem has a space lower bound of n12/kn^{1-2/k}. We reduce the problem of counting homomorphisms to estimating implicitly defined frequency moments. For low-rank approximation of an n×dn \times d matrix A=A1+...+AsA = A_1 + ... + A_s, n>>dn >> d, in which AiA_i is held by the ii-th server, we avoid communication dependent on nn in streaming lower bounds by allowing each party to locally output the projection of his/her input matrix AiA_i onto the same kk-dimensional subspace found by the algorithm, so that the sum of the projections is a rank-kk approximation to AA. For clustering, we use our rank-kk 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
Comments on this paper