Introducción a la Arquitectura y Plataforma de Programación de Cómputo Paralelo CUDA (36 hrs) Instructor M. en C. Cristhian Alejandro Ávila-Sánchez

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Introducción a la Arquitectura y Plataforma de Programación de Cómputo Paralelo CUDA (36 hrs) Instructor M. en C. Cristhian Alejandro Ávila-Sánchez"

Transcripción

1 Introducción a la Arquitectura y Plataforma de Programación de Cómputo Paralelo CUDA (36 hrs) I Presentación: Instructor M. en C. Cristhian Alejandro Ávila-Sánchez CUDA (Compute Unified Device Architecture) es la plataforma de cómputo paralelo de alto rendimiento desarrollada por NVIDIA. Su arquitectura está basada en un conjunto de miríadas de unidades de procesamiento (GPU, graphic processing units) interconectadas entre sí sobre las cuales se pueden correr aplicaciones distribuidas y paralelas mediante múltiples hilos de ejecución agrupados en warps. Cada GPU consta de dos o más procesadores de flujo y un planificador que gestiona la concurrencia y el orden de ejecución de los hilos, además de una memoria cache local. La arquitectura y la plataforma cuentan, entre sus principales características, con 1) múltiples colas de trabajo (hyper-q) para atender la ejecución de los hilos entre los múltiples núcleos, 2) paralelismo dinámico (dynamic parallelism) para crear kernels de procesamiento bajo demanda durante tiempo de ejecución, 3) administración de rejilla (grid management) de núcleos e hilos de procesamiento en grupos de granularidad variable, 4) un API de programación con instrucciones atómicas tanto lógicas como de aritmética entera, funciones de permutación de datos entre hilos dentro de un warp (warp shuffle) y 5) funcionalidades de sincronización. Su diseño y el avance en tecnología, permiten construir chips con gran capacidad de cómputo, alto desempeño y eficiencia. Por ejemplo, uno de los modelos más recientes, la tarjeta CUDA Pascal GeForce GTX 1060 cuenta con 1280 núcleos de procesamiento, cada uno con una velocidad de 1.75 GHz, memoria total de 6GB, con un ancho de banda de 192 GB/s, lo que en conjunto ofrece una capacidad de cómputo de 4.4 TFLOPs con 400 Watts de potencia. Estas características y demás funcionalidades de las tarjetas CUDA las hacen ideales para el procesamiento de gráficos, aceleración de cálculos, cómputo intensivo, análisis masivo de datos, algoritmos de aprendizaje de máquina, criptografía, métodos numéricos, simulaciones de física de partículas, modelado de dinámica molecular y programas de bioinformática, entre varias aplicaciones. Objetivo General: Presentar una introducción y un panorama general de la arquitectura y plataforma NVIDIA CUDA, así como los principios y aspectos básicos de diseño y programación para desarrollar aplicaciones distribuidas y paralelas en esta tecnología. El curso es teóricopráctico, con ejemplos y ejercicios incluidos en cada clase. II Perfil de ingreso: Conocimientos de programación en Lenguaje C/C++. Deseable: conocimientos de cómputo distribuido y paralelo. 1

2 III Keywords: CUDA, NVIDIA, cómputo distribuido y paralelo, tarjeta gráfica, simulaciones, cómputo científico. IV Temario: 0 Introducción a CUDA: Cómputo distribuido, paralelo y de alto desempeño con GPU (graphic processing units). 1 Arquitecturas CUDA 1.1 Tesla 1.2 Fermi 1.3 Kepler 1.4 Maxwell 1.5 Pascal 1.6 Volta 2 Instalando CUDA 2.1 Toolkit 2.2 Drivers 2.3 Configuración 2.4 Prueba de consulta del funcionamiento del dispositivo 2.5 Práctica: Sesión de instalación y configuración 2.6 Práctica: Consulta del estado de la tarjeta y pruebas de funcionamiento 3 CUDA SDK y ambiente de programación 3.1 Compilador CUDA 3.2 Enlazado de dispositivos 3.3 IDE NVIDIA Nsight 3.4. Práctica: Configuración y exploración del IDE NVIDIA Nsight 4 Primer programa CUDA: Aspectos básicos. 4.1 Código anfitrión (host) y de dispositivo (device) 4.2 kernels, rejillas (grids), bloques, hilos (threads) y warps. 4.3 Variables integradas: griddim, blockidx, blockdim, threadidx, warpsize. 4.4 Práctica: Desarrollo de un programa CUDA con una estructura básica. 5 Arquitectura de Hardware 5.1 GPU (graphic processing unit) 5.1 Flujos (streams) 5.2 Rejilla (grids) 5.3 Warps 5.4 Núcles (cores) 5.5 Warps 5.6 Memoria 5.7 Práctica: Consulta de los recursos de hardware disponibles vía un programa CUDA 2

3 6 Arquitectura de Máquina Virtual 6.1 Parallel Thread Execution (PTX) 6.2 Modelo de programación PTX. 6.3 Jerarquía de hilos y de memoria 6.4 Registros y set de instrucciones 6.5 Práctica: Compilación de un programa CUDA, reconocimiento y mapeo del código objeto de la máquina virtual PTX 7 Plataforma de Software 7.1 Jerarquía de memoria 7.2 Jerarquía de hilos, bloques y kernels. 7.3 Práctica: Programación y ejecución de kernels con granularidad variable 7.4 Práctica: Manejo de memoria dentro de kernels 8 Sistema de tiempo de ejecución 8.1 Hilos (threads) 8.2 Grupos de hilos (warps) 8.3 Bloques (blocks) 8.4 Kernels 8.5 Flujos (streams) 8.6 Eventos 8.7 Práctica: Programación y ejecución de la jerarquía de kernels e hilos 9 Memoria 9.1 Memorias de dispositivo (device), anfitrión (host) y global 9.2 Inicialización 9.3 Compartida (shared) 9.4 Paginada (paged) y fija (page-locked) 9.5 Unificada (unified) 9.5 Práctica: Asignación, uso y liberación de memoria 10 Sincronización 10.1 Ejecución concurrente síncrona 10.2 Regiones compartidas 10.3 Exclusión mutua 10.4 Barreras de hilos 10.5 Práctica: Sincronización de hilos 11 Ejecución Asíncrona 11.1 Ejecución concurrente asíncrona 11.2 Flujos 11.3 Eventos 11.4 Prioridades 11.5 Práctica: Concurrencia asíncrona de hilos 12 Funciones atómicas de lógica binaria y de aritmética entera 12.1 and, or, xor 12.2 add, sub 12.3 inc, dec 12.4 min, max 3

4 12.5 exch, cas 12.6 Empleo en exclusión mutua y esquemas de reducción 12.6 Práctica: Manejo de funciones atómicas lógicas y aritméticas 13 Cómputo y comunicación en warps 13.1 Funciones de permutación 13.2 Intercambio 13.3 Broadcast 13.4 Scan 13.5 Reducción 13.6 Práctica: Programación de algoritmos de comunicación entre hilos dentro de warps 14 Características y funcionalidades CUDA 14.1 Hyper-Q Streaming Multiprocessor 14.2 Grid Management Unit 14.3 Warp Scheduling 14.4 Dynamic Parallelism 14.5 Práctica: Funcionamiento de hilos y kernels con hyper-q, grid-management, warp-scheduling y dynamic parallelism 15 Desarrollo de una aplicación integrativa 15.1 Librería de Algebra Lineal 15.2 Práctica: Integración de módulos programados en los ejercicios previos para desarrollar una librería de algebra lineal distribuida y paralela 16 Guía de programación y recomendaciones 16.1 Recursos de procesamiento 16.2 Depurador 16.3 Evaluación de perfiles de rendimiento 16.4 Control de flujos 16.5 Optimizaciones de memoria y procesamiento 16.6 Despliegue y entrega de aplicaciones 16.7 Práctica: Pruebas, depuración, evaluación del desempeño y optimización de la librería de algebra lineal V Bibliografía: CUDA for Engineers: An Introduction to High-Performance Parallel Computing (2015) Duane Storti and Mete Yurtoglu Ed. Addison-Wesley Professional CUDA C Programming (2014) John Cheng and Max Grossman Ed. Wrox VI Recursos en Línea: NVIDIA CUDA: 4

5 Tarjeta Pascal: Tarjeta Tesla: CUDA Toolkit y drivers: Guía de Programación: Recursos para desarrolladores: IDE NVIDIA Nsight (ediciones para Linux, MacOS y Windows): 5

Francisco J. Hernández López

Francisco J. Hernández López Francisco J. Hernández López fcoj23@cimat.mx 2 Procesadores flexibles de procesamiento general Se pueden resolver problemas de diversas áreas: Finanzas, Gráficos, Procesamiento de Imágenes y Video, Algebra

Más detalles

CUDA (Compute Unified Device Architecture)

CUDA (Compute Unified Device Architecture) CUDA (Compute Unified Device Architecture) Alvaro Cuno 23/01/2010 1 CUDA Arquitectura de computación paralela de propósito general La programación para la arquitectura CUDA puede hacerse usando lenguaje

Más detalles

Alejandro Molina Zarca

Alejandro Molina Zarca Compute Unified Device Architecture (CUDA) Que es CUDA? Por qué CUDA? Dónde se usa CUDA? El Modelo CUDA Escalabilidad Modelo de programación Programación Heterogenea Memoria Compartida Alejandro Molina

Más detalles

INTRODUCCIÓN A LA PROGRAMACIÓN EN CUDA. Francisco Javier Hernández López

INTRODUCCIÓN A LA PROGRAMACIÓN EN CUDA. Francisco Javier Hernández López INTRODUCCIÓN A LA PROGRAMACIÓN EN CUDA Francisco Javier Hernández López http://www.cimat.mx/~fcoj23 Guanajuato, Gto. Noviembre de 2012 Introducción a la Programación en CUDA 2 Qué es el Cómputo Paralelo

Más detalles

MAGMA. Matrix Algebra on GPU and Multicore Architecture. Ginés David Guerrero Hernández

MAGMA. Matrix Algebra on GPU and Multicore Architecture. Ginés David Guerrero Hernández PLASMA GPU MAGMA Rendimiento Trabajo Futuro MAGMA Matrix Algebra on GPU and Multicore Architecture Ginés David Guerrero Hernández gines.guerrero@ditec.um.es Grupo de Arquitecturas y Computación Paralela

Más detalles

GPGPU ( GENERAL PURPOSE COMPUTING ON GRAPHICS PROCESSING UNITS)

GPGPU ( GENERAL PURPOSE COMPUTING ON GRAPHICS PROCESSING UNITS) 26 GPGPU ( GENERAL PURPOSE COMPUTING ON GRAPHICS PROCESSING UNITS) Técnica GPGPU consiste en el uso de las GPU para resolver problemas computacionales de todo tipo aparte de los relacionados con el procesamiento

Más detalles

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

Plan 95 Adecuado DEPARTAMENTO: ELECTRÓNICA CLASE: ELECTIVA DE ESPECIALIDAD ÁREA: TÉCNICAS DIGITALES HORAS SEM.: 4 HS. HORAS / AÑO: 64 HS. 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 /

Más detalles

Francisco Javier Hernández López

Francisco Javier Hernández López Francisco Javier Hernández López fcoj23@cimat.mx http://www.cimat.mx/~fcoj23 Ejecución de más de un cómputo (cálculo) al mismo tiempo o en paralelo, utilizando más de un procesador. Arquitecturas que hay

Más detalles

CUDA: MODELO DE PROGRAMACIÓN

CUDA: MODELO DE PROGRAMACIÓN CUDA: MODELO DE PROGRAMACIÓN Autor: Andrés Rondán Tema: GPUGP: nvidia CUDA. Introducción En Noviembre de 2006, NVIDIA crea CUDA, una arquitectura de procesamiento paralelo de propósito general, con un

Más detalles

Arquitecturas GPU v. 2015

Arquitecturas GPU v. 2015 v. 2015 http://en.wikipedia.org/wiki/graphics_processing_unit http://en.wikipedia.org/wiki/stream_processing http://en.wikipedia.org/wiki/general-purpose_computing_on_graphics_processing_ units http://www.nvidia.com/object/what-is-gpu-computing.html

Más detalles

Arquitecturas GPU v. 2013

Arquitecturas GPU v. 2013 v. 2013 Stream Processing Similar al concepto de SIMD. Data stream procesado por kernel functions (pipelined) (no control) (local memory, no cache OJO). Data-centric model: adecuado para DSP o GPU (image,

Más detalles

Guía docente de la asignatura

Guía docente de la asignatura Asignatura Materia Módulo Titulación COMPUTACION PARALELA COMPLEMENTOS DE INGENIERÍA DE COMPUTADORES (vacío) GRADO EN INGENIERÍA INFORMÁTICA Plan 464 Código 45218 Periodo de impartición 1 er. CUATRIMESTRE

Más detalles

CÓMPUTO DE ALTO RENDIMIENTO EN MEMORIA COMPARTIDA Y PROCESADORES GRÁFICOS

CÓMPUTO DE ALTO RENDIMIENTO EN MEMORIA COMPARTIDA Y PROCESADORES GRÁFICOS CÓMPUTO DE ALTO RENDIMIENTO EN MEMORIA COMPARTIDA Y PROCESADORES GRÁFICOS Leopoldo N. Gaxiola, Juan J. Tapia Centro de Investigación y Desarrollo de Tecnología Digital Instituto Politécnico Nacional Avenida

Más detalles

INTRODUCCIÓN A LA COMPUTACIÓN PARALELA CON GPUS

INTRODUCCIÓN A LA COMPUTACIÓN PARALELA CON GPUS INTRODUCCIÓN A LA COMPUTACIÓN PARALELA CON GPUS Sergio Orts Escolano sorts@dtic.ua.es Vicente Morell Giménez vmorell@dccia.ua.es Universidad de Alicante Departamento de tecnología informática y computación

Más detalles

Primeros pasos con CUDA. Clase 1

Primeros pasos con CUDA. Clase 1 Primeros pasos con CUDA Clase 1 Ejemplo: suma de vectores Comencemos con un ejemplo sencillo: suma de vectores. Sean A, B y C vectores de dimensión N, la suma se define como: C = A + B donde C i = A i

Más detalles

Arquitectura de aceleradores. Carlos Bederián IFEG CONICET GPGPU Computing Group FaMAF UNC bc@famaf.unc.edu.ar

Arquitectura de aceleradores. Carlos Bederián IFEG CONICET GPGPU Computing Group FaMAF UNC bc@famaf.unc.edu.ar Arquitectura de aceleradores Carlos Bederián IFEG CONICET GPGPU Computing Group FaMAF UNC bc@famaf.unc.edu.ar Contenidos Cómo llegamos hasta acá Qué hay ahora Qué hace Cómo lo uso Hacia dónde parece que

Más detalles

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

Computación de Propósito General en Unidades de Procesamiento Gráfico GPGPU. Clase 0 Lanzamiento del Curso. Motivación Computación de Propósito General en Unidades de Procesamiento Gráfico () Pablo Ezzatti, Martín Pedemonte Clase 0 Lanzamiento del Curso Contenido Evolución histórica en Fing Infraestructura disponible en

Más detalles

Programación Paralela

Programación Paralela Programación Paralela 4º Grado Ing. Informática Depto. de Lenguajes y Sistemas Informáticos Universidad de Granada Datos de la Asignatura PÁGINAS WEB: Web de material docente: http://lsi.ugr.es/~jmantas/ppr/

Más detalles

cuevogenet Paralelización en CUDA de la Dinámica Evolutiva de Redes Génicas Dirigido por: Fernando Díaz del Río José Luis Guisado Lizar

cuevogenet Paralelización en CUDA de la Dinámica Evolutiva de Redes Génicas Dirigido por: Fernando Díaz del Río José Luis Guisado Lizar cuevogenet Paralelización en CUDA de la Dinámica Evolutiva de Redes Génicas Realizado por: Raúl García Calvo Dirigido por: Fernando Díaz del Río José Luis Guisado Lizar Objetivos Implementar un algoritmo

Más detalles

Francisco J. Hernández López

Francisco J. Hernández López Francisco J. Hernández López fcoj23@cimat.mx Ejecución de más de un cómputo (cálculo) al mismo tiempo o en paralelo, utilizando más de un procesador. Sistema de Cómputo Paralelo Hardware Parallel programming:

Más detalles

PLANIFICACIÓN DE LA DOCENCIA UNIVERSITARIA GUÍA DOCENTE. Programación a bajo nivel

PLANIFICACIÓN DE LA DOCENCIA UNIVERSITARIA GUÍA DOCENTE. Programación a bajo nivel CENTRO UNIVERSITARIO DE TECNOLOGÍA Y ARTE DIGITAL PLANIFICACIÓN DE LA DOCENCIA UNIVERSITARIA GUÍA DOCENTE Programación a bajo nivel 1. DATOS DE IDENTIFICACIÓN DE LA ASIGNATURA. Título: Facultad: Grado

Más detalles

Concurrencia y Paralelismo

Concurrencia y Paralelismo Concurrencia y Paralelismo Carrera: Ingeniería en Computación Profesor Responsable: Naiouf, Ricardo Marcelo Año: 4º Duración: Semestral Carga Horaria Semanal: 6hs Carga Horaria Total: 96hs Objetivos Generales

Más detalles

CDI Arquitecturas que soportan la concurrencia. granularidad

CDI Arquitecturas que soportan la concurrencia. granularidad granularidad Se suele distinguir concurrencia de grano fino es decir, se aprovecha de la ejecución de operaciones concurrentes a nivel del procesador (hardware) a grano grueso es decir, se aprovecha de

Más detalles

Tema 3 GPUs: Introducción

Tema 3 GPUs: Introducción Tema 3 GPUs: Introducción Alberto Ros Bardisa Tema 3 GPUs Alberto Ros Bardisa 1 / 15 Agenda 1 GPUs: Introducción 2 GP-GPU 3 Ejemplos comerciales 4 Conclusiones Tema 3 GPUs Alberto Ros Bardisa 2 / 15 Agenda

Más detalles

PROGRAMA DE ESTUDIO Área de Formación : Fecha de elaboración: 28 de mayo de 2010 Fecha de última actualización:

PROGRAMA DE ESTUDIO Área de Formación : Fecha de elaboración: 28 de mayo de 2010 Fecha de última actualización: PROGRAMA DE ESTUDIO Programa Educativo: Área de Formación : Licenciatura en Sistemas Computacionales Integral profesional Horas teóricas: 2 Horas prácticas: 2 Total de Horas: 4 Cómputo paralelo Total de

Más detalles

INSTITUTO POLITECNICO NACIONAL

INSTITUTO POLITECNICO NACIONAL INSTITUTO POLITECNICO NACIONAL SECRETARÍA DE INVESTIGACIÓN Y POSGRADO DIVISION DE ESTUDIOS DE POSGRADO FORMATO GUIA PARA REGISTRO DE CURSOS DE PROPOSITO ESPECIFICO I. DATOS DEL CURSO DE PROPOSITO ESPECIFICO

Más detalles

Planificaciones Sistemas Operativos. Docente responsable: MENDEZ MARIANO. 1 de 6

Planificaciones Sistemas Operativos. Docente responsable: MENDEZ MARIANO. 1 de 6 Planificaciones 7508 - Sistemas Operativos Docente responsable: MENDEZ MARIANO 1 de 6 OBJETIVOS 1-Estudiar y conocer en detalle los pilares fundamentales de los sistemas operativos: el Kernel y Proceso,

Más detalles

Planificaciones Sistemas Operativos. Docente responsable: MENDEZ MARIANO. 1 de 6

Planificaciones Sistemas Operativos. Docente responsable: MENDEZ MARIANO. 1 de 6 Planificaciones 7508 - Sistemas Operativos Docente responsable: MENDEZ MARIANO 1 de 6 OBJETIVOS 1-Estudiar y conocer en detalle los pilares fundamentales de los sistemas operativos: el Kernel y Proceso,

Más detalles

Nociones básicas de computación paralela

Nociones básicas de computación paralela Nociones básicas de computación paralela Javier Cuenca 1, Domingo Giménez 2 1 Departamento de Ingeniería y Tecnología de Computadores Universidad de Murcia 2 Departamento de Informática y Sistemas Universidad

Más detalles

Planificaciones Sistemas Operativos. Docente responsable: MENDEZ MARIANO. 1 de 5

Planificaciones Sistemas Operativos. Docente responsable: MENDEZ MARIANO. 1 de 5 Planificaciones 9503 - Sistemas Operativos Docente responsable: MENDEZ MARIANO 1 de 5 OBJETIVOS 1-Estudiar y conocer en detalle los pilares fundamentales de los sistemas operativos: el Kernel y Proceso,

Más detalles

CARACTERIZACION DE PROBLEMAS A SOLUCIONAR MEDIANTE PROGRAMACIÓN MULTIPROCESO DE MEMORIA COMPARTIDA. Autor ERIKA VIVIANA RIAÑO BEJAR

CARACTERIZACION DE PROBLEMAS A SOLUCIONAR MEDIANTE PROGRAMACIÓN MULTIPROCESO DE MEMORIA COMPARTIDA. Autor ERIKA VIVIANA RIAÑO BEJAR CARACTERIZACION DE PROBLEMAS A SOLUCIONAR MEDIANTE PROGRAMACIÓN MULTIPROCESO DE MEMORIA COMPARTIDA Autor ERIKA VIVIANA RIAÑO BEJAR Director JOSE ORLANDO MALDONADO BAUTISTA DEPARTAMENTO DE INGENIERÍAS ELÉCTRICA

Más detalles

INTRODUCCIÓN A LA PROGRAMACIÓN DE GPUS CON CUDA

INTRODUCCIÓN A LA PROGRAMACIÓN DE GPUS CON CUDA INTRODUCCIÓN A LA PROGRAMACIÓN DE GPUS CON CUDA Francisco Igual Peña León, 10 de mayo de 2011 PLANIFICACIÓN 1. Miércoles: Conceptos introductorios 1. Breve presentación de conceptos básicos 2. Ejercicios

Más detalles

Programación de una GPU con CUDA

Programación de una GPU con CUDA Programación de una GPU con CUDA Programación de Arquitecturas Multinúcleo Universidad de Murcia. Contenidos Introducción Arquitectura y programación de CUDA Optimización y depuración de código Librerías

Más detalles

SILABO DE SISTEMAS OPERATIVOS

SILABO DE SISTEMAS OPERATIVOS UNIVERSIDAD PRIVADA DEL NORTE Facultad de Ingeniería I. DATOS GENERALES SILABO DE SISTEMAS OPERATIVOS 1.1. Facultad : Ingeniería. 1.2. Carrera Profesional : Ingeniería de Sistemas. 1.3. Tipo de Curso :

Más detalles

Fecha de elaboración: Agosto de 2004 Fecha de última actualización: Julio de 2010

Fecha de elaboración: Agosto de 2004 Fecha de última actualización: Julio de 2010 PROGRAMA DE ESTUDIO Programa Educativo: Área de Formación : Licenciatura en ciencias computacionales Integral profesional Programa elaborado por: Programación Concurrente Horas teóricas: 1 Horas prácticas:

Más detalles

Inside Kepler. I. Presentación de la arquitectura. Índice de contenidos [25 diapositivas] Kepler, Johannes ( )

Inside Kepler. I. Presentación de la arquitectura. Índice de contenidos [25 diapositivas] Kepler, Johannes ( ) Índice de contenidos [25 diapositivas] Inside Manuel Ujaldón Nvidia CUDA Fellow Dpto. Arquitectura de Computadores Universidad de Málaga 1. Presentación de la arquitectura [3 diapositivas] 2. Los cores

Más detalles

La GPU. I. La tarjeta gráfica y su GPU. Indice de contenidos [36 diapositivas] El diagrama de bloques de la tarjeta gráfica

La GPU. I. La tarjeta gráfica y su GPU. Indice de contenidos [36 diapositivas] El diagrama de bloques de la tarjeta gráfica Indice de contenidos [36 diapositivas] 1. La tarjeta gráfica y su GPU [7]. Perfiles de usuario [5] 3. Generaciones y modelos comerciales [4] La GPU 1. Pascal [7]. Volta [6] 3. Resumen de modelos comerciales

Más detalles

SISTEMAS EN TIEMPO REAL

SISTEMAS EN TIEMPO REAL SISTEMAS EN TIEMPO REAL Año académico: 2006/07 Centro: Escuela Politécnica Superior Estudios: Ingeniero Técnico en Informática de Sistemas Asignatura: Sistemas en Tiempo real Ciclo: 1º Curso: 3º Cuatrimestre:

Más detalles

Arquitectura de computadores I

Arquitectura de computadores I Arquitectura de computadores I Perspectiva de alto nivel de los computadores Septiembre de 2017 Contenido Componentes del computador Funcionamiento del computador Estructuras de interconexión Interconexión

Más detalles

GPU-Ejemplo CUDA. Carlos García Sánchez

GPU-Ejemplo CUDA. Carlos García Sánchez Carlos García Sánchez 1 2 Contenidos Motivación GPU vs. CPU GPU vs. Vectoriales CUDA Sintaxis Ejemplo 2 3 Motivación Computación altas prestaciones: www.top500.org 1º: Titan (300mil AMD-Opteron + 19mil

Más detalles

Guía Docente 2017/2018

Guía Docente 2017/2018 Guía Docente 2017/2018 Programación paralela Parallel Programming Grado en Ingeniería Informática A distancia hola Universidad Católica San Antonio de Murcia Tlf: (+34) 968 278 160 info@ucam.edu www.ucam.edu

Más detalles

Introducción a la programación de códigos paralelos con CUDA y su ejecución en un GPU multi-hilos

Introducción a la programación de códigos paralelos con CUDA y su ejecución en un GPU multi-hilos Introducción a la programación de códigos paralelos con CUDA y su ejecución en un GPU multi-hilos Gerardo A. Laguna-Sánchez *, Mauricio Olguín-Carbajal **, Ricardo Barrón-Fernández *** Recibido: 02 de

Más detalles

DESARROLLO DE APLICACIONES EN CUDA

DESARROLLO DE APLICACIONES EN CUDA DESARROLLO DE APLICACIONES EN CUDA Curso 2014 / 15 Procesadores Gráficos y Aplicaciones en Tiempo Real Alberto Sánchez GMRV 2005-2015 1/30 Contenidos Introducción Debugging Profiling Streams Diseño de

Más detalles

Pontificia Universidad Católica del Ecuador

Pontificia Universidad Católica del Ecuador 1. DATOS INFORMATIVOS: MATERIA O MÓDULO: CÓDIGO: CARRERA: NIVEL: Sistemas Operativos IS603.a Sistemas Tercero No. CRÉDITOS: 4 CRÉDITOS TEORÍA: 4 CRÉDITOS PRÁCTICA: 0 SEMESTRE / AÑO ACADÉMICO: Segundo Semestre

Más detalles

Técnicas de Programac. Concurrente I PLANIFICACIONES Actualización: 2ºC/2018. Planificaciones Técnicas de Programac.

Técnicas de Programac. Concurrente I PLANIFICACIONES Actualización: 2ºC/2018. Planificaciones Técnicas de Programac. Planificaciones 7559 - Técnicas de Programac. Concurrente I Docente responsable: GARIBALDI JULIA ELENA 1 de 5 OBJETIVOS Familiarizar al estudiante con las técnicas de Programación Concurrente, los conceptos

Más detalles

COMPUTACIÓN DE ALTA PERFORMANCE

COMPUTACIÓN DE ALTA PERFORMANCE COMPUTACIÓN DE ALTA PERFORMANCE Curso 2010 Sergio Nesmachnow (sergion@fing.edu.uy) Gerardo Ares (gares@fing.edu.uy) Grupo de Procesamiento Paralelo Aplicado Centro de Cálculo COMPUTACIÓN DE ALTA PERFORMANCE

Más detalles

TEMA 1: EJECUCIÓN PARALELA: FUNDAMENTOS(I)

TEMA 1: EJECUCIÓN PARALELA: FUNDAMENTOS(I) Grupo de Arquitectura de Computadores, Comunicaciones y Sistemas ARQUITECTURA DE COMPUTADORES II AUTORES: David Expósito Singh Florin Isaila Daniel Higuero Alonso-Mardones Javier García Blas Borja Bergua

Más detalles

Consumo Energético en Arquitecturas Multicore. Análisis sobre un Algoritmo de Criptografía Simétrica.

Consumo Energético en Arquitecturas Multicore. Análisis sobre un Algoritmo de Criptografía Simétrica. Consumo Energético en Arquitecturas Multicore. Análisis sobre un Algoritmo de Criptografía Simétrica. Fernando Romero 1, Adrian Pousa 1, Victoria Sanz 1 2, Armando De Giusti 1 3 1 Instituto de Investigacion

Más detalles

ESCUELA DE INGENIERIA Informática Y Sistemas

ESCUELA DE INGENIERIA Informática Y Sistemas ESCUELA DE INGENIERIA Informática Y Sistemas ASIGNATURA SISTEMAS OPERATIVOS CODIGO ST0257 SEMESTRE 2013-2 INTENSIDAD HORARIA 64 horas semestral CARACTERÍSTICAS Suficientable CRÉDITOS 4 1. JUSTIFICACIÓN

Más detalles

Guía Docente 2018/2019

Guía Docente 2018/2019 Guía Docente 2018/2019 Programación paralela Parallel Programming Grado en Ingeniería Informática A distancia Índice Programación Paralela... Error! Marcador no definido. Breve descripción de la asignatura...

Más detalles

PROGRAMA DE CURSO. Horas de Cátedra ,5 5,5. Resultados de Aprendizaje

PROGRAMA DE CURSO. Horas de Cátedra ,5 5,5. Resultados de Aprendizaje Código Nombre CC4302 Sistemas Operativos Nombre en Inglés Operating Systems CC4301 SCT Unidades Docentes PROGRAMA DE CURSO Horas de Cátedra Horas Docencia Auxiliar Horas de Trabajo Personal 6 10 3 1,5

Más detalles

MPP. MIMD Computador Masivamente Paralelo

MPP. MIMD Computador Masivamente Paralelo MPP MIMD Computador Masivamente Paralelo BLUE GENE/Q Introducción Se trata del tercer representante de una serie que comenzó con el Blue Gene/L y continuó con el Blue Gene/P. Son máquinas desarrolladas

Más detalles

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

FUNDAMENTOS DE COMPUTACIÓN PARA CIENTÍFICOS. CNCA Abril 2013 FUNDAMENTOS DE COMPUTACIÓN PARA CIENTÍFICOS CNCA Abril 2013 6. COMPUTACIÓN DE ALTO RENDIMIENTO Ricardo Román DEFINICIÓN High Performance Computing - Computación de Alto Rendimiento Técnicas, investigación

Más detalles

Introducción a Cómputo Paralelo con CUDA C/C++

Introducción a Cómputo Paralelo con CUDA C/C++ UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO Facultad de Ingeniería Introducción a Cómputo Paralelo con CUDA C/C++ Laboratorio de Intel y Cómputo de alto desempeño Elaboran: Revisión: Ing. Laura Sandoval Montaño

Más detalles

III-LIDI Facultad de Informática UNLP La Plata, Argentina 2. CONICET, Argentina

III-LIDI Facultad de Informática UNLP La Plata, Argentina 2. CONICET, Argentina Comparación de rendimiento de algoritmos de cómputo intensivo y de acceso intensivo a memoria sobre arquitecturas multicore. Aplicación al algoritmo de criptografía AES. Adrian Pousa 1, Victoria María

Más detalles

Guía docente de la asignatura Computación Paralela

Guía docente de la asignatura Computación Paralela Guía docente de la asignatura Computación Paralela Asignatura Materia Módulo Titulación COMPUTACION PARALELA COMPUTACION TECNOLOGIAS ESPECIFICAS GRADO EN INGENIERÍA INFORMÁTICA Plan 545 Código 46929 Periodo

Más detalles

Aspectos avanzados de arquitectura de computadoras Multithreading. Facultad de Ingeniería - Universidad de la República Curso 2017

Aspectos avanzados de arquitectura de computadoras Multithreading. Facultad de Ingeniería - Universidad de la República Curso 2017 Aspectos avanzados de arquitectura de computadoras Multithreading Facultad de Ingeniería - Universidad de la República Curso 2017 Introducción En este capítulo se explorará la posibilidad de ejecutar múltiples

Más detalles

CUDA 5.5 y Visual Studio Express 2012 para Escritorio. Primeros pasos.

CUDA 5.5 y Visual Studio Express 2012 para Escritorio. Primeros pasos. CUDA 5.5 y Visual Studio Express 2012 para Escritorio. Primeros pasos. La nueva versión de CUDA 5.5 es completamente compatible con la plataforma de desarrollo Visual Studio Express 2012 para escritorio

Más detalles

División Académica de Informática y Sistemas

División Académica de Informática y Sistemas Área de formación Sustantiva Profesional Nombre de la asignatura Docencia frente a grupo según SATCA Trabajo de Campo Supervisado según SATCA HCS HPS TH C HTCS TH C TC 2 2 4 4 0 0 0 4 Clave de la asignatura

Más detalles

Esta asignatura apoyará al alumno en la consecución de las siguientes competencias:

Esta asignatura apoyará al alumno en la consecución de las siguientes competencias: Nombre de la asignatura: Sistemas Operativos II Créditos: 3-2-5 Aportación al perfil Esta asignatura apoyará al alumno en la consecución de las siguientes competencias: Aplicar conocimientos científicos

Más detalles

ANX-PR/CL/ GUÍA DE APRENDIZAJE

ANX-PR/CL/ GUÍA DE APRENDIZAJE PROCESO DE COORDINACIÓN DE LAS ENSEÑANZAS PR/CL/001 ASIGNATURA 615000031 - PLAN DE ESTUDIOS 61IC - CURSO ACADÉMICO Y SEMESTRE 2017-18 - Segundo semestre Índice Guía de Aprendizaje 1. Datos descriptivos...1

Más detalles

ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA GRADO DE INGENIERÍA INFORMÁTICA. Curso 2016/17. Asignatura: TÉCNICAS DE OPTIMIZACIÓN DATOS DE LA ASIGNATURA

ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA GRADO DE INGENIERÍA INFORMÁTICA. Curso 2016/17. Asignatura: TÉCNICAS DE OPTIMIZACIÓN DATOS DE LA ASIGNATURA ESCUELA POLITÉCNICA SUPERIOR DE CÓRDOBA GRADO DE INGENIERÍA INFORMÁTICA Asignatura: DATOS DE LA ASIGNATURA Denominación: Código: 101434 Plan de estudios: GRADO DE INGENIERÍA INFORMÁTICA Curso: 4 Denominación

Más detalles

TEMARIO. Créditos teóricos: 3 Créditos prácticos: 3. Lenguajes y Sistemas Informáticos Departamento: Lenguajes y Computación - PROGRAMA DE TEORÍA:

TEMARIO. Créditos teóricos: 3 Créditos prácticos: 3. Lenguajes y Sistemas Informáticos Departamento: Lenguajes y Computación - PROGRAMA DE TEORÍA: Curso: 2005/2006 Centro: Escuela Politécnica Superior Estudios: 2º Ciclo de Ingeniería en Informática Asignatura: Diseño de Sistemas Operativos Ciclo: 2º Curso: 4º Cuatrimestre: 1º Carácter: Optativa Créditos

Más detalles

Cuerpo de Profesores Técnicos de Formación Profesional

Cuerpo de Profesores Técnicos de Formación Profesional Tabla de equivalencias entre los temarios de Sistemas y Aplicaciones Informáticas de Profesores Técnicos de Formación Profesional e Informática del Cuerpo de Profesores de Enseñanza Secundaria Cuerpo de

Más detalles

PROGRAMACIÓN DISTRIBUIDA

PROGRAMACIÓN DISTRIBUIDA PLAN DE ESTUDIOS 2008 LICENCIADO EN INFORMÁTICA FACULTAD DE CONTADURÍA, ADMINISTRACIÓN E INFORMÁTICA ASIGNATURA: PROGRAMACIÓN DISTRIBUIDA ÁREA DEL CONOCIMIENTO: PROGRAMACIÓN E INGENIERÍA DE SOFTWARE CLAVE:

Más detalles

Comparación del uso de GPU y cluster de multicore en problemas con alta demanda computacional

Comparación del uso de GPU y cluster de multicore en problemas con alta demanda computacional Comparación del uso de GPU y cluster de multicore en problemas con alta demanda computacional Erica Montes de Oca 1, Laura De Giusti 1, Armando De Giusti 1 2, Marcelo Naiouf 1 1 Instituto de Investigación

Más detalles

Pontificia Universidad Católica del Ecuador

Pontificia Universidad Católica del Ecuador 1. DATOS INFORMATIVOS: FACULTAD DE INGENIERÍA ESCUELA DE SISTEMAS MATERIA O MÓDULO: Sistemas Operativos CÓDIGO: IS603.a CARRERA: INGENIERÍA DE SISTEMAS NIVEL: TERCERO No. CRÉDITOS: 4 CRÉDITOS TEORÍA: 4

Más detalles

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

PLANIFICACIÓN DE LA DOCENCIA UNIVERSITARIA GUÍA DOCENTE. Introducción a la concurrencia CENTRO UNIVERSITARIO DE TECNOLOGÍA Y ARTE DIGITAL PLANIFICACIÓN DE LA DOCENCIA UNIVERSITARIA GUÍA DOCENTE Introducción a la concurrencia 1. DATOS DE IDENTIFICACIÓN DE LA ASIGNATURA. Título: Facultad: Departamento/Instituto:

Más detalles

NVIDIA CUDA RESEARCH CENTER

NVIDIA CUDA RESEARCH CENTER NVIDIA CRC Universidad Sevilla 1 NVIDIA CUDA RESEARCH CENTER APLICACIONES Y OPORTUNIDADES Miguel Ángel Martínez del Amor Research Group on Natural Computing (RGNC) Universidad de Sevilla NVIDIA CRC Universidad

Más detalles

Programa Regular. Asignatura: Organización y Arquitectura de Computadoras.

Programa Regular. Asignatura: Organización y Arquitectura de Computadoras. Programa Regular Asignatura: Organización y Arquitectura de Computadoras. Carrera: Ingeniería en Informática. Ciclo Lectivo: Primer Cuatrimestre 2017 Año en el plan de estudios: 2 Año Coordinador/Profesor:

Más detalles

CAR. Responsable : María del Carmen Heras Sánchez. Asesores Técnicos : Daniel Mendoza Camacho Yessica Vidal Quintanar.

CAR. Responsable : María del Carmen Heras Sánchez. Asesores Técnicos : Daniel Mendoza Camacho Yessica Vidal Quintanar. CAR Responsable : María del Carmen Heras Sánchez Asesores Técnicos : Daniel Mendoza Camacho Yessica Vidal Quintanar http://acarus2.uson.mx Infraestructura de Hardware Software Conexiones remotas http://acarus2.uson.mx

Más detalles

Contenido 1. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS PROCESOS Prólogo...

Contenido 1. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS PROCESOS Prólogo... 1 Prólogo... xv 1. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS... 1 1.1. Conceptos generales sobre sistemas operativos... 2 1.1.1. Funciones del sistema operativo... 2 1.1.2. Componentes del sistema operativo...

Más detalles

Segunda Parte: TECNOLOGÍA CUDA

Segunda Parte: TECNOLOGÍA CUDA Segunda Parte: (compute unified device architecture) 12 I. CUDA CUDA es una arquitectura de cálculo paralelo de NVIDIA que aprovecha la potencia de la GPU (unidad de procesamiento gráfico) para proporcionar

Más detalles

Granularidad y latencia

Granularidad y latencia Niveles de paralelismo y latencias de comunicación Niveles de paralelismo. Granularidad o tamaño de grano. Latencia de comunicación. Particionado de los programas. Empaquetado de granos. Planificación

Más detalles

PROGRAMA DE CURSO. Código Nombre CC7515 Computación en GPU Nombre en Inglés Gpu Computing SCT

PROGRAMA DE CURSO. Código Nombre CC7515 Computación en GPU Nombre en Inglés Gpu Computing SCT PROGRAMA DE CURSO Código Nombre CC7515 Computación en GPU Nombre en Inglés Gpu Computing SCT Unidades Horas de Horas Docencia Horas de Trabajo Docentes Cátedra Auxiliar Personal 6 10 3 0 7 Requisitos Carácter

Más detalles

Análisis arquitectural y funcional de la maquina virtual en la plataforma J2ME ÍNDICE

Análisis arquitectural y funcional de la maquina virtual en la plataforma J2ME ÍNDICE ÍNDICE 1. OBJETIVOS.... ERROR! MARCADOR NO 2. INTRODUCCIÓN... ERROR! MARCADOR NO 2.1. ESTRUCTURACIÓN DEL PROYECTO... ERROR! MARCADOR NO 3. INTRODUCCIÓN A LA TECNOLOGÍA JAVA: LA MAQUINA VIRTUAL... ERROR!

Más detalles

FUNDAMENTOS: OBJETIVOS: Conceptuales:

FUNDAMENTOS: OBJETIVOS: Conceptuales: ASIGNATURA: SISTEMAS OPERATIVOS I Cód.: 31-203 Horas reloj semanales: 4 Horas teóricas: 30 Horas prácticas: 30 Horas totales: 60 Carrera: Sistemas Año del programa: 2016 FUNDAMENTOS: Los Sistemas Operativos

Más detalles

Universidad Autónoma de San Luis Potosí Facultad de Ingeniería Programas Analíticos del Área Mecánica y Eléctrica 5727 PROGRAMACION EN PARALELO

Universidad Autónoma de San Luis Potosí Facultad de Ingeniería Programas Analíticos del Área Mecánica y Eléctrica 5727 PROGRAMACION EN PARALELO A) CURSO Clave Asignatura 5727 PROGRAMACION EN PARALELO Horas de teoría Horas de práctica Horas trabajo Créditos Horas por semana por semana adicional estudiante Totales 3 0 3 6 48 B) DATOS BÁSICOS DEL

Más detalles

Guía docente de la asignatura

Guía docente de la asignatura Guía docente de la asignatura Asignatura Materia Módulo Titulación COMPUTACIÓN PARALELA Y MODELOS EMERGENTES SISTEMAS Y SERVICIOS EMPOTRADOS, UBICUOS Y DE ALTAS PRESTACIONES (vacío) MASTER EN INGENIERÍA

Más detalles

Computación en Manycores

Computación en Manycores Computación en Manycores Metodología de la Programación Paralela Contenidos 1 Sistemas 2 GPGPU 3 Intel Xeon Phi 4 Prácticas GPU: Graphic Processing Units Inicialmente para procesamiento de gráficos. También

Más detalles

CUDA Overview and Programming model

CUDA Overview and Programming model Departamento de Ciencias de la computación Universidad de Chile Modelado en 3D y sus Aplicaciones en Realidad Virtual CC68W CUDA Overview and Programming model Student: Juan Silva Professor: Dr. Wolfram

Más detalles

Kepler. 1. Presentación de la arquitectura. Índice de contenidos [25 diapositivas] Kepler, Johannes (1571-1630)

Kepler. 1. Presentación de la arquitectura. Índice de contenidos [25 diapositivas] Kepler, Johannes (1571-1630) Índice de contenidos [25 diapositivas] Manuel Ujaldón Nvidia CUDA Fellow Dpto. Arquitectura de Computadores Universidad de Málaga 1. Presentación de la arquitectura [3] 2. Los cores y su organización [7]

Más detalles

ANEXO I GUIA BIBLIOGRAFICA:

ANEXO I GUIA BIBLIOGRAFICA: ANEXO I GUIA BIBLIOGRAFICA: Unidad 1: INTRODUCCIÓN Concepto de sistema operativo. Evolución de los sistemas operativos. Repaso de los conocimientos de hardware necesarios. Estructuras de los sistemas operativos.

Más detalles

Universidad Autónoma de Baja California Facultad de Ciencias Administrativas Unidad Mexicali

Universidad Autónoma de Baja California Facultad de Ciencias Administrativas Unidad Mexicali SISTEMAS OPERATIVOS I Clave: 4595 HC: 3 HL: 2 HT: HPC: HCL: HE: CR: 8 Etapa de formación a la que pertenece: Básica Carácter de la Asignatura: Obligatoria PROPÓSITO GENERAL DEL CURSO Proporcionar al estudiante

Más detalles

Entornos de programación paralela basados en modelos/paradigmas

Entornos de programación paralela basados en modelos/paradigmas Program. paralela/distribuida Entornos de programación paralela basados en modelos/paradigmas Sobre la programación paralela 1 Índice Reflexiones sobre la programación paralela MapReduce Propuesta original

Más detalles

Arquitecturas de Computadoras

Arquitecturas de Computadoras Arquitectura de Computadoras Página 1 de 7 Programa de: Arquitecturas de Computadoras UNIVERSIDAD NACIONAL DE CÓRDOBA Facultad de Ciencias Exactas, Físicas y Naturales República Argentina Código: Carrera:

Más detalles

HERRAMIENTAS SOFTWARE PARA SISTEMAS DISTRIBUIDOS

HERRAMIENTAS SOFTWARE PARA SISTEMAS DISTRIBUIDOS HERRAMIENTAS SOFTWARE PARA SISTEMAS DISTRIBUIDOS José Luis Pastrana Brincones (pastrana@lcc.uma.es) Departamento de Lenguajes y Ciencias de la Computación de la Universidad de Málaga Introducción. El hombre,

Más detalles

División Académica de Informática y Sistemas División Académica Multidisciplinaria de los Ríos Ingeniería en Informática Administrativa

División Académica de Informática y Sistemas División Académica Multidisciplinaria de los Ríos Ingeniería en Informática Administrativa Área de formación Nombre de la asignatura Docencia frente a grupo según SATCA Trabajo de Campo Supervisado según SATCA HCS HPS TH C HTCS TH C TC General 2 2 4 4 0 0 0 4 Clave de la asignatura Sistemas

Más detalles

SISTEMAS PARALELOS PROGRAMA ANALÍTICO. Unidad 1: Conceptos básicos Paralelismo. Objetivos del procesamiento paralelo.

SISTEMAS PARALELOS PROGRAMA ANALÍTICO. Unidad 1: Conceptos básicos Paralelismo. Objetivos del procesamiento paralelo. SISTEMAS PARALELOS Año 2018 Carrera/ Plan: Licenciatura en Informática Plan 2015 Licenciatura en Sistemas Plan 2015 Licenciatura en Informática Plan 2003-07/Plan 2012 Licenciatura en Sistemas Plan 2003-07/Plan

Más detalles

Trabajo de Fin de Master

Trabajo de Fin de Master UNIVERSIDAD POLITECNICA DE MADRID Escuela Técnica Superior de Ingeniería de Sistemas Informáticos Trabajo de Fin de Master Máster Universitario en Ciencias y Tecnologías de la Computación Comparativa del

Más detalles

Sistemas de Tiempo Real - Año 2002

Sistemas de Tiempo Real - Año 2002 Universidad Católica de Córdoba Facultad de Ingeniería Sistemas de Tiempo Real - Año 2002 Titular: Ing. John Coppens Prácticos: Ing. Alejandro Butti 1 Objetivos específicos 2 Programa sintético 2.1 Unidad

Más detalles

Flaviu Vasile Buturca TRABAJO FINAL DE CARRERA. Dirigido por Carles Aliagas Castell. Grado de Ingeniería Informática

Flaviu Vasile Buturca TRABAJO FINAL DE CARRERA. Dirigido por Carles Aliagas Castell. Grado de Ingeniería Informática Flaviu Vasile Buturca Programación Algoritmos paralela CUDAen CUDA TRABAJO FINAL DE CARRERA Dirigido por Carles Aliagas Castell Grado de Ingeniería Informática Tarragona 2016 UNIVERSIDAD ROVIRA I VIRGILI

Más detalles