Parallel programming is a skill which software engineers no longer can do without, since multi- and many-core architectures have been widely adopted for general-purpose computing platforms. OpenCL is a cross-platform API to efficiently exploit data-level parallelism while enabling application portability across different platforms. This API ensures functional portability of applications, but additional fine-tuning of the application code is often needed in order to take the most performance out of a specific target architecture. Another important aspect of application optimization is the exploitation of architectural heterogeneity on modern computing platforms. The convergence to globally heterogeneous locally homogeneous parallel architectures, in both the embedded and High Performance Computing (HPC) domains, leads to a rapid overlapping of the challenges related to efficient exploitation of the available computing devices. Code customization and task mapping represent the main challenge for the design and optimization of OpenCL applications targeted to heterogeneous parallel platforms. At this aim, the Design Space Exploration (DSE) methodology presented in this thesis allows to efficiently explore the customization options of a parametric OpenCL application design. On the one hand, the proposed techniques reduce the exploration time while providing close-to-optimal solutions; on the other hand, they exploit platform-specific constraints to prune out unfeasible solutions from the design space. Multi-application use cases often suffer from resource contention and performance degradation, especially under dynamic workload variations. One contribution of this thesis consists of the DSE support to generate Pareto-optimal application configurations, with different trade-offs between performance and QoS. A run-time management technique is presented, which exploits the knowledge base gathered at design-time to implement effective application auto-tuning. By including platform metrics and resource utilization in the optimization phase, this methodology also supports performance-aware scheduling on multi-core platforms and improves the overall system performance with respect to soft real-time constraints. The proposed design methodology and runtime software layer have been implemented and demonstrated on a real case study (an OpenCL stereo-matching application) targeting different industrial platforms.

La programmazione parallela rappresenta oggigiorno uno strumento indispensabile per gli ingegneri del software, dal momento che le architetture multi- e many-core vengono adottate in larga misura per piattaforme di calcolo general-purpose. OpenCL è una API multipiattaforma per sfruttare in modo efficiente il parallelismo delle applicazioni e per consentire, allo stesso tempo, la portabilità del codice tra piattaforme diverse. Questa API assicura, quindi, la portabilità funzionale dell’applicazione. Tuttavia, spesso è necessaria una fase di ottimizzazione del codice al fine di trarre il massimo rendimento di performance da una determinata architettura. Un aspetto importante per l’ottimizzazione di applicazioni OpenCL, infatti, è l’eterogeneità architetturale delle piattaforme di calcolo di moderna generazione. La convergenza verso architetture con parallelismo eterogeneo a livello globale ed omogeneo a livello locale, in entrambi i domini Embedded e High Performance Computing (HPC), introduce, in fase di progetto, problemi legati all’utilizzo delle diverse unità di calcolo a disposizione. La scelta dei parametri applicativi e la mappatura dei task costituiscono, quindi, il problema principale nella progettazione e ottimizzazione di applicazioni OpenCL su piattaforme parallele eterogenee. In questa tesi, viene presentata una metodologia per esplorare in modo efficiente lo spazio di progetto di applicazioni OpenCL parametriche. Le tecniche proposte, da un lato, riducono il tempo di esplorazione, fornendo soluzioni vicine a quelle ottimali; dall'altro, sfruttano vincoli specifici del sistema per escludere dall’esplorazione l’insieme di soluzioni non realizzabili. Un altro problema è rappresentato dagli scenari multi-applicazione, siccome la contesa per l'accesso a risorse condivise può causare un degrado delle prestazioni, soprattutto in presenza di variazioni del carico di lavoro. Uno dei contributi di questa tesi consiste nella generazione di configurazioni di parametri applicativi Pareto-ottimali, quindi con diversi trade-off tra prestazioni e QoS. Viene presentata una tecnica di allocazione delle risorse che sfrutta le informazioni raccolte in fase di progetto per gestire la riconfigurazione dinamica delle applicazioni. Su piattaforme multi-core, dunque, la metodologia proposta supporta l'allocazione delle risorse rispetto ai requisiti di ciascuna applicazione in esecuzione. Ciò risulta in un miglioramento delle prestazioni globali rispetto a vincoli soft real-time. La metodologia di ottimizzazione e l’infrastruttura software per la riconfigurazione dinamica sono state implementate e dimostrate con un caso di studio reale (un’applicazione OpenCL per stereo-matching) su diverse piattaforme di calcolo disponibili in commercio.

Design space exploration of openCL applications on heterogeneous parallel platforms

PAONE, EDOARDO

Abstract

Parallel programming is a skill which software engineers no longer can do without, since multi- and many-core architectures have been widely adopted for general-purpose computing platforms. OpenCL is a cross-platform API to efficiently exploit data-level parallelism while enabling application portability across different platforms. This API ensures functional portability of applications, but additional fine-tuning of the application code is often needed in order to take the most performance out of a specific target architecture. Another important aspect of application optimization is the exploitation of architectural heterogeneity on modern computing platforms. The convergence to globally heterogeneous locally homogeneous parallel architectures, in both the embedded and High Performance Computing (HPC) domains, leads to a rapid overlapping of the challenges related to efficient exploitation of the available computing devices. Code customization and task mapping represent the main challenge for the design and optimization of OpenCL applications targeted to heterogeneous parallel platforms. At this aim, the Design Space Exploration (DSE) methodology presented in this thesis allows to efficiently explore the customization options of a parametric OpenCL application design. On the one hand, the proposed techniques reduce the exploration time while providing close-to-optimal solutions; on the other hand, they exploit platform-specific constraints to prune out unfeasible solutions from the design space. Multi-application use cases often suffer from resource contention and performance degradation, especially under dynamic workload variations. One contribution of this thesis consists of the DSE support to generate Pareto-optimal application configurations, with different trade-offs between performance and QoS. A run-time management technique is presented, which exploits the knowledge base gathered at design-time to implement effective application auto-tuning. By including platform metrics and resource utilization in the optimization phase, this methodology also supports performance-aware scheduling on multi-core platforms and improves the overall system performance with respect to soft real-time constraints. The proposed design methodology and runtime software layer have been implemented and demonstrated on a real case study (an OpenCL stereo-matching application) targeting different industrial platforms.
FIORINI, CARLO ETTORE
BONARINI, ANDREA
18-dic-2014
La programmazione parallela rappresenta oggigiorno uno strumento indispensabile per gli ingegneri del software, dal momento che le architetture multi- e many-core vengono adottate in larga misura per piattaforme di calcolo general-purpose. OpenCL è una API multipiattaforma per sfruttare in modo efficiente il parallelismo delle applicazioni e per consentire, allo stesso tempo, la portabilità del codice tra piattaforme diverse. Questa API assicura, quindi, la portabilità funzionale dell’applicazione. Tuttavia, spesso è necessaria una fase di ottimizzazione del codice al fine di trarre il massimo rendimento di performance da una determinata architettura. Un aspetto importante per l’ottimizzazione di applicazioni OpenCL, infatti, è l’eterogeneità architetturale delle piattaforme di calcolo di moderna generazione. La convergenza verso architetture con parallelismo eterogeneo a livello globale ed omogeneo a livello locale, in entrambi i domini Embedded e High Performance Computing (HPC), introduce, in fase di progetto, problemi legati all’utilizzo delle diverse unità di calcolo a disposizione. La scelta dei parametri applicativi e la mappatura dei task costituiscono, quindi, il problema principale nella progettazione e ottimizzazione di applicazioni OpenCL su piattaforme parallele eterogenee. In questa tesi, viene presentata una metodologia per esplorare in modo efficiente lo spazio di progetto di applicazioni OpenCL parametriche. Le tecniche proposte, da un lato, riducono il tempo di esplorazione, fornendo soluzioni vicine a quelle ottimali; dall'altro, sfruttano vincoli specifici del sistema per escludere dall’esplorazione l’insieme di soluzioni non realizzabili. Un altro problema è rappresentato dagli scenari multi-applicazione, siccome la contesa per l'accesso a risorse condivise può causare un degrado delle prestazioni, soprattutto in presenza di variazioni del carico di lavoro. Uno dei contributi di questa tesi consiste nella generazione di configurazioni di parametri applicativi Pareto-ottimali, quindi con diversi trade-off tra prestazioni e QoS. Viene presentata una tecnica di allocazione delle risorse che sfrutta le informazioni raccolte in fase di progetto per gestire la riconfigurazione dinamica delle applicazioni. Su piattaforme multi-core, dunque, la metodologia proposta supporta l'allocazione delle risorse rispetto ai requisiti di ciascuna applicazione in esecuzione. Ciò risulta in un miglioramento delle prestazioni globali rispetto a vincoli soft real-time. La metodologia di ottimizzazione e l’infrastruttura software per la riconfigurazione dinamica sono state implementate e dimostrate con un caso di studio reale (un’applicazione OpenCL per stereo-matching) su diverse piattaforme di calcolo disponibili in commercio.
Tesi di dottorato
File allegati
File Dimensione Formato  
2014_12_PhD_Paone.PDF

accessibile in internet per tutti

Descrizione: Testo della tesi
Dimensione 7.21 MB
Formato Adobe PDF
7.21 MB Adobe PDF Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/98543