RT info:eu-repo/semantics/article T1 Squashing Alternatives for Software-Based Speculative Parallelization A1 García Yágüez, Álvaro A1 Llanos Ferraris, Diego Rafael A1 González Escribano, Arturo K1 Informática K1 Thread-level speculation K1 Optimistic parallelization K1 loop-based parallelization K1 1203 Ciencia de Los Ordenadores K1 3304 Tecnología de Los Ordenadores AB Speculative parallelization is a runtime technique that optimistically executes sequential code in parallel, checking that no dependence violations arise. In the case of a dependence violation, all mechanisms proposed so far either switch to sequential execution, or conservatively stop and restart the offending thread and all its successors, potentially discarding work that does not depend on this particular violation. In this work we systematically explore the design space of solutions for this problem, proposing a new mechanism that reduces the number of threads that should be restarted when a data dependence violation is found. Our new solution, called exclusive squashing, keeps track of inter-thread dependencies at runtime, selectively stopping and restarting offending threads, together with all threads that have consumed data from them. We have compared this new approach with existent solutions on a real system, executing different applications with loops that are not analyzable at compile time and present as much as 10% of inter-thread dependence violations at runtime. Our experimental results show a relative performance improvement of up to 14%, together with a reduction of one-third of the numbers of squashed threads. The speculative parallelization scheme and benchmarks described in this paper are available under request. PB IEEE SN 0018-9340 YR 2014 FD 2014 LK https://uvadoc.uva.es/handle/10324/70432 UL https://uvadoc.uva.es/handle/10324/70432 LA eng NO IEEE Transactions on Computers, Vol. 63, no. 7, July 2014, pags. 1826-1839, ISSN 0018-9340 NO Producción Científica DS UVaDOC RD 24-nov-2024