Curso: Optimización e profiling de aplicacións usando ferramentas de Intel
Obxectivo do Curso: O obxectivo xeral do curso é proporcionar ao alumno un adestramento básico no uso das ferramentas de Intel destinadas á depuración e optimización de código secuencial e paralelo. As ferramentas que se estudarán neste curso son: Intel Advisor, Intel Inspector, Intel VTune, e Intel Trace Analyzer and Collector, todas elas dispoñibles para os usuarios do CESGA dentro do Supercomputador Finisterrae II.
Prerequisitos: Requírese saber programar aplicacións secuenciales en linguaxe C/C++ ou en Fortran. Uns coñecementos básicos de programación paralela mellorarán o seguimiento do curso.
Duración: 15 horas
Data: 5, 6 e 7 de xuño en horario de 9:00h a 14:00h.
Programa do curso:
– Día 1: Neste primeiro día o obxectivo será realizar unha introdución ao curso en xeral e a algúns conceptos comúns necesarios durante o mesmo. Logo, optimizaremos o noso código a través do compilador de Intel e analizaremos o seu rendemento usando a ferramenta Intel Vtune, a cal permitiranos detectar pescozos de botella para identificar en que partes do mesmo debemos incidir á hora de optimizalo.
* Breve introdución á arquitecturas modernas e ás posibilidades de paralelización do código. Introducción ao mapa de ferramentas de Intel para a depuración e a optimización de código.
* Uso do compilador de Intel para mellorar o rendemento do noso código.
* Utilización da ferramenta Intel VTune para analizar o rendemento
* Utilización de Intel Inspector para evaluar o uso da memoria.
– Día 2: Na segunda xornada do curso centrarémonos/centrarémosnos nas oportunidades de paralelización de código utilizando memoria compartida. Neste caso centrarémosnos nas posibilidades de vectorizar o código e na posibilidade de extraer paralelismo usando pragmas OpenMP, que constitúen as dúas formas máis sinxelas de poder extraer paralelismo nun código secuencial. Como guías deste proceso utilizaremos as ferramentas: Intel Advisor, Intel Vtune e Intel Inspector.
* Vectorización do código guiada por Intel Advisor. Verase tamén o papel de Intel VTune para analizar o rendeminto do código resultante.
* Paralelización do código usando OpenMP guiada por Intel Advisor. Verase tamén o papel de Intel VTune para analizar o rendemento do código resultante.
* Utilización de Intel Inspector para evaluar o uso da memoria neste contexto.
– Día 3: Na terceiro e última xornada do curso centrarémonos/centrarémosnos nas oportunidades de paralelizar o noso código en memoria distribuída. Neste caso utilizaremos como tecnoloxía de referencia a librería de paso de mensaxes MPI. Ademais de seguir utilizando algunhas das ferramentas de días anteriores, centrarémonos/centrarémosnos tamén no uso da ferramenta Intel Trace Analyzer and Collector.
* Evaluación de código MPI utilizando a ferramenta Intel Trace Analyzer and Collector.
* Actividade na que cada alumno poderá utilizar os coñecementos adquiridos durante o curso para empezar a optimizar un código propio.
Profesor: Diego Andrade é un investigador e profesor do Grupo de Arquitectura de Computadores da Universidade dá Coruña. Leva máis de 10 anos impartiendo docencia e investigando en temas relacionados coa análise e a optimización do rendemento de aplicacións, tanto en contornas secuenciales como paralelos.