Picos: A hardware runtime architecture support for OmpSs

OmpSs is a programming model that provides a simple and powerful way of annotating sequential programs to exploit heterogeneity and task parallelism based on runtime data dependency analysis, dataflow scheduling and out-of-order task execution; it has greatly influenced Version 4.0 of the OpenMP sta...

Descripción completa

Detalles Bibliográficos
Autores: Yazdanpanah Ahmadabadi, Fahimeh, Álvarez Martínez, Carlos|||0000-0003-0536-5183, Jiménez González, Daniel|||0000-0001-6064-7883, Badia Sala, Rosa Maria|||0000-0003-2941-5499, Valero Cortés, Mateo|||0000-0003-2917-2482
Tipo de recurso: artículo
Fecha de publicación:2015
País:España
Institución:Universitat Politècnica de Catalunya (UPC)
Repositorio:UPCommons. Portal del coneixement obert de la UPC
Idioma:inglés
OAI Identifier:oai:upcommons.upc.edu:2117/89843
Acceso en línea:https://hdl.handle.net/2117/89843
https://dx.doi.org/10.1016/j.future.2014.12.010
Access Level:acceso abierto
Palabra clave:Parallel programming (Computer science)
Hardware implementation
Task scheduling
Dataflow execution
Parallel programming model
OmpSs
OpenMP
Programació en paral·lel (Informàtica)
Àrees temàtiques de la UPC::Informàtica::Programació
Descripción
Sumario:OmpSs is a programming model that provides a simple and powerful way of annotating sequential programs to exploit heterogeneity and task parallelism based on runtime data dependency analysis, dataflow scheduling and out-of-order task execution; it has greatly influenced Version 4.0 of the OpenMP standard. The current implementation of OmpSs achieves those capabilities with a pure-software runtime library: Nanos++. Therefore, although powerful and easy to use, the performance benefits of exploiting fine-grained (pico) task parallelism are limited by the software runtime overheads. To overcome this handicap we propose Picos, an implementation of the Task Superscalar (TSS) architecture that provides hardware support to the OmpSs programming model. Picos is a novel hardware dataflow-based task scheduler that dynamically analyzes inter-task dependencies and identifies task-level parallelism at run-time. In this paper, we describe the Picos Hardware Design and the latencies of the main functionality of its components, based on the synthesis of their VHDL design. We have implemented a full cycle-accurate simulator based on those latencies to perform a design exploration of the characteristics and number of its components in a reasonable amount of time. Finally, we present a comparison of the Picos and Nanos++ runtime performance scalability with a set of real benchmarks. With Picos, a programmer can achieve ideal scalability using aggressive parallel strategies with a large number of fine granularity tasks.