2024-03-29T05:40:49Zhttps://uvadoc.uva.es/oai/requestoai:uvadoc.uva.es:10324/291082021-06-23T11:17:50Zcom_10324_1165com_10324_931com_10324_894col_10324_1335
An OpenMP Extension that Supports Thread-Level Speculation
Aldea López, Sergio
Estébanez López, Álvaro
González Escribano, Arturo
Llanos Ferraris, Diego Rafael
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.
2018-03-16T19:12:15Z
2018-03-16T19:12:15Z
2018-03-16T19:12:15Z
2016
info:eu-repo/semantics/article
IEEE Transactions on Parallel and Distributed Systems, 27(1), pp. 78-91, January 2016, ISSN 1045-9219
http://uvadoc.uva.es/handle/10324/29108
10.1109/TPDS.2015.2393870
eng
http://ieeexplore.ieee.org/document/7014262/
info:eu-repo/semantics/restrictedAccess
http://creativecommons.org/licenses/by/4.0/
IEEE Press
Attribution 4.0 International
IEEE Press