2016 · 26 citations · 36 references
ComputingComputer ScienceData StructuresParallel AlgorithmsParallel ComputingData ParallelismNearest Neighbor SearchParallel Data StructuresParallel DatabasesQuery ProcessingRange SearchingMapreduce AlgorithmsNearest Neighbor Data StructuresNearest Neighbor QueriesParallel CommunicationParallel Nearest Neighbor SearchParallel Range SearchingRange QueriesRange Trees
With the massive amounts of data available today, it is common to store and process data using multiple machines. Parallel programming platforms such as MapReduce and its variants are popular frameworks for handling such large data. We present the first provably efficient algorithms to compute, store, and query data structures for range queries and approximate nearest neighbor queries in a popular parallel computing abstraction that captures the salient features of MapReduce and other massively parallel communication (MPC) models. In particular, we describe algorithms for $kd$-trees, range trees, and BBD-trees that only require O(1) rounds of communication for both preprocessing and querying while staying competitive in terms of running time and workload to their classical counterparts. Our algorithms are randomized, but they can be made deterministic at some increase in their running time and workload while keeping the number of rounds of communication to be constant.
36
Sanjay Ghemawat · Communications of the ACM · 2008 · 18.5K citations · Full text
The Hadoop Distributed File System
Konstantin V. Shvachko, Hairong Kuang, Sanjay Radia et al. · 2010 · 4.8K citations
Spark: cluster computing with working sets
Matei Zaharia, Mosharaf Chowdhury, Michael J. Franklin et al. · 2010 · 4.2K citations
A bridging model for parallel computation
Leslie G. Valiant · Communications of the ACM · 1990 · 3.7K citations · Full text
Grzegorz Malewicz, Matthew H. Austern, Aart J. C. Bik et al. · 2010 · 3.5K citations