Influence in OpenMP =================== .. index:: OpenMP Many OmpSs and StarSs ideas have been introduced into the OpenMP programming model. The next figure summarizes our contributions in the standard: .. image:: ./images/omp_contributions.png :scale: 50 :align: center Starting from the version 3.0, released on May 2008, OpenMP included the support for asynchronous tasks. The reference implementation, which was used to measure the benefits that tasks provided to the programming model, was developed at BSC and consisted on the Nanos4 run-time library and the `Mercurium source-to-source compiler `_. Our next contribution, which was included in OpenMP 4.0 (released on July 2013), was the extension of the tasking model to support data dependences, one of the strongest points of OmpSs that allows to define fine-grain synchronization among tasks. This feature was tested using Mercurium source-to-source compiler and the `Nanos++ RTL `_. In OpenMP 4.5 (released on November 2015, and current version), the tasking model was extended with the ``taskloop`` construct using Nanos++ as the reference implementation to validate these ideas. BSC also contributed to version 4.5 adding the ``priority`` clause to ``task`` and ``taskloop`` constructs. Upcopming versions of OpenMP will include: ``task reductions``, as a way to use tasks as the participants of a reduction operation; ``iterators`` and ``multidependences``, mechanism to specify a variable number of dependences for a task instance; ``taskwait dependences``, to relax the set of descendants we need to wait for before proceeding with the taskwait construct; and the ``mutexinoutset`` (a.k.a. ``commutative``), a new type of dependence to support mutually exclusive tasks. The Nanos++ RTL was also used to validate the new interface included in the OpenMP standard with respect third party tools.