DocumentCode :
1902783
Title :
Automatically exploiting cross-invocation parallelism using runtime information
Author :
Jialu Huang ; Jablin, T.B. ; Beard, S.R. ; Johnson, N.P. ; August, D.I.
Author_Institution :
Princeton Univ., Princeton, NJ, USA
fYear :
2013
fDate :
23-27 Feb. 2013
Firstpage :
1
Lastpage :
11
Abstract :
Automatic parallelization is a promising approach to producing scalable multi-threaded programs for multicore architectures. Many existing automatic techniques only parallelize iterations within a loop invocation and synchronize threads at the end of each loop invocation. When parallel code contains many loop invocations, synchronization can easily become a performance bottleneck. Some automatic techniques address this problem by exploiting cross-invocation parallelism. These techniques use static analysis to partition iterations among threads to avoid crossthread dependences. However, this partitioning is not always achievable at compile-time, because program input determines dependence patterns at run-time. By contrast, this paper proposes DOMORE, the first automatic parallelization technique that uses runtime information to exploit additional cross-invocation parallelism. Instead of partitioning iterations statically, DOMORE dynamically detects crossthread dependences and synchronizes only when necessary. DOMORE consists of a compiler and a runtime library. At compile time, DOMORE automatically parallelizes loops and inserts a custom runtime engine into programs. At run-time, the engine observes dependences and synchronizes iterations only when necessary. For six programs, DOMORE achieves a geomean loop speedup of 2.1× over parallel execution without cross-invocation parallelization and of 3.2 × over sequential execution on eight cores.
Keywords :
multi-threading; multiprocessing systems; parallel processing; program compilers; synchronisation; DOMORE technique; automatic parallelization; compiler; cross-invocation parallelism; crossthread dependency; geomean loop speedup; iteration partition; loop invocation; multicore architecture; multithreaded program; parallel code; runtime information; runtime library; static analysis; thread synchronization; Arrays; Engines; Instruction sets; Parallel processing; Runtime; Schedules; Synchronization;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Code Generation and Optimization (CGO), 2013 IEEE/ACM International Symposium on
Conference_Location :
Shenzhen
Print_ISBN :
978-1-4673-5524-7
Type :
conf
DOI :
10.1109/CGO.2013.6495001
Filename :
6495001
Link To Document :
بازگشت