Speculative parallelization needs rigor

Software speculative parallelization has shown effectiveness in parallelizing certain applications. Prior techniques have mainly relied on simple exploitation of heuristics for speculation. In this work, we introduce probabilistic analysis into the design of speculation schemes. In particular, by tackling applications that are based on Finite State Machine (FSM) which have the most prevalent dependences among all programs, we show that the obstacles for effective speculation can be much better handled with rigor. We develop a probabilistic model to formulate the relations between speculative executions and the properties of the target computation and inputs. Based on the formulation, we propose two model-based speculation schemes that automatically customize themselves with the best configurations for a given FSM and its inputs. The new technique produces substantial speedup over the state of the art.

[1]  Shmuel Tomi Klein,et al.  Parallel Huffman Decoding with Applications to JPEG Files , 2003, Comput. J..

[2]  Chen Ding,et al.  Software behavior oriented parallelization , 2007, PLDI '07.

[3]  Wei Lu,et al.  A Parallel Approach to XML Parsing , 2006, 2006 7th IEEE/ACM International Conference on Grid Computing.

[4]  Maurice Herlihy,et al.  Transactional Memory: Architectural Support For Lock-free Data Structures , 1993, Proceedings of the 20th Annual International Symposium on Computer Architecture.

[5]  Stephanie Forrest,et al.  Learning DFA representations of HTTP for protecting web applications , 2007, Comput. Networks.

[6]  Ming Yang,et al.  GPU-based NFA implementation for memory efficient high speed regular expression matching , 2012, PPoPP '12.

[7]  Vivek Sarkar,et al.  X10: an object-oriented approach to non-uniform cluster computing , 2005, OOPSLA '05.

[8]  Bo Wu,et al.  Probabilistic Models towards Optimal Speculation of Finite State Machine Applications , 2011 .

[9]  Mark A. Franklin,et al.  Parallel Simulated Annealing using Speculative Computation , 1991, IEEE Trans. Parallel Distributed Syst..

[10]  Arun Raman,et al.  Speculative parallelization using software multi-threaded transactions , 2010, ASPLOS XV.

[11]  James F. Allen,et al.  Towards Conversational Human-Computer Interaction , 2000 .

[12]  Diego R. Llanos Ferraris,et al.  New Scheduling Strategies for Randomized Incremental Algorithms in the Context of Speculative Parallelization , 2007, IEEE Transactions on Computers.

[13]  G. Ramalingam,et al.  Safe programmable speculative parallelism , 2010, PLDI '10.

[14]  Rajiv Gupta,et al.  Copy or Discard execution model for speculative parallelization on multicores , 2008, 2008 41st IEEE/ACM International Symposium on Microarchitecture.

[15]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[16]  Martín Abadi,et al.  Semantics of transactional memory and automatic mutual exclusion , 2011, TOPL.

[17]  Ying Zhang,et al.  Speculative p-DFAs for parallel XML parsing , 2009, 2009 International Conference on High Performance Computing (HiPC).

[18]  References , 1971 .

[19]  Boris Alexeev Minimal DFA for testing divisibility , 2004, J. Comput. Syst. Sci..

[20]  Xipeng Shen,et al.  Adaptive Software Speculation for Enhancing the Cost-Efficiency of Behavior-Oriented Parallelization , 2008, 2008 37th International Conference on Parallel Processing.

[21]  David I. August,et al.  Speculative parallelization using software multi-threaded transactions , 2010, ASPLOS 2010.

[22]  Charles N. Fischer On parsing context free languages in parallel environments. , 1975 .

[23]  Somesh Jha,et al.  Multi-byte Regular Expression Matching with Speculation , 2009, RAID.

[24]  Keshav Pingali,et al.  Optimistic parallelism requires abstractions , 2007, PLDI '07.

[25]  François Baccelli,et al.  On parsing arithmetic expressions in a multiprocessing environment , 2004, Acta Informatica.

[26]  Jianhui Li,et al.  A Hybrid Parallel Processing for XML Parsing and Schema Validation , 2008 .

[27]  Dean M. Tullsen,et al.  Mitosis compiler: an infrastructure for speculative threading based on pre-computation slices , 2005, PLDI '05.

[28]  Rajiv Gupta,et al.  SpiceC: scalable parallelism via implicit copying and explicit commit , 2011, PPoPP '11.

[29]  François Baccelli,et al.  An Asynchronous Parallel Interpreter for Arithmetic Expressions and Its Evaluation , 1986, IEEE Transactions on Computers.

[30]  James F. Allen,et al.  Toward Conversational Human-Computer Interaction , 2001, AI Mag..

[31]  Sanjeev Saxena,et al.  On Parallel Prefix Computation , 1994, Parallel Process. Lett..

[32]  Steven K. Thompson,et al.  Sample Size for Estimating Multinomial Proportions , 1987 .

[33]  Samuel Williams,et al.  The Landscape of Parallel Computing Research: A View from Berkeley , 2006 .

[34]  Matteo Frigo,et al.  The implementation of the Cilk-5 multithreaded language , 1998, PLDI.

[35]  Harry Bunt,et al.  Advances in Probabilistic and Other Parsing Technologies , 2000 .

[36]  Kunle Olukotun,et al.  The Atomos transactional programming language , 2006, PLDI '06.

[37]  Leo A. Meyerovich,et al.  Parallelizing the web browser , 2009 .

[38]  Antonia Zhai,et al.  The STAMPede approach to thread-level speculation , 2005, TOCS.