DocumentCode
1878241
Title
Loop level speculation in a task based programming model
Author
Gayatri, Rahulkumar ; Badia, R.M. ; Aygaude, Eduard
Author_Institution
Barcelona Supercomput. Center, Barcelona, Spain
fYear
2013
fDate
18-21 Dec. 2013
Firstpage
39
Lastpage
48
Abstract
Uncountable loops (such as while loops in C) and if-conditions are some of the most common constructs in programming. While-loops are widely used to determine the convergence in linear algebra algorithms or goal finding problems from graph algorithms, to name a few. In general while-loops are used whenever the loop iteration space, the number of iterations a loop executes is unknown. Usually in while-loops, the execution of the next iteration is decided inside the current loop iteration (i.e. the execution of iteration i depends on the values computed in iteration i-1). This precludes their parallel execution in today´s ubiquitous multi-core architectures. In this paper a technique to speculatively create parallel tasks from the next iterations before the current one completes is proposed. If consecutive loop-iterations are only control dependent, then multiple iterations can be executed simultaneously; later in the execution path, the runtime system will decide to either commit the results of such speculatively executed iterations or undo the changes made by them. Data dependences within or between non-speculative and speculative work are honored to guarantee correctness. The proposed technique is implemented in SMPSs, a task-based dataflow programming model for shared-memory multiprocessor architectures. The approach is evaluated on a set of applications from graph algorithms and linear algebra. Results are promising with an average increase in the speedup of 1.2x with 16 threads when compared to non speculative execution of the applications. The increase in the speedup is significant, since the performance gain is achieved over an already parallelized version of the benchmarks.
Keywords
graph theory; linear algebra; parallel programming; graph algorithms; linear algebra algorithms; loop iteration space; loop level speculation; parallel execution; task based programming model; task-based dataflow programming model; ubiquitous multicore architectures; Cascading style sheets; Computer architecture; Instruction sets; Parallel processing; Programming; Runtime; Synchronization; Iteration space; Programming Models; SMPSs; Speculation;
fLanguage
English
Publisher
ieee
Conference_Titel
High Performance Computing (HiPC), 2013 20th International Conference on
Conference_Location
Bangalore
Type
conf
DOI
10.1109/HiPC.2013.6799132
Filename
6799132
Link To Document