Solicitar información

Temario del curso

Introducción

  • ¿Qué es OpenACC?
  • OpenACC frente a OpenCL, CUDA y SYCL
  • Descripción general de las funcionalidades y arquitectura de OpenACC
  • Configuración del entorno de desarrollo

Primeros pasos

  • Creación de un proyecto OpenACC en Visual Studio Code
  • Análisis de la estructura y archivos del proyecto
  • Compilación y ejecución del programa
  • Visualización de resultados mediante printf y fprintf

Directivas y cláusulas de OpenACC

  • Conceptos básicos sobre directivas y cláusulas en OpenACC
  • Uso de las directivas paralelas para definir regiones paralelas
  • Aplicación de las directivas kernel para controlar el paralelismo a nivel del compilador
  • Utilización de las directivas de bucle para paralelizar iteraciones
  • Manejo del movimiento de datos mediante las directivas de datos
  • Sincronización de datos con ayuda de las directivas update
  • Optimización en el reuso de datos mediante las directivas de caché
  • Definición de funciones específicas para dispositivos gracias a las directivas routine
  • Sincronización temporal de eventos utilizando las directivas wait

API de OpenACC

  • Funcionamiento y propósito principal de la API de OpenACC
  • Consulta sobre información técnica y capacidades disponibles en el dispositivo
  • Selección del tipo y número de dispositivo que se empleará
  • Manejo adecuado de errores y excepciones generadas durante la ejecución
  • Creación y sincronización de eventos entre procesos

Bibliotecas e interoperabilidad en OpenACC

  • Características y objetivos de las bibliotecas asociadas a OpenACC
  • Uso de funciones matemáticas, generadoras de números aleatorios y operaciones complejas
  • Integración con otros modelos de programación como CUDA, OpenMP o MPI
  • Conexión con bibliotecas especializadas en GPU como cuBLAS o cuFFT

Herramientas para trabajar con OpenACC

  • Principales utilidades disponibles para el desarrollo y depuración de código OpenACC
  • Métodos de profiling y corrección de errores en programas paralelos
  • Evaluación del rendimiento mediante herramientas como el compilador PGI, NVIDIA Nsight Systems o Allinea Forge

Optimización de aplicaciones con OpenACC

  • Factores que influyen en la eficiencia general de los programas desarrollados con OpenACC
  • Estrategias para mejorar la localidad de datos y reducir transferencias innecesarias
  • Técnicas aplicables para optimizar el paralelismo a nivel de bucles y fusiones de operaciones
  • Mejoras derivadas del uso eficiente del paralelismo en kernels y su combinación con otras instrucciones
  • Uso adecuado de la vectorización y técnicas automáticas de ajuste para potenciar el rendimiento final

Resumen y pasos siguientes

Requerimientos

  • Conocimientos básicos del lenguaje C/C++ o Fortran y de conceptos de programación paralela.
  • Entendimiento general sobre la arquitectura de computadoras y la jerarquía de memoria.
  • Experiencia en el uso de herramientas de línea de comandos y editores de código.

Público objetivo

  • Desarrolladores que deseen aprender a utilizar OpenACC para programar dispositivos heterogéneos y optimizar su paralelismo.
  • Programadores interesados en crear código portable y escalable que pueda ejecutarse en distintas plataformas.
  • Profesionales de la programación que buscan explorar aspectos avanzados de la programación heterogénea y mejorar su productividad mediante optimizaciones.
 28 Horas

Formación Corporativa a Medida

Soluciones de formación diseñadas exclusivamente para empresas.

  • Contenido personalizado: Adaptamos el temario y los ejercicios prácticos a los objetivos y necesidades reales del proyecto.
  • Calendario flexible: Fechas y horarios adaptados a la agenda de su equipo.
  • Modalidad: Online (en directo), In-company (en sus oficinas) o Híbrida.
Inversión

Precio por grupo privado (formación online) desde 5800 € + IVA*

Contáctenos para obtener un presupuesto exacto y conocer nuestras promociones actuales

Próximos cursos

Categorías Relacionadas