TPAoPI:A Thread Partitioning Approach Based on Procedure Importance in Speculative Multithreading

Thread partitioning is a core part of thread-level speculation (TLS) to achieve parallelization of irregular serial programs. The existing thread partitioning methods mostly adopt a unified partitioning scheme for all procedures in the same program, so that some procedures cannot obtain their best partition. This papers proposes a thread partitioning approach based on procedure importance (TPAoPI), which chooses to start with importance of procedures in irregular programs, adopting interdisciplinary research methods, creatively introducing the theory of importance in reliability theory, and calculates importance of procedures based on the characteristics of procedures. On the basis of the initial partition scheme, a manual intervention scheme suitable for the procedure is developed according to the importance of procedure, and a new performance evaluation model is used to theoretically evaluate obtained speedups, so that the best partitioning schemes of procedures are identified, exploring the intrinsic law that characteristics of procedures influence their best partitioning schemes. The paper does research from three aspects: calculating importance of procedures, generating the best partitioning schemes of procedures, and building a performance evaluation model, in order to fully exploit the potential parallelism for irregular programs. This paper provides a method for the research and applications of irregular programs parallelization and multi-core parallel computing. Experimental results show TPAoPI delivers an average 20.59% performance improvement than machine learning(ML)-based thread partition approach.

[1]  Martin C. Carlisle,et al.  Olden: parallelizing programs with dynamic data structures on distributed-memory machines , 1996 .

[2]  Manoj Franklin,et al.  A general compiler framework for speculative multithreading , 2002, SPAA '02.

[3]  Yinliang Zhao,et al.  GbA: A graph‐based thread partition approach in speculative multithreading , 2017, Concurr. Comput. Pract. Exp..

[4]  Bin Liu,et al.  A Novel Thread Partitioning Approach Based on Machine Learning for Speculative Multithreading , 2013, 2013 IEEE 10th International Conference on High Performance Computing and Communications & 2013 IEEE International Conference on Embedded and Ubiquitous Computing.

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

[6]  John Paul Shen,et al.  Mitosis: A Speculative Multithreaded Processor Based on Precomputation Slices , 2008, IEEE Transactions on Parallel and Distributed Systems.

[7]  Rudolf Eigenmann,et al.  Min-cut program decomposition for thread-level speculation , 2004, PLDI '04.

[8]  Pradeep Dubey,et al.  Improving graph partitioning for modern graphs and architectures , 2015, IA3@SC.

[9]  Michael F. P. O'Boyle,et al.  Partitioning streaming parallelism for multi-cores: A machine learning based approach , 2010, 2010 19th International Conference on Parallel Architectures and Compilation Techniques (PACT).

[10]  Yinliang Zhao,et al.  A Graph-Based Thread Partition Approach in Speculative Multithreading , 2016, 2016 IEEE 18th International Conference on High Performance Computing and Communications; IEEE 14th International Conference on Smart City; IEEE 2nd International Conference on Data Science and Systems (HPCC/SmartCity/DSS).

[11]  Yinliang Zhao,et al.  A Hybrid Samples Generation Approach in Speculative Multithreading , 2016, 2016 IEEE 18th International Conference on High Performance Computing and Communications; IEEE 14th International Conference on Smart City; IEEE 2nd International Conference on Data Science and Systems (HPCC/SmartCity/DSS).