RT info:eu-repo/semantics/article T1 An OpenMP Extension that Supports Thread-Level Speculation A1 Aldea López, Sergio A1 Estébanez López, Álvaro A1 González Escribano, Arturo A1 Llanos Ferraris, Diego Rafael AB OpenMP directives are the de-facto standard for shared-memory parallel programming. However, OpenMP does not guarantee the correctness of the parallel execution of a given loop if runtime data dependences arise. Consequently, many highly-parallel regions cannot be safely parallelized with OpenMP due to the possibility of a dependence violation. In this paper, we propose to augment OpenMP capabilities, by adding thread-level speculation (TLS) support. Our contribution is threefold. First, we have defined a new speculative clause for variables inside parallel loops. This clause ensures that all accesses to these variables will be carried out according to sequential semantics. Second, we have created a new, software-based TLS runtime library to ensure correctness in the parallel execution of OpenMP loops that include speculative variables. Third, we have developed a new GCC plugin, which seamlessly translates our OpenMP speculative clause into calls to our TLS runtime engine. The result is the ATLaS C Compiler framework, which takes advantage of TLS techniques to expand OpenMP functionalities, and guarantees the sequential semantics of any parallelized loop. PB IEEE Press YR 2016 FD 2016 LK http://uvadoc.uva.es/handle/10324/29108 UL http://uvadoc.uva.es/handle/10324/29108 LA eng NO IEEE Transactions on Parallel and Distributed Systems, 27(1), pp. 78-91, January 2016, ISSN 1045-9219 NO Producción Científica DS UVaDOC RD 22-dic-2024