Plan 95 Adecuado DEPARTAMENTO: ELECTRÓNICA CLASE: ELECTIVA DE ESPECIALIDAD ÁREA: TÉCNICAS DIGITALES HORAS SEM.: 4 HS. HORAS / AÑO: 64 HS.

Documentos relacionados
INFORMÁTICA I. Lic. Mirta Targovnic Profesora Adjunta Ordinaria. Avda. 60 esq. 124 Tel. /Fax (0221) /

Nociones básicas de computación paralela

Computación de Propósito General en Unidades de Procesamiento Gráfico GPGPU. Clase 0 Lanzamiento del Curso. Motivación

Plan 95 Adecuado DEPARTAMENTO: ELECTRÓNICA CLASE: ELECTIVA DE ESPECIALIDAD ÁREA: ELECTRÓNICA HORAS SEM.: 4 HS.

PLANIFICACIÓN DE LA DOCENCIA UNIVERSITARIA GUÍA DOCENTE. Introducción a la concurrencia

UNIVERSIDAD DE GUADALAJARA

F1131 Fundamentos de sistemas operativos 1/12

Universidad Nacional de la Patagónia San Juan Bosco

Plan 95 Adecuado DEPARTAMENTO: ELECTRÓNICA CLASE: ELECTIVA ÁREA: SISTEMAS DE CONTROL HORAS SEM.: 4 HS. HORAS / AÑO: 64 HS.

Arquitecturas GPU v. 2013

Departamento Ingeniería en Sistemas de Información

Construcción de Sistemas de Computación Código: 32

ARQUITECTURA DE COMPUTADORAS II. Propósito del curso : Ingeniería Ingeniería en Sistemas. Hardware. Clave de la materia: 413

Universidad Católica de Santiago del Estero Facultad de Matemática Aplicada Carrera de Ingeniería en Electrónica

Introducción a la Ingeniería Básicas de Ingeniería

Nombre de la asignatura: Programación Básica. Créditos: Objetivo de aprendizaje

UNIVERSIDAD RICARDO PALMA

Universidad Centroccidental Lisandro Alvarado. Decanato de Ciencias y Tecnología Departamento de Sistemas

Seminario II: Introducción a la Computación GPU

Distinguir correctamente las ventajas y desventajas de la lógica cableada y de la lógica programada con PLC.

Programa de estudios por competencias Seminario de solución de problemas de Ingeniería de Software I

UNIVERSIDAD PEDAGÓGICA Y TECNOLÓGICA DE COLOMBIA FACULTAD DE CIENCIAS PROGRAMA DE MATEMÁTICAS PLAN DE ESTUDIOS

DIPLOMADO. Evaluación de la Calidad de la práctica docente para la implementación del Nuevo Modelo Educativo en Escuelas de Ingeniería del I.P.N.

Análisis y Diseño de Sistemas en Tiempo Real

OBJETIVO GENERAL: Al terminar el curso el alumno será capaz de analizar, diseñar e implementar bases de datos distribuidas

GUÍA DOCENTE Arquitecturas Avanzadas de Computadores

Matemáticas Especiales

UNIVERSIDAD NACIONAL FEDERICO VILLARREAL FACULTAD DE INGENIERÍA ELECTRÓNICA E INFORMÁTICA SÍLABO

Multiplicación de Matrices en Sistemas cc-numa Multicore. Autor: Jesús Cámara Moreno Director: Domingo Giménez Cánovas

LICENCIADO EN SISTEMAS COMPUTACIONALES. Este programa educativo se ofrece en las siguientes sedes académicas de la UABC:

UNIVERSIDAD NACIONAL DE RÍO CUARTO FACULTAD DE CIENCIAS EXACTAS, FÍSICO-QUÍMICAS Y NATURALES DEPARTAMENTO DE COMPUTACIÓN

INTRODUCCIÓN A LA COMPUTACIÓN PARALELA CON GPUS

PROGRAMA ASIGNATURA. Horas Cronológicas Semanales Presénciales Adicionales Total. Nº de Semanas (A) (B) (C=A+B) (D) (E=C*D) (F=E/27)

28/08/ :52:22 Página 1 de 5

Intel lanza su procesador Caballero Medieval habilitado para Inteligencia Artificial

ORGANIZACIÓN Y CONDUCCION DE OBRAS

UNIVERSIDAD NACIONAL DE SAN ANTONIO ABAD DEL CUSCO

HPC y GPUs. GPGPU y software libre. Emilio J. Padrón González DE UNIVERSIDADE DA CORUNA GAC.UDC.ES

Maestría en Ingeniería Énfasis en Sistemas y Computación

Universitat de les Illes Balears Guía docente

A.N.E.P. Consejo de Educación Técnico Profesional (Universidad del Trabajo del Uruguay)

PLANIFICACIÓN DE CÁTEDRA. Carrera: Tecnicatura Superior en Tecnologías de la Información Plan de estudio: Ordenanza Nº 918/2000

CARRERA DE INGENIERÍA EN SISTEMAS COMPUTACIONALES SYLLABUS ARQUITECTURA DE COMPUTADORES

INGENIERÍA EN MANTENIMIENTO INDUSTRIAL HOJA DE ASIGNATURA CON DESGLOSE DE UNIDADES TEMÁTICAS

DISEÑO CURRICULAR DIBUJO

Herramientas para el estudio de prestaciones en clusters de computación científica, aplicación en el Laboratorio de Computación Paralela

OPERADOR EN VENTAS POR INTERNET en el marco del Programa Empleartec PROGRAMA DE FORMACION EN

Fechas Mes/año Clave Semestre 8 a 10

FACULTAD DE MEDICINA HUMANA Y CIENCIAS DE LA SALUD ESCUELA ACADEMICO PROFESIONAL DE OBSTETRICIA SÍLABO 2012-I

Objetos de aprendizaje: Computadora

MANTENIMIENTO DE COMPUTADORES OBJETIVO

INGENIERIA CIVIL PROGRAMA DE ASIGNATURA

Programación de Sintetizadores y Manejo de Máquinas I

Escuela de Ingeniería en Informática Empresarial SYLLABUS

PR1: Programación I 6 Fb Sistemas Lógicos 6 Obligatoria IC: Introducción a los computadores 6 Fb Administración de

FUNDAMENTOS DE COMPUTACIÓN PARA CIENTÍFICOS. CNCA Abril 2013

SISTEMAS OPERATIVOS MONOPUESTO 1. CONTENIDOS MÍNIMOS PARA LA EVALUACIÓN POSITIVA

CONTROL DISTRIBUIDO Y AUTOMATIZACIÓN

UNIVERSIDAD NACIONAL DE SAN ANTONIO ABAD DEL CUSCO

Modelo de aplicaciones CUDA

Nombre de la asignatura: Algoritmos y Lenguajes de programación.

Sistema de Control Página 1 de 6. Código:

Septiembre Agosto Escolarizado. Universidad Tecnológica de Izúcar de Matamoros. 2 años (6 cuatrimestres)

TRABAJO FIN DE GRADO

Universidad Central Del Este U C E Facultad de Ciencias y Humanidades Escuela de Pedagogía Mención Informática.

PROGRAMA ANALÍTICO DE ASIGNATURA

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO. Facultad de Ciencias. Plan de estudios de la Licenciatura en Matemáticas Aplicadas. Inglés IV.

Interfaces. Carrera: SCF Participantes. Representantes de la academia de sistemas y computación de los Institutos Tecnológicos.

Planificaciones Algoritmos y Programación I. Docente responsable: AZCURRA DIEGO ANDRES. 1 de 5

PROGRAMA DE MATERIA MATERIA:

DIPLOMADO EN INVESTIGACION CRIMINAL Versión 01 PROGRAMA DE CURSO INFORMATICA APLICADA CA

PROGRAMAS DE ESTUDIOS

Programa de estudios por competencias. Seminario de Sistemas operativos en red

UNIVERSIDAD NACIONAL FEDERICO VILLARREAL FACULTAD DE INGENIERÍA ELECTRÓNICA E INFORMÁTICA SÍLABO

Propuesta de currículo para Ingeniería en Computación

Escuela de Graduados Facultad de Ciencias Económicas Universidad Nacional de Córdoba

UNIVERSIDAD NACIONAL DE SANTIAGO DEL ESTERO FACULTAD DE CIENCIAS EXACTAS Y TECNOLOGÍAS Planificación de la asignatura Sistemas Microprogramables

INSTITUTO POLITÉCNICO NACIONAL SECRETARÍA ACADÉMICA DIRECCIÓN DE ESTUDIOS PROFESIONALES EN INGENIERÍA Y CIENCIAS FÍSICO MATEMÁTICAS

Pontificia Universidad Católica del Ecuador

CAPITULO 1 INTRODUCCION AL PROYECTO

INSTITUTO POLITÉCNICO NACIONAL SECRETARÍA ACADÉMICA DIRECCIÓN DE ESTUDIOS PROFESIONALES EN INGENIERÍA Y CIENCIAS FÍSICO MATEMÁTICAS

ESCUELA SUPERIOR POLITECNICA DEL LITORAL PROGRAMA DE ESTUDIOS

Computación para Ingeniería

DES: Programa(s) Educativo(s): Tipo de materia: Clave de la materia: Semestre: Área en plan de estudios:

TGA - Tarjetas Gráficas y Aceleradores

Operaciones algebraicas elementales (Unidad I del curso Matemáticas Básicas).

Dirección de Desarrollo Curricular Secretaría Académica

DESCRIPCION DE LA ASIGNATURA:

Programación de GPUs con CUDA

Tile64 Many-Core. vs. Intel Xeon Multi-Core

ESCUELA SUPERIOR POLITECNICA DEL LITORAL

1. OBJETIVOS: Universidad de Belgrano Facultad de Ingeniería y Tecnología Informática Página 1/7

Control de procesos industriales

IT Essentials I: PC Hardware and Software

Datos de la asignatura Nombre de la Asignatura: Producción Limpia. Clave de la Asignatura: MMQ-1302 SATCA 2 : 1-2-3

Programa de estudios por competencias Arquitectura de computadoras

TEMARIO COMPUTACIÓN, COMERCIO Y CONTABILIDAD

1.87 GHZ QUAD Q9550 G 2.83 GHZ QUAD CPU 2.83GHZ 1.86 GHZ 1.87GHZ 2.80 GHZ 2.80GHZ 1.87 GHZ

UNIVERSIDAD DE CIENCIAS EMPRESARIALES Y SOCIALES FACULTAD DE CIENCIAS DE LA SALUD

Universidad de las Illes Balears Guía docente

Transcripción:

Plan 95 Adecuado ASIGNATURA: COMPUTACIÓN PARALELA CON PROCESADORES GRÁFICOS CODIGO: 95-0409 DEPARTAMENTO: ELECTRÓNICA CLASE: ELECTIVA DE ESPECIALIDAD ÁREA: TÉCNICAS DIGITALES HORAS SEM.: 4 HS. HORAS / AÑO: 64 HS. Fundamentación: Fundamentar la asignatura según su propósito general, en el marco del plan de estudios y desde su aporte para la formación ingenieril y el perfil del egresado. La asignatura busca introducir a los alumnos en la programación de procesadores gráficos (GPUs) en aplicaciones de propósito general. La gran capacidad de cálculo de los GPUs, acompañado de nuevas arquitecturas de hardware más la aparición de modelos de programación adecuados para implementar aplicaciones de propósito general, han transformado a este tipo de procesadores en una herramienta de sumo interés para la aceleración de algoritmos de cálculo intensivo. En los últimos años, la comunidad científica ha adoptado esta herramienta para la aceleración de distintas aplicaciones científicas, y de procesamiento de señales e imágenes. Los resultados difundidos demuestran que es una herramienta muy valiosa en ese sentido, que será de utilidad a aquellos profesionales que trabajen con técnicas de procesamiento intensivo que requieran ser optimizadas y paralelizadas. Objetivos: Comprender las limitaciones de las arquitecturas de procesadores actuales, y su tendencia hacia la computación paralela. Comprender la arquitectura de procesadores gráficos actuales, y su modelo de programación paralela. Aprendan las herramientas de programación de NVIDIA-CUDA, así como también técnicas de optimización de código en GPU. Desarrollar software paralelo y optimizado para NVIDIA-CUDA, en aplicaciones de propósito general. Programa sintético: Arquitecturas Paralelas. Paralelización de Código en CPU.

Paralelización de Código en GPU. Arquitectura de los Procesadores Gráficos. Introducción a C-CUDA. Optimización de código CUDA. Ejemplos de Aplicación. Programa analítico: Unidad 1: Introducción a Arquitecturas Paralelas Tendencias tecnológicas en arquitecturas de procesadores. Problemas de consumo, memoria. Paralelismo en microprocesadores, distintos niveles de paralelismo. Arquitectura paralelas en CPU y GPU, comparación. Unidad 2: Paralelización en CPU Micro-arquitectura de CPU. Optimización en CPU: SIMD, librerías Intel, icc. Programación multicore open- MP. Unidad 3: Unidades de Procesamiento Gráfico (GPU) Modelo de programación paralela CUDA. Kernels, jerarquías de threads y memoria, mecanismos de sincronización. Arquitectura de NVIDIA GPU, unidades de ejecución, utilización de recursos, accesos a memoria unificados. Introducción a C-CUDA y al entorno de desarrollo (Kdevelop, Cmake, Svn, Cuda SDK y Cuda Toolkit). Unidad 4: Optimización de código en GPU Métricas de evaluación de performance. Optimizaciones de memoria: global vs. Shared. Técnicas de reducción en Shared Memory. Configuración de ejecución: utilización de warps, tamaño de bloques y grilla de ejecución. Mecanismos de Sincronización y detección de carreras críticas (Race-condition problems). Instrucciones avanzadas. Multi-GPU. Debugging (cuda-gdb). CUDA profiler. Análisis de utilización de recursos e identificación de problemas en el uso de los mismos. Unidad 5: Ejemplos de Aplicación Librerías matemáticas GPU (CUBLAS-CUFFT). Montecarlo GPU. Ray-tracing en GPU. Comparación de algoritmos optimizados CPU y GPU (aceleración). Propuestas para Trabajo Final, y estudio de su potencial paralelización.

Estrategias Metodológicas: Modalidades de enseñanza empleadas según tipo de actividad (teórica-práctica) Las clases teóricas se presentarán mediante distintas exposiciones orales acompañadas de proyección de powerpoint. Las actividades prácticas se realizarán en laboratorio de Pcs donde los alumnos recibirán una introducción de las distintas herramientas a utilizar, y se le brindarán códigos de ejemplo para la comprensión de los temas vistos en las clases teóricas. A su vez se desarrollarán clases teórico prácticas donde se analizarán ejemplos completos de aplicación. Esto brindará al alumno las herramientas necesarias para poder realizar los proyectos requeridos para la aprobación. Recursos didácticos para el desarrollo de las distintas actividades (guías, esquemas, lecturas previas, computadoras, software, otros) Para el desarrollo de la materia se utilizará el servidor Fermi del departamento de electrónica. El mismo cuenta con la GPU Nvidia GTX-480 y un microprocesador Intel core i5. El acceso al servidor será a través de terminales ssh en uno de los laboratorios del departamento, y la ejecución en GPU se administrará a través de la cola de ejecución de una herramienta de cluster (Torque Cluster Tools). También se solicitará la utilización de uno de los servidores donados por Intel para las implementaciones en CPU. Metodología de evaluación: Modalidad Al ser una materia que busca enseñar una herramienta de aplicación práctica, las evaluaciones se harán a través de dos trabajos prácticos y un proyecto final. Ya que de esta forma el alumno logrará realmente aprender a utilizar las herramientas y técnicas desarrolladas, y poder resolver aquellos inconvenientes que enfrentará el alumno cuando utilice esta herramienta en su carrera como profesional. Requisitos de regularidad Para finalizar el cursado de la materia se deberán aprobar dos trabajos prácticos: 1. TP Nº 1: El alumno deberá desarrollar un kernel de cuda para paralelizar algoritmos propuestos, comparando su performance con el mismo algoritmo implementado en open-mp. Deberá presentarse el código fuente con sus correspondientes archivos de cmake para compilación, los mismos deberán estar acompañados por un informe en el cual se incluye la comparativa entre ambas implementaciones. 2. TP Nº 2: El alumno desarrollará una implementación paralela de un algoritmo utilizando las técnicas de optimización específicas de la arquitectura. Se deberá comparar con un algoritmo equivalente para openmp, y lograr un factor de aceleración mayor al mínimo propuesto. La entrega del trabajo práctico tendrá el mismo formato que el TP Nº 1.

Requisitos de aprobación Para aprobar la materia se deberá presentar un trabajo final que consistirá en desarrollar un algoritmo de cálculo en cuda, en aplicaciones potencialmente paralelizables. El cual deberá lograr un factor de aceleración mayor a 10x respecto de su versión CPU optimizada. Los benchmark de performance se deberán realizar en el servidor Fermi disponible en el departamento de electrónica. Articulación Horizontal y vertical con otras materias: La materia se articula verticalmente con las materias del área de digitales, en particular con informática II y Técnicas Digitales II. Ya que utiliza como base las habilidad de programación adquiridas en informática II, y los conceptos de arquitecturas de procesadores de Técnicas Digitales II, para utilizar y comprender las arquitecturas de los procesadores gráficos modernos. La materia favorece la articulación horizontal con materias relacionadas con el procesamiento de señales, imágenes y la optimización de código para cálculo, como lo pueden ser Técnicas Digitales III y Procesamiento Digital de Imágenes; ya que permite la implementación de las ténicas aprendidas en las mismas, en los procesadores gráficos desarrollados durante el curso de esta materia. CRONOGRAMA ESTIMADO DE CLASES Unidad Temática Duración en hs cátedra Introducción a Arquitecturas Paralelas 4 Paralelización en CPU 8 Unidades de Procesamiento Gráfico 16 Optimización de código en GPU 16 Ejemplos de Aplicación 16 Bibliografía: Bibliografía Obligatoria: David B. Kirk y Wen-mei W, 2010, Programming Massively Parallel Processors. Estados Unidos, Editorial Morgan Kaufman. Wen-mei W. Hwu, 2011, GPU Computing Gems (Emerald Edition). Estados Unidos, Editorial Morgan Kaufman. Peter Pacheco, 2011, An Introduction to Parallel Programming. Estados Unidos, Editorial Morgan Kaufman.

Bibliografía Complementaria: NVIDIA, 2010, NVIDIA CUDA C Programming Guide 3.2. Santa Clara( Estados Unidos), NVIDIA Corporation. NVIDIA, 2010, Cuda C Best Practices Guide 3.2. Santa Clara (Estados Unidos), NVIDIA Corporation. NVIDIA, 2009, Fermi: NVIDIA's Next Generation CUDA Compute Architecture. Santa Clara(Estados Unidos), NVIDIA Corporation. Correlativas: Para cursar: Cursada: Técnicas Digitales II Aprobada: Informática II Análisis de Señales y Sistemas Para rendir: Aprobada: Técnicas Digitales II