This work explores the potential optimization of an existing code for the Direct Numerical Simulation (DNS) of a turbulent plane channel flow. Two implementations in different programming languages (CPL and Fortran) have been adapted to Intel Xeon Phi processor (Knights Landing), a platform with many integrated cores (MIC) and specialized vector hardware. The purpose of this study is to provide an example of the performance attainable on this processor, using a code that was originally conceived for a different architecture. The code written for general-purpose computers can be run without recompilation on Intel Xeon Phi, however adjustments are required to achieve a satisfactory performance and to fully exploit the hardware resources of the processor. To this aim, different optimization techniques, such as the addition of compiler directives and the modification of the data layout in memory, are described and used. The single-threaded performance of the two implementations is optimized and the improvement is measured. The efficiency of the different parallelization methods in the code is discussed and a second layer of parallelism is implemented in the Fortran version. Finally, the code is tested also on Intel Xeon E5-2697 v4 (Broadwell) processor, providing a frame of reference to evaluate the performance of Knights Landing against multi-core architectures that are used in supercomputing centers, where KNL is gaining acceptance.

In questo lavoro di tesi si è ottimizzata l’esecuzione della DNS di una corrente turbolenta in un canale piano su un processore Intel Xeon Phi (anche noto come "Knights Landing", KNL). Quest’ultimo è basato su un’architettura introdotta nel 2016 ed è costituito da 64 CPU su un singolo chip. Nel corso della tesi sono state ottimizzate due diverse implementazioni della simulazione numerica, la prima scritta in linguaggio CPL, la seconda in linguaggio Fortran. Le due si differenziano principalmente per la strategia usata per ripartire il carico di lavoro sulle diverse unità di calcolo. I codici sono stati ottimizzati per una migliore performance su singola CPU, aggiungendo direttive per il compilatore che permettessero di migliorare il livello di vettorizzazione e modificando la disposizione delle variabili in memoria in modo da ridurre i tempi di accesso ai dati. Per quanto riguarda l’esecuzione parallela, la versione CPL prevede due livelli complementari di parallelismo (memoria condivisa e memoria distribuita), dunque si è proceduto ad uno studio parametrico per determinare la migliore suddivisione delle risorse hardware quando sono utilizzati entrambi i tipi di parallelismo. In Fortran invece era presente un unico livello di parallelismo (memoria distribuita) e per ottimizzare la performance su più core ne è stato introdotto un secondo livello (memoria condivisa) tramite la libreria OpenMP. Infine si è confrontata la performance del codice Fortran ottimizzato su KnightsLanding con quella sul processore Intel Xeon E5-2697 v4 (Broadwell), soluzione multi-core per cui KNL rappresenta un concorrente diretto.

Direct numerical simulation of turbulent channel flow on Intel Xeon Phi (KNL) architecture

GUASTONI, LUCA
2016/2017

Abstract

This work explores the potential optimization of an existing code for the Direct Numerical Simulation (DNS) of a turbulent plane channel flow. Two implementations in different programming languages (CPL and Fortran) have been adapted to Intel Xeon Phi processor (Knights Landing), a platform with many integrated cores (MIC) and specialized vector hardware. The purpose of this study is to provide an example of the performance attainable on this processor, using a code that was originally conceived for a different architecture. The code written for general-purpose computers can be run without recompilation on Intel Xeon Phi, however adjustments are required to achieve a satisfactory performance and to fully exploit the hardware resources of the processor. To this aim, different optimization techniques, such as the addition of compiler directives and the modification of the data layout in memory, are described and used. The single-threaded performance of the two implementations is optimized and the improvement is measured. The efficiency of the different parallelization methods in the code is discussed and a second layer of parallelism is implemented in the Fortran version. Finally, the code is tested also on Intel Xeon E5-2697 v4 (Broadwell) processor, providing a frame of reference to evaluate the performance of Knights Landing against multi-core architectures that are used in supercomputing centers, where KNL is gaining acceptance.
BANCHETTI, JACOPO
ING - Scuola di Ingegneria Industriale e dell'Informazione
19-apr-2018
2016/2017
In questo lavoro di tesi si è ottimizzata l’esecuzione della DNS di una corrente turbolenta in un canale piano su un processore Intel Xeon Phi (anche noto come "Knights Landing", KNL). Quest’ultimo è basato su un’architettura introdotta nel 2016 ed è costituito da 64 CPU su un singolo chip. Nel corso della tesi sono state ottimizzate due diverse implementazioni della simulazione numerica, la prima scritta in linguaggio CPL, la seconda in linguaggio Fortran. Le due si differenziano principalmente per la strategia usata per ripartire il carico di lavoro sulle diverse unità di calcolo. I codici sono stati ottimizzati per una migliore performance su singola CPU, aggiungendo direttive per il compilatore che permettessero di migliorare il livello di vettorizzazione e modificando la disposizione delle variabili in memoria in modo da ridurre i tempi di accesso ai dati. Per quanto riguarda l’esecuzione parallela, la versione CPL prevede due livelli complementari di parallelismo (memoria condivisa e memoria distribuita), dunque si è proceduto ad uno studio parametrico per determinare la migliore suddivisione delle risorse hardware quando sono utilizzati entrambi i tipi di parallelismo. In Fortran invece era presente un unico livello di parallelismo (memoria distribuita) e per ottimizzare la performance su più core ne è stato introdotto un secondo livello (memoria condivisa) tramite la libreria OpenMP. Infine si è confrontata la performance del codice Fortran ottimizzato su KnightsLanding con quella sul processore Intel Xeon E5-2697 v4 (Broadwell), soluzione multi-core per cui KNL rappresenta un concorrente diretto.
Tesi di laurea Magistrale
File allegati
File Dimensione Formato  
2018_04_Guastoni.pdf

solo utenti autorizzati dal 08/04/2021

Descrizione: Thesis text
Dimensione 595.97 kB
Formato Adobe PDF
595.97 kB 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/141085