International Journal of High Speed Computing
A Library Implementation of the Nano-Threads Programming Model
Euro-Par '96 Proceedings of the Second International Euro-Par Conference on Parallel Processing-Volume II
An introduction to Balder: an OpenMP run-time library for clusters of SMPs
IWOMP'05/IWOMP'06 Proceedings of the 2005 and 2006 international conference on OpenMP shared memory parallel programming
Optimizing c multithreaded memory management using thread-local storage
CC'05 Proceedings of the 14th international conference on Compiler Construction
A new technique for data privatization in user-level threads and its use in parallel applications
Proceedings of the 2010 ACM Symposium on Applied Computing
Thread-local storage extension to support thread-based MPI/OpenMP applications
IWOMP'11 Proceedings of the 7th international conference on OpenMP in the Petascale era
Preserving the original MPI semantics in a virtualized processor environment
Science of Computer Programming
Hi-index | 0.00 |
This paper presents the alternatives available to support threadprivate data in OpenMP and evaluates them. We show how current compilation systems rely on custom techniques for implementing thread-local data. But in fact the ELF binary specification currently supports data sections that become threadprivate by default. ELF naming for such areas is Thread-Local Storage (TLS). Our experiments demonstrate that implementing threadprivate based on the TLS support is very easy, and more efficient. This proposal goes in the same line as the future implementation of OpenMP on the GNU compiler collection. In addition, our experience with the use of threadprivate in OpenMP applications shows that usually it is better to avoid it. This is because threadprivate variables reside in common blocks and they impede the compiler to fully optimize the code. So it is better to keep threadprivate as a temporary technique only to ease porting MPI codes to OpenMP.