2011 · 48 citations · 38 references
ComputingComputer EngineeringComputer ScienceAlgorithmsParallel AlgorithmsParallel ComputingConcurrent ProgrammingData ParallelismData-flow AnalysisParallel Algorithm DesignParallel ComputationParallel Programming ModelsData Dependence AnalysisDependence AnalysisDeterministic Parallel AlgorithmsDeterministic Parallel ProgrammingDynamic DependenceIncremental ComputationParallel ProgrammingRevisions
Parallel or incremental versions of an algorithm can significantly outperform their counterparts, but are often difficult to develop. Programming models that provide appropriate abstractions to decompose data and tasks can simplify parallelization. We show in this work that the same abstractions can enable both parallel and incremental execution. We present a novel algorithm for parallel self-adjusting computation. This algorithm extends a deterministic parallel programming model (concurrent revisions) with support for recording and repeating computations. On record, we construct a dynamic dependence graph of the parallel computation. On repeat, we reexecute only parts whose dependencies have changed.
38
Cormac Flanagan, Stephen N. Freund · 2009 · 671 citations
Optimistic parallelism requires abstractions
Milind Kulkarni, Keshav Pingali, Bruce Walter et al. · 2007 · 447 citations
Marek Olszewski, Jason Ansel, Saman Amarasinghe · 2009 · 380 citations
Jason Ansel, Cy Chan, Yee Lok Wong et al. · 2009 · 360 citations
Pramod Bhatotia, Alexander Wieder, Rodrigo Rodrigues et al. · 2011 · 298 citations