Extending Nanos RTL for OpenMP Task Support
Extending Nanos RTL for OpenMP Task Support. Proceedings of ACACES 2007. Advanced Computer Architecture and Compilation for Embedded Systems. L'Aquila, ITALY.
Tasks are a new feature which will be included in the OpenMP 3.0 future standard. This new feature will allow exploiting new types of parallelism that can not be exploited with the current standard such as recursive traversal of data structures or unbounded loops. A task is defined as a unit of work that can be deferred and executed as an independent piece of code.
In this paper we describe the experience of extending an existing programming model environment (the Nano-threads library and the Mercurium compiler) in order to support this new feature. Nano-threads library is an OpenMP Run Time Library (RTL) which gives support to compiler transformations, offering services such as fork/join, thread synchronization, dependence control, etc. Mercurium compiler is a source-to-source compiler which translates OpenMP directives into a sequence of library calls.
This paper is focused on the Nano-threads (Nanos) RTL modifications. We discuss about the main topics that appear during the implementation process and different decisions that have been taken in order to implement the new OpenMP Task specification.