Performance and energy effects on task-based parallelized applications: User-directed versus manual vectorization

Heterogeneity, parallelization and vectorization are key techniques to improve the performance and energy efficiency of modern computing systems. However, programming and maintaining code for these architectures poses a huge challenge due to the ever-increasing architecture complexity. Task-based en...

Descripción completa

Detalles Bibliográficos
Autores: Caminal Pallarés, Helena, Caballero de Gea, Diego, Cebrián González, Juan Manuel, Ferrer, Roger, Casas, Marc|||0000-0003-4564-2093, Moretó Planas, Miquel|||0000-0002-9848-8758, Martorell Bofill, Xavier|||0000-0002-0417-3430, Valero Cortés, Mateo|||0000-0003-2917-2482
Tipo de recurso: artículo
Fecha de publicación:2018
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/121542
Acceso en línea:https://hdl.handle.net/2117/121542
https://dx.doi.org/10.1007/s11227-018-2294-9
Access Level:acceso abierto
Palabra clave:Parallel processing (Electronic computers)
Microprocessors -- Energy consumption
Vector processing (Computer science)
Data-level parallelism
Task-level parallelism
Vectorization
Energy efficiency
Processament en paral·lel (Ordinadors)
Microprocessadors -- Consum d'energia
Àrees temàtiques de la UPC::Informàtica::Arquitectura de computadors::Arquitectures paral·leles
Descripción
Sumario:Heterogeneity, parallelization and vectorization are key techniques to improve the performance and energy efficiency of modern computing systems. However, programming and maintaining code for these architectures poses a huge challenge due to the ever-increasing architecture complexity. Task-based environments hide most of this complexity, improving scalability and usage of the available resources. In these environments, while there has been a lot of effort to ease parallelization and improve the usage of heterogeneous resources, vectorization has been considered a secondary objective. Furthermore, there has been a swift and unstoppable burst of vector architectures at all market segments, from embedded to HPC. Vectorization can no longer be ignored, but manual vectorization is tedious, error-prone and not practical for the average programmer. This work evaluates the feasibility of user-directed vectorization in task-based applications. Our evaluation is based on the OmpSs programming model, extended to support user-directed vectorization for different SIMD architectures (i.e., SSE, AVX2, AVX512). Results show that user-directed codes achieve manually optimized code performance and energy efficiency with minimal code modifications, favoring portability across different SIMD architectures.