En el Instituto de Cibernética, Matemática y Física (ICIMAF) del 27 de Nov al 14 de Dic se desarrollo el curso sobre Computacion paralela.
Requisitos: Experiencia desarrollando programas en C/C++. No es necesario tener conocimientos previos de computación paralela.
Carácter del curso: Teórico-práctico, con ejemplos corridos por los propios alumnos en el clúster de la Empresa de Tecnologías de Informática (ETI).
Lenguajes de programación utilizados en los ejercicios:
Capacidad: 25 estudiantes
Lugar: ICIMAF, Calle 15 entre C y D, Vedado.
Fecha y duración: 3 semanas comenzando el 27 de Nov. Total 60 horas de clases.
Profesores: Dr Omar Ochoa (ICIMAF), M.C. Karel Barberena (ETI)
Costo de la matrícula: 250 CUP/semana. Curso completo – 650 CUP.
Inscripción: La inscripción se formaliza en el ICIMAF con el pago de la matricula, antes del 15 de Nov.
Contacto: Lic. Beatriz Moreno, especialista comercial, Tel. 78322688, email: betty@icimaf.cu
Nombre
del curso:
CURSO
DE COMPUTACIÓN PARALELA
Dirigido a:
Profesionales interesados en hacer uso de los recursos de la
computación paralela
Requisitos: Experiencia desarrollando programas en C/C++. No es necesario tener conocimientos previos de computación paralela.
Carácter del curso: Teórico-práctico, con ejemplos corridos por los propios alumnos en el clúster de la Empresa de Tecnologías de Informática (ETI).
Lenguajes de programación utilizados en los ejercicios:
- C/C++
- Python Anaconda 3.6:
Cython+OpenMP, MPI4Py, PyGPU
- Matlab (2016b): Parfor y PCT
- R: Rmpi, RParallel
Capacidad: 25 estudiantes
Lugar: ICIMAF, Calle 15 entre C y D, Vedado.
Fecha y duración: 3 semanas comenzando el 27 de Nov. Total 60 horas de clases.
Profesores: Dr Omar Ochoa (ICIMAF), M.C. Karel Barberena (ETI)
Costo de la matrícula: 250 CUP/semana. Curso completo – 650 CUP.
Inscripción: La inscripción se formaliza en el ICIMAF con el pago de la matricula, antes del 15 de Nov.
Contacto: Lic. Beatriz Moreno, especialista comercial, Tel. 78322688, email: betty@icimaf.cu
Programa
detallado
Inicio
(dos sesiones):
ARQUITECTURA
PARALELA. Introducción a la
computación de alto desempeño. Sistemas paralelos: Hardware y
Software.
Modelos Estándares: Pradigmas.
Paralelismo de Datos, Paralelismo de Tareas, Otros tipos.
Paradigmas orientados a la
arquitectura: Memoria Compartida, Memoria Distribuida, Híbrido.
COMPUTACIÓN
DE ALTO DESEMPEÑO. Introducción:
Análisis de prestaciones en sistemas de computación paralela.
Clasificación de
arquitecturas: Por la interconexión y el acceso a la memoria.
Clasificación de Flynn.
Tipos de Paralelismo. Modelos
de Programación. Actualidad y Futuro: Top 500. Métricas de
rendimiento: Tiempo de ejecución y de aceleración (Speedup).
Modelos de trabajo en Sistemas paralelos. Tiempo Fijo vs Carga de
trabajo Fijo. Ley de Amdahl. Ley de Gustafson. Grado de paralelismo.
Condiciones para abordar un
programa en paralelo.
Primera
Semana: - Programación
paralela en sistemas con memoria distribuida
Introducción a MPI. Paradigma
de paso mensajes. Principios y características generales. Máquina
Virtual Paralela. Introducción a MPI (Message Passing Interface).
Conceptos y Funciones Básicas. Modelos de Programación con MPI.
Paradigma Maestro/Esclavo.
Modos de comunicación: Punto a
Punto; Colectivas. Topologías.
Tipos de datos derivados.
Empaquetado de datos.
Topologías virtuales y
comunicadores. Esquemas de balance de carga. Evaluación de
prestaciones. Nuevas funcionalidades de MPI-2 y MPI-3. Funciones
avanzadas.
Programación en sistemas
computacionales de altas prestaciones en multicomputadores,
multiprocesadores y en clústeres. Computación heterogénea.
Segunda
Semana: - Programación
paralela en sistemas con memoria compartida
Programación paralela basada
en directivas. Ejecución con múltiples Threads. Variables de
entorno.
Dependencia de datos e
Interferencia. Variables privadas-compartidas. Reducción.
Planificación y
transformación de bucles.
Rendimiento en OpenMP, Mejor prácticas.
Paralelismo basado en Threads.
Directivas para la construcción de paralelismo y de sincronización.
Biblioteca de rutinas OpenMP.
Evaluación de prestaciones.
Intermedio
(dos sesiones):
PROGRAMACIÓN DE SISTEMAS
HÍBRIDOS CON MEMORIA DISTRIBUIDA Y COMPARTIDA. Clúster de
computadoras: arquitectura distribuida con tecnología multicore. Las
aplicaciones en clústeres se pueden programar para utilizar paso de
mensajes entre todos los procesadores. Pero es posible obtener
mejores prestaciones si se utiliza un modelo híbrido de comunicación
con compartición de información por memoria compartida y con
memoria distribuida, a través de la fusión de MPI con OpenMP.
Ejemplos de programación MPI+OpenMP en sistemas híbridos.
Tercera
Semana: - Programación
paralela con procesadores gráficos
Sistemas con coprocesadores
gráficos. Arquitectura y modelo de ejecución. Programación de
propósito general con GPU (GPGPU). Entorno de programación CUDA y
OpenCL. Modelo de programación. API de CUDA. Paralelismo SPMD en una
arquitectura con multiples cores. Ejemplos de aplicación.
Diferentes arquitecturas:
4.1 Programación avanzada GPU
en OpenMP 4.x
4.2 CUDA
Introducción a GPGPU: GPUs
como sistemas de computación paralela. Arquitectura de las GPU
actuales. Modelos y lenguajes de programación.
Introducción a CUDA :
Arquitectura y Modelo dicimaf02--78904--jcarlos
e Programación. Paralelismo de
datos. Estructura de un programa en CUDA. Declaración de funciones
Kernels y Threads. API RunTime. Bloques y Threads.
Threads en CUDA: Organización
y planificación de los threads, Sincronización y escalabilidad.
Memorias en CUDA: Jerarquía de
Memoria. Tipos de memorias, Eficiencia de acceso a memoria.
Rendimiento: Ejecución,
Granularidad, Medición de rendimiento.
4.3 Programación híbrida.
No hay comentarios.:
Publicar un comentario