CRbS:A Code Reordering Based Speeding-up Method of Irregular Loops on CMP
暂无分享,去创建一个
CMP (chip multiprocessor) used to improve throughput and speed up multithreaded applications is becoming more and more commonplace. However, it is difficult for compilers to automatically parallelize irregular single-threaded applications which have complex data dependence caused by non-linear subscripts, pointers, or function calls within code sections. Loops iterations can be easily split into threads and they account for a large fraction of the program execution time for many classes of applications while there are so many data dependences between iterations for a loop. Fortunately, for some loops the inter-thread signaling needed for synchronization can be minimized both by code optimization. In order to reduce the communication cost between the iterations, this paper proposes a code reordering method to speeding up the irregular loops. In this method, we adopt code reordering to cutting down the data-dependence by reordering the key codes that may cause data-dependence. The experimental results shows that, compared to the P-Slice method, we can achieve a little better performance only based on the code reordering method and significant performance improvement about 10.6% when combine the two methods.
[1] John Paul Shen,et al. Mitosis: A Speculative Multithreaded Processor Based on Precomputation Slices , 2008, IEEE Transactions on Parallel and Distributed Systems.
[2] Aniello Cimitile,et al. Evaluating model checking for cyber threats code obfuscation identification , 2018, J. Parallel Distributed Comput..
[3] T.G. Venkatesh,et al. Analytical Derivation of Concurrent Reuse Distance Profile for Multi-Threaded Application Running on Chip Multi-Processor , 2019, IEEE Transactions on Parallel and Distributed Systems.