Speculative Program Parallelization with Scalable and Decentralized Runtime Verification

作者: Aravind Sukumaran-Rajam , Juan Manuel Martinez Caamaño , Willy Wolff , Alexandra Jimborean , Philippe Clauss

DOI: 10.1007/978-3-319-11164-3_11

关键词: Automatic parallelizationSoftware transactional memoryMulti-core processorParallel computingScheduleScalabilityComputer scienceSpeculative multithreadingRuntime verificationSerial code

摘要: Thread Level Speculation (TLS) is a dynamic code parallelization technique proposed to keep the software in pace with advances hardware, particular, automatically parallelize programs take advantage of multi-core processors. Being speculative, frameworks this type unavoidably rely on verification systems that are similar transactional memory, and require voluminous inter-thread communications or centralized registering performed memory accesses. The high degree communication against basic principles performance parallel computing, does not scale an increasing number processor cores, yields weak performance. Moreover, TLS often apply one unique strategy consisting slicing loop into several speculative threads. Such also since loops original serial necessarily also, it well-known schedule must promote data locality which crucial obtaining good This situation appeals scalable decentralized new strategies dynamically generate efficient resulting from advanced optimizing parallelizing transformations. transformations more complex system allows intra-thread iterations be reordered. In paper, we propose kind, based model built at runtime predicting linear behavior. part Apollo parallelizer adaptation for usage polyhedral model.

参考文章(22)
Saman Amarasinghe, Srikrishna Devabhaktuni, Derek Bruening, Softspec: Software-based Speculative Parallelism ,(2000)
David Padua, None, Encyclopedia of Parallel Computing Springer. ,(2011)
Martin Süßkraut, Stefan Weigert, Ute Schiffel, Thomas Knauth, Martin Nowack, Diogo Becker de Brum, Christof Fetzer, Speculation for Parallelizing Runtime Checks international symposium on stabilization safety and security of distributed systems. ,vol. 5873, pp. 698- 710 ,(2009) , 10.1007/978-3-642-05118-0_48
Easwaran Raman, Neil Va hharajani, Ram Rangan, David I. August, Spice: speculative parallel iteration chunk execution symposium on code generation and optimization. pp. 175- 184 ,(2008) , 10.1145/1356058.1356082
Cosmin E. Oancea, Alan Mycroft, Tim Harris, A lightweight in-place implementation for software thread-level speculation acm symposium on parallel algorithms and architectures. pp. 223- 232 ,(2009) , 10.1145/1583991.1584050
Troy A. Johnson, Rudolf Eigenmann, T. N. Vijaykumar, Speculative thread decomposition through empirical optimization Proceedings of the 12th ACM SIGPLAN symposium on Principles and practice of parallel programming - PPoPP '07. pp. 205- 214 ,(2007) , 10.1145/1229428.1229474
Uday Bondhugula, Albert Hartono, J. Ramanujam, P. Sadayappan, A practical automatic polyhedral parallelizer and locality optimizer Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation - PLDI '08. ,vol. 43, pp. 101- 113 ,(2008) , 10.1145/1375581.1375595
Lawrence Rauchwerger, David Padua, The LRPD test Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation - PLDI '95. ,vol. 30, pp. 218- 232 ,(1995) , 10.1145/207110.207148
Ali-Reza Adl-Tabatabai, Brian T. Lewis, Vijay Menon, Brian R. Murphy, Bratin Saha, Tatiana Shpeisman, Compiler and runtime support for efficient software transactional memory ACM SIGPLAN Notices. ,vol. 41, pp. 26- 37 ,(2006) , 10.1145/1133255.1133985