1. Introducción 1.1. CPU
|
|
- Vicente Castillo Ávila
- hace 6 años
- Vistas:
Transcripción
1
2
3 1. Introducción El presente proyecto tiene como objetivo ver la importancia de paralelizar algoritmos cuyo requerimiento de cómputo es muy grande, con el fin de disminuir el tiempo de ejecución para tener resultados en un tiempo más corto, así como poder correr sistemas mucho más grandes. Tomaremos el modelo de Ising el cual se analizará en 2D, éste modelo lo ejecutaremos secuencial en un CPU y en paralelo ejecutándose en un GPU, mediremos tanto el tiempo de ejecución así como las propiedades termodinámicas y como se afectan por el tamaño finito del sistema. La paralelización es una forma de cómputo o cálculo en la cual varios procesos se pueden realizarse simultáneamente. Basado en el principio de dividir los problemas grandes para obtener varios problemas pequeños, que son posteriormente solucionados en paralelo. Un programa secuencial se puede paralizar de 3 formas: Nivel de procedimientos: en éste caso se ejecutan varias llamadas a procedimientos de forma simultánea. Nivel de bucles: en éste caso se ejecutan varias iteraciones y/o sentencias del bucle en paralelo. Nivel de bloque básico: en éste caso se ejecutan en paralelo varias operaciones de un bloque de sentencias de asignación. El proceso de paralelización se realiza a nivel de programa fuente en alto nivel, generando una versión equivalente paralela también en alto nivel. A partir del programa original se realiza un detallado análisis de las dependencias entre sentencias del bucle. Estas dependencias determinan un orden parcial de ejecución de las operaciones del bucle que debe ser preservado en la nueva versión generada la cual se paraleliza. Este proyecto tiene como objetivo la paralelización, usando CUDA, de un modelo de Ising en 2D y usando la metodología de tablero de ajedrez para analizar los efectos de tamaño finito en las propiedades termodinámicas y además de calcular los tiempos de ejecuación como función del tamaño del sistema y su comparación con uno simular usando código secuencial CPU La CPU (Central Procesing Unit) es la parte inteligente del sistema, interpreta las instrucciones del programa de usuario y consulta el estado de las entradas; dependiendo de dichos estados y del programa, ordena la activación de las salidas deseadas. La CPU está constituida por los siguientes elementos: Unidad de control (UC): es la responsable de seguir cada una de las operaciones que realiza una instrucción. Unidad aritmética y lógica: es la responsable de recibir todas las operaciones asignadas y convertirlas en datos, esas operaciones son del tipo lógico-matemático y son respaldadas por un co-procesador matemático. El registro: es responsable en detallar las instrucciones tanto efectivas como fallidas. Podemos mencionar un sub-grupo en el que se encuentra el registro contador y es el esponsable de indicar cuál es la instrucción que sigue en el proceso y la memoria caché que es la responsable de guardar los procesos que son de uso regular con el fin de cargarlos rápidamente al ser requeridos. 1
4 La CPU es una unidad de procesamiento general, está preparada para operaciones matemáticas y lógicas con las cuales podemos realizar casi cualquier tarea a una velocidad rápida. El problema viene cuando nos metemos en programas con una carga gráfica muy grande, como pueden ser videojuegos o programas de diseño 3D. Estos programas están continuamente procesando formas y texturas, y hacerlo por medio de la CPU no suele ser la mejor manera, ya que no está específicamente diseñada para estas tareas (ver figura 1). Figura 1: Descripción simplificada del CPU GPU Por sus siglas en inglés, la GPU es la Graphics Processing Unit[2], o unidad de procesamiento de gráficos. Impulsada por la insaciable demanda del mercado de tiempo real, los gráficos de alta definición en 3D, la GPU programable se ha convertido en un procesador de varios núcleos, con paralelismo alto y multihilo, con una tremenda potencia de cálculo y un gran ancho de banda de memoria. Sin embargo, existe una discrepancia con respecto a la capacidad de punto flotante entre la CPU y la GPU debido a que la GPU está especializada para la computación intensiva, la computación de paralelismo alto, y por lo tanto diseñada de tal manera que más transistores se dedican al procesamiento de datos en lugar de almacenamiento en caché de datos y al control de flujo, por lo que en ocasiones la cantidad de accesos a memoria puede jugar en su contra. La GPU es especialmente adecuada para abordar los problemas que se pueden expresar como cálculos paralelos de datos (el mismo programa de ejecuta en muchos elementos de datos en paralelo) con alta intensidad aritmética. Como el mismo programa se ejecuta para cada elemento de datos, hay un menor requerimiento de control de flujo sofisticado, y como se ejecuta en muchos elementos de datos y tienen alta intensidad aritmética, la latencia de acceso a memoria puede ser ocultada con cálculos en lugar de cachés de datos grandes (ver figura 2). Cuda es un chip que está en la tarjeta gráfica del ordenador el cual se encarga del procesamiento gráfico, está constituido de varios núcleos que ofrecen alto rendimiento, encargada de procesar gráficos u operaciones de coma flotante. 2
5 Figura 2: Arquitectura de un GPU Algunas de las característica principales que deben de considerarse cuando se utiliza la GPU para realizar cálculos matématicos son: Todos los núcleos ejecutan la misma instrucción simultáneamente pero con distintos datos (ver figura 3). Mínimo de 32 hilos realizando la misma tarea (casi) al mismo tiempo. Técnica tradicional en el procesamiento gráfico y en muchas aplicaciones científicas. Actualmente existen tres grandes tipos de unidades de procesamiento gráfico, más que por la arquitectura, la diferencia entre ellos es por el modo en que son implementadas las GPU: Tarjetas dedicadas: éste tipo de unidades gráficas son las que proporcionan mayor potencia. Como su nombre lo indica, tienen una serie de especificaciones y están diseñadas para cumplir con sus tareas específicas, por lo que son mucho más eficientes. Generalmente se suele entender que una tarjeta dedicada es aquella que se integra a la tarjeta madre mediante un puerto aparte. Esto último no siempre es necesario, y lo que realmente define a una tarjeta gráfica dedicada es que tiene RAM independiente que solo podrá ser utilizada por el GPU, y mientras cumpla con este requisito puede estar integrada a la placa base o incluso al CPU. Tarjetas integradas: a diferencia de las unidades dedicadas, las integradas utilizan la memoria del sistema para realizar sus funciones. Son este tipo de soluciones las más comunes en las 3
6 compuatdoras modernos, usándose casi en el 90 % de los equipos de cómputo, incluyendo smartphones, tablets y la mayoría de PCs. Con frecuencia el núcleo central de estas unidades solía estar en la tarjeta madre, pero más recientemente las cosas han cambiado, y tanto AMD como Intel suelen integrarlas ahora en sus procesadores, y les han denominado AMD Accelerated Processing Unit e Intel HD Graphics respectivamente. Tarjetas híbridos: están diseñadas para mantener precios relativamente bajos y al mismo tiempo asegurar niveles de potencia adecuados, las unidades gráficas híbridas también comparten la memoria del sistema, pero para disminuir el tiempo de latencia de esta última, integran una cantidad limitada de memoria propia que se encarga de realizar las labores inmediatas. Suele ser éste el tipo de gráficos que encontraremos en compuatdoras portátiles que prometen tarjetas dedicadas (ver figura 4). A diferencia de los procesadores centrales, diseñados con pocos núcleos pero altas frecuencias de reloj, las GPU suelen tener grandes cantidades de núcleos de procesamiento a frecuencias de reloj relativamente bajas. En la actualidad, la mayoría de los núcleos de procesamiento están dirigidos a dos funciones: procesamiento de vértices y de píxeles. Además, este procesador está específicamente diseñado para trabajar con gráficos, con funciones específicas y una arquitectura muy basada en el procesamiento en paralelo. En pocas palabras, con la aceleración por GPU lo que hacemos es quitar trabajo a la CPU y dárselo a la GPU, que lo hará más rápido y mejor. Algunos programas usan aceleración por GPU, pero sin embargo no trabajan con formas, como por ejemplo los reproductores de vídeo, entonces, para qué usan la GPU? pues algunas tarjetas gráficas soportan la decodificación por hardware, es decir, dan la posibilidad de decodificar un vídeo por medio de un chip integrado, que lo hace más rápido y quitando carga a la CPU, por ejemplo, un GPU Chrome apenas podía con 36 imágenes, mientras que con la aceleración GPU se puede ver cómo IE 9 manejaba hasta 256 imágenes con bastante fluidez. Figura 3: Arquitectura de un bloque en un GPU 4
7 Otras aplicaciones también usan la aceleración por GPU, desde la versión CS4, Photoshop y el resto de la suite de Adobe aprovecha la potencia de la tarjeta gráfica para aumentar el rendimiento de la aplicación, sobre todo cuando trabaja con gráficos 3D. Google Earth también tiene aceleración por GPU y en general, todos los programas que trabajen con 3D. Figura 4: Comparación de las arquitecturas del CPU y GPU OpenGL OpenGL (Open Graphics Library)[3] es una especificación estándar que define una API multilenguaje y multiplataforma para escribir aplicaciones que produzcan gráficos 2D y 3D. La interfaz consiste en más de 250 funciones diferentes que pueden usarse para dibujar escenas tridimensionales complejas a partir de primitivas geométricas simples, tales como puntos, líneas y triángulos. Se usa ampliamente en CAD, realidad virtual, representación científica, visualización de información y simulación de vuelo. También se usa en desarrollo de videojuegos, donde compite con Direct3D en plataformas Microsoft Windows. OpenGL consiste en una serie de librerías y rutinas de clases por lo cual (ver figura 5), OpenGL no es un paquete de software de renderizado y modelado como Blender o 3D Max, es una API de bajo nivel que proporciona una interfaz de hardware de gráficos. No es por lo tanto ningún lenguaje de programación, sino tan sólo un conjunto de librerías que son utilizadas a través de lenguajes de programación como VisualC++ para conseguir un interfaz software entre las aplicaciones y el hardware gráfico. OpenGL permite: 1. Construir formas geométricas a partir de primitivas. 2. Ubicar los objetos en el espacio tridimensional y seleccionar el punto de vista de la escena. 3. Aplicar el color a los objetos, ya sea mediante una asignación explícita de la aplicación, a partir de las condiciones de iluminación o mediante la utilización de texturas. 4. Convertir la descripción matemática de los objetos y la información sobre el color en pixeles de la pantalla, proceso que se llama rasterización. Existen implementaciones eficientes de OpenGL suministradas por fabricantes para Mac OS, Microsoft Windows, Linux, varias plataformas Unix, y PlayStation 3. También existen varias im- 5
8 Figura 5: Representación gráfica del proceso de reasterización con OpenGL. plementaciones software que permiten que OpenGL esté disponible para diversas plataformas sin soporte de fabricante MPI MPI (Message Passing Interface)[1] es un estándar que define la sintaxis y la semántica de las funciones contenidas en una biblioteca de paso de mensajes diseñada para ser usada en programas que exploten la existencia de múltiples procesadores. El modelo de programación que subyace tras MPI es MIMD (Multiple Instruction streams, Multiple Data streams)i (ver figura 6), un caso particular de MIMD en el que todos los procesos ejecutan el mismo programa, aunque no necesariamente la misma instrucción al mismo tiempo. Figura 6: Representación de Multiple Instruction Streams (MIMD) utilizado en MPI. MPI proporciona una librería de funciones para C, C++ o Fortran (77 y 90) que son empleadas en los programas para comunicar datos entre procesos, el paso de mensajes es una técnica empleada en programación concurrente para aportar sincronización entre procesos y permitir la exclusión mutua. Su principal característica es que no precisa de memoria compartida, por lo que es muy importante en la programación de sistemas distribuidos. Algunas características de MPI son: 1. Definir un entorno de programación único que garantice la portabilidad de las aplicaciones paralelas (multiprocesadores, multicomputadores, redes, heterogéneos). 6
9 2. Definir totalmente la interfaz de programación, sin especificar cómo debe ser la implementación del mismo. 3. Ofrecer implementaciones de calidad, de dominio público, para favorecer la extensión del estándar. 4. Existencia de implementaciones libres: Mpich, LAM-MPI, OpeinMPI, PVM, etc. Algunas desventajas de MPI son: 1. El acceso remoto a memoria es lento. 2. La programación puede ser complicada. 2. Objetivos El objetivo principal de este proyecto es usar la tecnología CUDA de NVIDIA para desarrollar y optimizar un algoritmo en 2D para un modelo de Ising y su comparación en rendimiento con códigos en serial. Estudiar el efecto que tienen las propiedades termodinámicas sobre el efecto de tamaño finito y como se ven afectadas por el tiempo en la simulación. 3. Modelo de Ising El modelo de Ising, llamado así en honor al físico Ernst Ising quien lo presento en 1925[4], y el cual es un modelo muy sencillo para estudiar el fenómeno físico del ferromagnetismo. El modelo consiste de un arreglo de M puntos fijos en una red con diferente conetividad y es un modelo matemático de ferromagnetismo al estudiar mecánica estadística (ver figura 8). El modelo consta de variables discretas que representan los momentos dipolares magnéticos de los espines atómicos que pueden estar en uno de dos estados, quí representados por + y. Los giros están dispuestos en una red, permitiendo que cada giro pueda interactuar con sus primeros vecinos. El modelo de Ising permite identificar transiciones de fase de la isótropa al ferrofluido y es un modelo simplificado de la realidad. El modelo de Ising bidimensional es uno de los modelos estadísticos más simples para mostrar una transición de fase. Los elementos microscópicos de dicha red, se les identifica con partículas atómicas y únicamente se condidera su momento magnético y se les denomina espines, solo admiten dos posibles estados de energía: abajo/arriba, 0/1 o -1/+1 en las diversas interpretaciones posibles. En el caso del ferrofluido los vecinos prefieren alinearse y significa que {+, +} y {, } tienen la energía más baja que lo pares {+, } y {, +} (ver figura 8). La energía de interacción en un modelo de Ising se representa por: E = J k,l σ k σ l (1) donde σ k,l es el valor de los espines vecionos y J es un parámetro positivo y aquí tomaremos J = 1. En dos dimensiones k y l difieren ya sea por un espaciado reticular en x o un espaciado en y. Esta suma se realiza solo una vez por cada par vecino. Por lo que primero se ejecuta sobre la mitad de 7
10 Figura 7: Representación bidimensional del modelo de Ising. Este modelo considera M puntos fijos los cuales toman en consideración un modelo de espines (momentos dipolares) que solo pueden tomar dos valores de energía, reprentados aquí por + y. los vecinos. En el siguiente algoritmo se muestra como se calcula la energía de los vecinos en un Figura 8: Cálculo de los vecinos 6, 8, 4 y 2 del espín 5 en el modelo Ising bidimensional. 8
11 modelo Ising. Cálculo de la energía en el modelo de Ising input{σ 1,..., σ N } E 0 for k = 1,..., Ndo for n = 1,..., Ndo j V ecinos(n, k) if(j 0)then {E E σ k σ j } output E (2) Si los movimientos de los espines son hacia arriba o abajo e independientes entonces todas las configuraciones son 2 N ya que los valores de los espines pueden tomar: {σ 1,..., σ N } = {±1,..., ±1} Modelo bimensional: resultados Mientras que el modelo de Ising unidimensional es un problema relativamente simple de resolver, el modelo de Ising bidimensional es altamente no trivial. Era sólo el genio de las matemáticas puras de Lars Onsager que fue capaz de encontrar una solución analítica para el modelo de Ising bidimensional. La temperatura crítica para el modelo de Ising bidimesional esta dada por T c = 2 log(1+ 2) = A continuación se presentan los resultados para el modelo de Ising en una red cuadrada de tamaño L L, los sistemas estudiados usando el código serial fueron: L = 8, 16, 32, 64 y 128, mientras que para el código desarrollado en CUDA fueron L = 8, 16, 32, 64, 128, 256, 512, 1024 y En ambos sistemas, los observables calculados fueron la energía E y la magnetización M como función de la temperatura T, además del tiempo de simulación t sim.. En la figura 9 se muestran la comparación de los resultados obtenidos con el código serial y el código usando CUDA, podemos observar que los valores de la E son los mismos para un sistema de tamaño L = 8, mientras que para el sistema con tamaño L = 128, para el caso del código en el CPU los resultados difieren de los obtenidos con el código obtendios en el GPU, en la fase ferrofluida, esto se debe a que el tiempo de simulación para el caso serial se debe de incrementar para obtener una mejor convergencia de la E en la fase ferrofluido y esto trae como consecuencia un tiempo de simulación mayor[5]. En la figura 10(a) se muestran los resultados de los sistemas simulados con el CPU, se puede observar que al aumentar el tamaño del sistema la convergencia en la energía e deficiente y para poder obtener el valor correcto, es necesario aumentar el número de configuraciones del sistema, lo cual trae un aumento considerable en el tiempo de simulaci on, en la figura 10(b) se muestran los resultados de la enrgía como función de la temperatura de sistema simulado en el GPU, podemos observar que los tamaños del sistema son considerablemente mayor que los que se pueden simular en el CPU, además es posible aumentar el tiempo de simulación para obtener una mejor convergencia de los observables en el sistema. Como conclusón de los resultados obtenidos para un modelo de Ising bidimensional utilizando programación serial y masivamente paralela, podemos observar que los 9
12 Figura 9: Energía vs. temperatura obtendida de las simulaciones con los códigos en el CPU y GPU para diferentes valores de L. sistemas simulados con el código serial son muy limitados y las propiedades termodinámicas sufren de un claro efecto en los tiempos de simulación, mientrs que los obtenidos con el código en CUDA se pueden simular tamaños muy grandes, millones de espines en la red cuadradra y los resultados de la energía, presentada aquí converge muy rapidamente al valor correcto calculado de la teória. 10
13 Figura 10: Energía vs. temperatura obtendida de las simulaciones con los códigos en el CPU (a) y GPU (b) para diferentes valores de L. 11
14 Referencias [1] Parallel Programming with MPI, P. Pacheco, Morgan Kaufmann, 1996 [2] CUDA by Example: An Introduction to General-Purpose GPU Programming, J. Sanders, E. Kandrot, Addison-Wesley Professional, [3] OpenGL Programming Guide: The Official Guide to Learning OpenGL, Version 4.3 (8th Edition), D, Shreiner, G. Sellers, J. M. Kessenich, B. M. Licea-Kane, Addison-Wesley Professional, [4] Statistical Mechanics: Algorithms and Computations, W. Krauth, Oxford University Press, USA, [5] M. Weigel, Simulating spin models on GPU, Comput. Phys. Commun. 182, 1833 (2011) Aprobación Dr. José Antonio Moreno Razo Departamento de Física 12
Montaje y Reparación de Sistemas Microinformáticos
Montaje y Reparación de Sistemas s Es uno de los componentes más imprescindible del equipo informático. Al igual que el resto de tarjetas de expansión, la tarjeta gráfica se conecta al bus PCIe. Algunas
ELEMENTOS HARDWARE DEL ORDENADOR. Tarjeta gráfica
ELEMENTOS HARDWARE DEL ORDENADOR Tarjeta gráfica Qué es? Tarjeta Gráfica 1. Interpreta los datos que le llegan del procesador, ordenándolos y calculando el valor de cada píxel, lo almacena en la memoria
Intel lanza su procesador Caballero Medieval habilitado para Inteligencia Artificial
Intel lanza su procesador Caballero Medieval habilitado para Inteligencia Artificial Intel ha lanzado su procesador Xeon Phi en la Conferencia Internacional de Supercomputación de Alemania. El procesador
Lusitania. Pensando en Paralelo. César Gómez Martín
Lusitania Pensando en Paralelo César Gómez Martín cesar.gomez@cenits.es www.cenits.es Esquema Introducción a la programación paralela Por qué paralelizar? Tipos de computadoras paralelas Paradigmas de
TEMA 1: Concepto de ordenador
TEMA 1: Concepto de ordenador 1.1 Introducción Los ordenadores necesitan para su funcionamiento programas. Sin un programa un ordenador es completamente inútil. Para escribir estos programas necesitamos
Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria
1.2. Jerarquía de niveles de un computador Qué es un computador? Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria Es un sistema tan complejo
Introducción. Universidad Nacional Tecnológica del Cono Sur de Lima JORGE AUGUSTO MARTEL TORRES 1
Universidad Nacional Tecnológica del Cono Sur de Lima Especialidad Ingeniería Mecánica Ingeniería Electrónica Introducción PROGRAMACIÓN DE INGENIERÍA Semana 01-A: Introducción Arquitectura Ing. Jorge A.
FUNCIONAMIENTO DEL ORDENADOR
FUNCIONAMIENTO DEL ORDENADOR COMPUTACIÓN E INFORMÁTICA Datos de entrada Dispositivos de Entrada ORDENADOR PROGRAMA Datos de salida Dispositivos de Salida LOS ORDENADORES FUNCIONAN CON PROGRAMAS Los ordenadores
ESTRUCTURA BÁSICA DE UN ORDENADOR
ESTRUCTURA BÁSICA DE UN ORDENADOR QUÉ ES UN ORDENADOR? Un ordenador es una máquina... QUÉ ES UN ORDENADOR? Un ordenador es una máquina... QUÉ ES UN ORDENADOR? Un ordenador es una máquina... Qué son los
Diseño arquitectónico 1ª edición (2002)
Unidades temáticas de Ingeniería del Software Diseño arquitectónico 1ª edición (2002) Facultad de Informática objetivo Los sistemas grandes se descomponen en subsistemas que suministran un conjunto relacionado
Tema 1: Arquitectura de ordenadores, hardware y software
Fundamentos de Informática Tema 1: Arquitectura de ordenadores, hardware y software 2010-11 Índice 1. Informática 2. Modelo de von Neumann 3. Sistemas operativos 2 1. Informática INFORMación automática
Lenguaje binario. Código ASCII. Medidas de la información
Hardware y Software (1/5) Lenguaje binario Los ordenadores sólo entienden 1 y 0. Lógica positiva: 0: no hay señal 1: hay señal Código ASCII Medidas de la información Unidad mínima de información: BIT (0
Memoria. Organización de memorias estáticas.
Memoria 1 Memoria Organización de memorias estáticas. 2 Memoria En memoria físicas con bus de datos sea bidireccional. 3 Memoria Decodificación en dos niveles. 4 Necesidad de cantidades ilimitadas de memoria
Unidad I Introducción a la programación de Sistemas. M.C. Juan Carlos Olivares Rojas
Unidad I Introducción a la programación de Sistemas M.C. Juan Carlos Olivares Rojas Agenda 1.1 Qué es y que estudia la programación de sistemas? 1.2 Herramientas desarrolladas con la teoría de programación
Herramientas Informáticas I Software: Sistemas Operativos
Herramientas Informáticas I Software: Sistemas Operativos Facultad de Ciencias Económicas y Jurídicas Universidad Nacional de La Pampa Sistemas Operativos. Es el software base que permite trabajar como
Diagramas De Casos De Uso
Estáticos Diagramas De Casos De Uso Los diagramas de casos de uso documentan el comportamiento de un sistema desde el punto de vista del usuario.. Por lo tanto los casos de uso determinan los requisitos
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
ARQUITECTURA BÁSICA DEL ORDENADOR: Hardware y Software. IES Miguel de Cervantes de Sevilla
ARQUITECTURA BÁSICA DEL ORDENADOR: Hardware y Software. IES Miguel de Cervantes de Sevilla Índice de contenido 1.- Qué es un ordenador?...3 2.-Hardware básico de un ordenador:...3 3.-Software...4 3.1.-Software
CONTROLES ELÉCTRICOS PRÁCTICA 6: PROGRAMACIÓN DE PLC UNIDAD 5 LIRA MARTÍNEZ MANUEL ALEJANDRO DOCENTE: PACHECO HIPÓLITO JAVIER
CONTROLES ELÉCTRICOS PRÁCTICA 6: PROGRAMACIÓN DE PLC UNIDAD 5 LIRA MARTÍNEZ MANUEL ALEJANDRO DOCENTE: PACHECO HIPÓLITO JAVIER ENTREGA: 26/11/2010 1 INTRODUCCIÓN La tecnología es cada vez más sencilla de
RECONOCIMIENTO DE SUS COMPONENTES - LA PC POR DENTRO:
RECONOCIMIENTO DE SUS COMPONENTES - LA PC POR DENTRO: La placa base, placa madre, tarjeta madre (en ingles motherboard o mainboard) es una tarjeta de circuito a la que se conectan las demás partes de la
Tema 1 Introducción. David Vallejo Fernández. Curso 2007/2008. Escuela Superior de Informática
Tema 1 Introducción David Vallejo Fernández Curso 2007/2008 Escuela Superior de Informática Índice de contenidos 1.Computer Graphics. 2.Principales aplicaciones. 3.APIs gráficas. 4.. 5.Resumen. 2 1 Computer
Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo
Algoritmos En general, no hay una definición formal de algoritmo. Muchos autores los señalan como listas de instrucciones para resolver un problema abstracto, es decir, que un número finito de pasos convierten
PROCESADORES. Existen 3 tipos de procesadores: DE GALLETA, DE PINES Y DE CONTACTO. DE GALLETA: se utilizaban en las board en los años 80 y 90.
PROCESADORES TIPOS DE PROCESADORES. Existen 3 tipos de procesadores: DE GALLETA, DE PINES Y DE CONTACTO DE GALLETA: se utilizaban en las board en los años 80 y 90. DE PINES: reemplazaron los procesadores
0-31 : caracteres de control : carac. Comunes : especiales (flechas, símbolos) y particulares (ñ)
Hardware y Software (1/6) Lenguaje binario Los ordenadores sólo entienden 1 y 0. Lógica positiva: 0: no hay señal 1: hay señal Código ASCII American Standard Code for Information Interchange Carácter =
«LAS PARTES DEL CPU»
«EL CPU» La unidad central de procesamiento (del inglés central processing unit o CPU), es el hardwaredentro de una computadora u otros dispositivos programables, que interpreta las instrucciones de un
Introducción a la Operación de Computadoras Personales
Introducción a la Operación de Computadoras Personales Conceptos básicos de computadoras: Software Dr. Diego García Depto. de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur, Bahía
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
FUNDAMENTOS DE COMPUTACION INVESTIGACION PROCESADORES DIANA CARRIÓN DEL VALLE DOCENTE: JOHANNA NAVARRO ESPINOSA TRIMESTRE II
FUNDAMENTOS DE COMPUTACION INVESTIGACION PROCESADORES DIANA CARRIÓN DEL VALLE DOCENTE: JOHANNA NAVARRO ESPINOSA TRIMESTRE II 2013 Características principales de la arquitectura del procesador AMD Phenom
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,
Tema: Microprocesadores
Universidad Nacional de Ingeniería Arquitectura de Maquinas I Unidad I: Introducción a los Microprocesadores y Microcontroladores. Tema: Microprocesadores Arq. de Computadora I Ing. Carlos Ortega H. 1
Elementos Diagramas de Clases Clase:
Diagramas de Clases Un diagrama de clases o estructura estática muestra el conjunto de clases y objeto importantes que forman parte de un sistema, junto con las relaciones existentes entre clases y objetos.
Una Aplicación Informática para la Enseñanza de las Transformaciones Geométricas 3D
Una Aplicación Informática para la Enseñanza de las Transformaciones Geométricas 3D Claire Lastennet 1 ENST Bretagne F-29285 Brest cedex José Ribelles 2 Departamento de Lenguajes y Sistemas Informáticos
Datos e información. Código de barra. Los datos son la mínima unidad semántica, y se corresponden con elementos primarios de información.
Datos e información Los datos son la mínima unidad semántica, y se corresponden con elementos primarios de información. Código de barra La información es el resultado de un proceso de transformación de
Unidad I: Organización del Computador. Ing. Marglorie Colina
Unidad I: Organización del Computador Ing. Marglorie Colina Arquitectura del Computador Atributos de un sistema que son visibles a un programador (Conjunto de Instrucciones, Cantidad de bits para representar
Algoritmos. Diagramas de Flujo. Informática IV. L. S. C. Heriberto Sánchez Costeira
Informática IV Algoritmos Diagramas de Flujo L. S. C. Heriberto Sánchez Costeira Algoritmos 1 Definición Es una serie finita de pasos o instrucciones que deben seguirse para resolver un problema. Es un
Nombre de la asignatura: Algoritmos y Lenguajes de programación.
Nombre de la asignatura: Algoritmos y Lenguajes de programación. Créditos: 2-4- 6 Aportación al perfil Dominar la lógica necesaria para aprender lenguajes de programación de alto nivel para poder resolver
Tema 2 Introducción a la Programación en C.
Tema 2 Introducción a la Programación en C. Contenidos 1. Conceptos Básicos 1.1 Definiciones. 1.2 El Proceso de Desarrollo de Software. 2. Lenguajes de Programación. 2.1 Definición y Tipos de Lenguajes
Análisis de aplicación: VirtualBox
Análisis de aplicación: VirtualBox Este documento ha sido elaborado por el Centro de Apoyo Tecnológico a Emprendedores bilib, www.bilib.es Copyright 2011, Junta de Comunidades de Castilla La Mancha. Este
Cristian Blanco
UNIDAD DIDÁCTICA 8. ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS. DIAGRAMAS DE COMPORTAMIENTO En el siguiente enlace tienes una descripción y algunos ejemplos de todos los diagramas UML.: http://jms32.eresmas.net/tacticos/uml/umlindex.html
Programación de GPUs con CUDA
Programación de GPUs con CUDA Alvaro Cuno 23/01/2010 1 Agenda GPUs Cuda Cuda + OpenGL 2 GPUs (Graphics Processing Units) 3 Supercomputadores Mapa de los 100 supercomputadores Sudamérica: posiciones 306
1. Computadores y programación
1. Computadores y programación Informática y computadora (RAE) Informática (Ciencia de la computación) Conjunto de conocimientos científicos y técnicos que hacen posible el tratamiento automático de la
TRAYECTO SISTEMÁTICO DISEÑO DE SISTEMAS EMBEBIDOS
TRAYECTO SISTEMÁTICO DISEÑO DE SISTEMAS EMBEBIDOS LENGUAJE C, MICROCONTROLADORES, FPGA, RTOS, APLICACIONES I Departamento de Sistemas e Informática FACULTAD DE CIENCIAS EXACTAS, INGENIERÍA Y AGRIMENSURA
Objetos de aprendizaje: Computadora
MOMENTO I. BLOQUE 1. Opera las funciones básicas del sistema operativo y garantiza la seguridad de la información Objetos de aprendizaje: Computadora Lectura 1: La Computadora La computadora es una máquina
Introducción a la Computación. Herramientas Informáticas. Omar Ernesto Cabrera Rosero Universidad de Nariño
Introducción a la Computación Omar Ernesto Cabrera Rosero Universidad de Nariño 6 de Julio 2010 Esquema Terminología Informática 1 Terminología Informática Computación e Informática Dato e Información
Objetivos. Objetivos. Arquitectura de Computadores. R.Mitnik
Objetivos Objetivos Arquitecturas von Neumann Otras Unidad Central de Procesamiento (CPU) Responsabilidades Requisitos Partes de una CPU ALU Control & Decode Registros Electrónica y buses 2 Índice Capítulo
La conectividad es la clave para una tecnología avanzada de ECG. Los sistemas de ECG no
ELECTROCARDIÓGRAFOS MARCA GENERAL ELECTRIC MAC 800 La conectividad es la clave para una tecnología avanzada de ECG. Los sistemas de ECG no sólo deben ofrecer la suficiente portabilidad como para llegar
PREGUNTAS INFORMÁTICA MONITOR UPB EXAMEN 1
PREGUNTAS INFORMÁTICA MONITOR UPB EXAMEN 1 1. Cuál de los siguientes componentes no forma parte del esquema general de un ordenador? A Memoria Principal B Disco Duro C Unidad de Control D Unidad Aritmético
Ejemplo, generación de #s aleatorios
Ejemplo, generación de #s aleatorios Supón que tienes un generador de números aleatorios enteros [0,2] con distribución uniforme, y tu necesitas generar números con distribución uniforme [0,4]. Alguien
0.Principios del Microprocesador
There are no translations available. La revolución tecnológica en integración de componentes ha llegado a extremos insospechados, un ejemplo los procesadores Dual Core.. PROCESADORES DE DOBLE NÚCLEO ÍNDICE
Tema V Generación de Código
Tema V Generación de Código Una vez que se ha realizado la partición HW/SW y conocemos las operaciones que se van a implementar por hardware y software, debemos abordar el proceso de estas implementaciones.
Tema 12. El Hardware de la Realidad Virtual
El Hardware de la Realidad Virtual Evolución en tecnología gráfica 1 La RV llega vinculada a las capacidades gráficas de los microordenadores. 2 Evolución en tecnología gráfica 2 Los pequeños ordenadores
FICHA PÚBLICA DEL PROYECTO
NUMERO DE PROYECTO: 218824 EMPRESA BENEFICIADA: MICROCALLI DEL GOLFO S.A DE C.V TÍTULO DEL PROYECTO: LÍNEA DE PRODUCTOS DE SOFTWARE PARA DOMÓTICA OBJETIVO DEL PROYECTO: Incorporar el paradigma de LPS como
º 5.3 ADAPTADORES DE VIDEO
º 5.3 ADAPTADORES DE VIDEO Eloy Pérez Reyes En este documento se va a tratar de informar el funcionamiento y sus componentes de un adaptador de video. 1. Introducción El adaptador de video es un componente
Diferencias entre Portátiles, tablets y netbooks. Comparación. Alumnos: José Parraga Postigo Katazrina Majkowska Ignacio Pérez Baturone
Diferencias entre Portátiles, tablets y netbooks Comparación Alumnos: José Parraga Postigo Katazrina Majkowska Ignacio Pérez Baturone Portátil Laptop / Portátil Las laptops son el producto líder de la
INGENIERÍA TELEINFORMÁTICA
INGENIERÍA TELEINFORMÁTICA Expresión Gráfica y CAD Básico Sesión 02 Descripción del Entorno de Trabajo en AutoCAD Docente: Ing. María Nícida Malca Quispe AGENDA Presentación del Software Autocad Definición
Guía práctica de estudio 05: Diagramas de flujo
Guía práctica de estudio 05: Diagramas de flujo Elaborado por: M.C. Edgar E. García Cano Ing. Jorge A. Solano Gálvez Revisado por: Ing. Laura Sandoval Montaño Guía práctica de estudio 05: Diagramas de
Programación Distribuida
PROGRAMA DE ESTUDIO Programa Educativo: Área de Formación : Licenciatura en Ciencias Computacionales Integral profesional Programa elaborado por: Programación Distribuida Horas teóricas: 1 Horas prácticas:
Aplicaciones Concurrentes
PROGRAMACIÓN CONCURRENTE TEMA 6 Aplicaciones Concurrentes ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIÓN PROGRAMACIÓN CONCURRENTE Aplicaciones Concurrentes
Se llama hardware a todos los dispositivos que forman la PC y que se puedan tocar, es decir, es todo el conjunto de accesorios que se le pueden
Se llama hardware a todos los dispositivos que forman la PC y que se puedan tocar, es decir, es todo el conjunto de accesorios que se le pueden agregar a una computadora. Ejemplo: Monitor, Teclado, CPU,
Seminario II: Introducción a la Computación GPU
Seminario II: Introducción a la Computación GPU CONTENIDO Introducción Evolución CPUs-Evolución GPUs Evolución sistemas HPC Tecnologías GPGPU Problemática: Programación paralela en clústers heterogéneos
TEMA 1: SISTEMAS MODELADOS POR ECUACIONES DIFERENCIALES EN INGENIERÍA QUÍMICA. CLASIFICACIÓN. GENERALIDADES.
TEMA 1: SISTEMAS MODELADOS POR ECUACIONES DIFERENCIALES EN INGENIERÍA QUÍMICA. CLASIFICACIÓN. GENERALIDADES. 1. INTRODUCCIÓN. PLANTEAMIENTO DE PROBLEMAS EN INGENIERÍA QUÍMICA 2. PROBLEMAS EXPRESADOS MEDIANTE
4. Programación Paralela
4. Programación Paralela La necesidad que surge para resolver problemas que requieren tiempo elevado de cómputo origina lo que hoy se conoce como computación paralela. Mediante el uso concurrente de varios
Dispositivos Digitales. EL-611 Complemento de Diseño Lógico y. Dispositivos Digitales
EL-611 Complemento de Diseño Lógico y Objetivos y Evaluación Segundo Curso de Sistemas Digitales Complementar Materia Enfoque Diseños de Mayor Envergadura 1 Control + Examen y 6 Ejercicios (aprox.) Tareas
MEMORIA RAM. Clase 4
MEMORIA RAM Clase 4 RAM Tipo de memoria que utilizan las computadoras para almacenar los datos y programas a los que necesita tener un acceso rápido. Es volátil, es decir, que se borra cuando apagamos
AUTOMATIZACION. Reconocer la arquitectura y características de un PLC Diferenciar los tipos de entradas y salidas MARCO TEORICO. Estructura Interna
AUTOMATIZACION GUIA DE TRABAJO 3 DOCENTE: VICTOR HUGO BERNAL UNIDAD No. 3 OBJETIVO GENERAL Realizar una introducción a los controladores lógicos programables OBJETIVOS ESPECIFICOS: Reconocer la arquitectura
MINUTA: Taller en UAEMEX, Toluca. Construcción de Tecnología HPC
MINUTA: Taller en UAEMEX, Toluca Construcción de Tecnología HPC de MESA: Taller DE construcción de Tacnología HPC Sesión: # 1 a la 5 INFORMACIÓN GENERAL FECHA: 213 al 17 de julio 2015 Construcción de Tecnología
EVOLUCIÓN DE LOS PROCESADORES
EVOLUCIÓN DE LOS PROCESADORES Lecturas recomendadas: * Tanembaum, A. Organización de computadoras. Cap. 1 * Stallings, W. Organización y arquitectura de computadores. Cap. 2 Arquitectura de una computadora
4.1 Conceptos Básicos de Matlab. Matlab es creado por The MathWorks, el cual es un idioma de alto rendimiento
MATLAB CAPÍTULO 4 Realización Activa en 4.1 Conceptos Básicos de es creado por The MathWorks, el cual es un idioma de alto rendimiento para la informática técnica. Integra cómputo, visualización, y programación
Universidad Central Del Este U C E Facultad de Ciencias y Humanidades Escuela de Pedagogía Mención Informática.
Universidad Central Del Este U C E Facultad de Ciencias y Humanidades Escuela de Pedagogía Mención Informática. Programa de la asignatura: SIS-305 SISTEMA OPERATIVO II Total de Créditos: 3 Teórico: 2 Práctico:
MINISTERIO DE EDUCACIÓN PÚBLICA IPEC DE SANTA BÁRBARA MANTENIMIENTO DE EQUIPO DE COMPUTACIÓN. Memoria Principal RAM Memoria de acceso aleatorio
MINISTERIO DE EDUCACIÓN PÚBLICA IPEC DE SANTA BÁRBARA MANTENIMIENTO DE EQUIPO DE COMPUTACIÓN Memoria Principal RAM Memoria de acceso aleatorio MEMORIA RAM Memoria de acceso aleatorio, es la memoria primaria
Principios de Computadoras II
Departamento de Ingeniería Electrónica y Computadoras Ing. Ricardo Coppo Qué es una computadora? Una computadora es una máquina digital y sincrónica con capacidad de cálculo numérico y lógico controlada
Estructuras de control
Estructuras de control Introducción Los algoritmos vistos hasta el momento han consistido en simples secuencias de instrucciones; sin embargo, existen tareas más complejas que no pueden ser resueltas empleando
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
Organización del Sistema de Memoria. 1. Tipos de memoria 2. Jerarquía de memoria 3. El principio de localidad 4. Organización de la memoria
Organización del Sistema de Memoria 1. Tipos de memoria 2. Jerarquía de memoria 3. El principio de localidad 4. Organización de la memoria 1. Tipos de memoria La memoria se puede clasificar de acuerdo
Ejercicio 1: Windows En este primer ejercicio primero vamos a ver que es el Sistema Operativo Windows, qué es un Sistema Operativo y para que sirve.
Ejercicio 1: Windows En este primer ejercicio primero vamos a ver que es el Sistema Operativo Windows, qué es un Sistema Operativo y para que sirve. Antes de todo esto, vamos a ver un video que cuenta
INNOVACIÓN : CAMBIO Y CREACIÓN
INNOVACIÓN : CAMBIO Y CREACIÓN CREATIVIDAD Disposición ante la vida, una reacción ante las alternativas percibidas del entorno que se interpretan a partir de juicios, declarando posibilidades y se realizan
TECNOLOGÍA DE REDES. Temario 01/04/2008. Unidad 2. LAS WAN Y LOS ROUTERS (Segunda Parte)
TECNOLOGÍA DE REDES Profesor: Héctor Abarca A. Unidad 2. LAS WAN Y LOS ROUTERS (Segunda Parte) Profesor: Héctor Abarca A. Temario Redes WAN Introducción a las redes WAN Introducción a los routers de una
Tema I. La computación en el profesional de la Ingeniería
Tema I. La computación en el profesional de la Ingeniería Objetivo: El alumno describirá el desarrollo de la computación y de los beneficios que esto conlleva, para poderla emplear en sus quehaceres académicos
Developing ASP.NET MVC 4 Web Applications
Código: S28 Duración: 25 horas En este curso, los estudiantes aprenderán a desarrollar aplicaciones ASP.NET MVC con avanzadas tecnologías y herramientas de.net Framework 4.5. Se centrará en la codificación
CAPITULO ALGORITMOS Y PROGRAMAS CONTENIDO
CAPITULO 1 ALGORITMOS Y PROGRAMAS CONTENIDO 1.1. Los sistemas de procesamiento de la información. 1.2. Concepto de algoritmo. 1.3. Los lenguajes de programación. 1.4. Datos, tipos de datos y operaciones
Andres Felipe Rojas / Nancy Gelvez. UNESCO UNIR ICT & Education Latam Congress 2016
Distributed processing using cosine similarity for mapping Big Data in Hadoop (Procesamiento distribuido usando similitud de coseno para mapear Big Data en Haddop) Andres Felipe Rojas / Nancy Gelvez UNESCO
TÉCNICO SUPERIOR UNIVERSITARIO EN MECATRÓNICA ÁREA AUTOMATIZACIÓN EN COMPETENCIAS PROFESIONALES ASIGNATURA DE LENGUAJE DE PROGRAMACIÓN
TÉCNICO SUPERIOR UNIVERSITARIO EN MECATRÓNICA ÁREA AUTOMATIZACIÓN EN COMPETENCIAS PROFESIONALES ASIGNATURA DE LENGUAJE DE PROGRAMACIÓN 1. Competencias Implementar sistemas de medición y control bajo los
Nombre de la asignatura: Programación Básica. Créditos: Objetivo de aprendizaje
Nombre de la asignatura: Programación Básica Créditos: 2 4-6 Objetivo de aprendizaje Plantear metodológicamente la solución de problemas susceptibles de ser computarizados a través del manejo de técnicas
El lenguaje de programación PHP Tipos de Datos. Semestre: A-2010
Tema IV y V: El lenguaje de programación PHP Tipos de Datos Semestre: A-2010 Profesora: Nelly García Mora Agenda 1. Introducción al lenguaje de programación 2. Conceptos básicos 3. Ventajas y desventajas
ALGORITMOS, ESTRUCTURAS Y PROGRAMACION
VICERRECTORADO ACADÉMICO DIRECCIÓN DE GESTIÓN, DESARROLLO E INNOVACIÓN CURRICULAR FACULTAD: INGENIERIA ESCUELAS: COMPUTACION - SISTEMA UNIDAD CURRICULAR: ALGORITMOS, ESTRUCTURAS Y PROGRAMACION FECHA DE
VOCABULARIO DEL HARDWARE. Docente Yeni Ávila
VOCABULARIO DEL HARDWARE Docente Yeni Ávila HARDWARE El Hardware Básico: son las piezas fundamentales e imprescindibles para que la computadora funcione como son: Placa base, monitor, teclado y ratón.
Contenido. 1. El proceso 2. Los modelos 3. Los diagramas 4. Ejemplo
Tutorial Contenido 1. El proceso 2. Los modelos 3. Los diagramas 4. Ejemplo 1. El proceso Fases soportadas por UML Análisis de requisitos de usuario Análisis de requisitos de software Diseño de la plataforma
CAPÍTULO III I. MARCO METODOLÓGICO. Este capítulo hace mención a los aspectos metodológicos de la
CAPÍTULO III I. MARCO METODOLÓGICO Este capítulo hace mención a los aspectos metodológicos de la investigación utilizados para la solución del problema. Antes de todo, es necesario definir lo que es una
Tile64 Many-Core. vs. Intel Xeon Multi-Core
Tile64 Many-Core vs. Intel Xeon Multi-Core Comparación del Rendimiento en Bioinformática Myriam Kurtz Francisco J. Esteban Pilar Hernández Juan Antonio Caballero Antonio Guevara Gabriel Dorado Sergio Gálvez
2. Codificar de forma sistemática la secuencia de instrucciones en un lenguaje.
Modulo 1. Introducción a los lenguajes de programación La solución de problemas mediante en uso de un computador nos lleva a desarrollar programas o aplicaciones, la construcción de estos programas debe
Formato para prácticas de laboratorio
PLAN DE CLAVE CARRERA NOMBRE DE LA ASIGNATURA ESTUDIO ASIGNATURA LSC 2009-2 11290 Introducción a la Programación PRÁCTICA No. 2 LABORATORIO DE NOMBRE DE LA PRÁCTICA Licenciado en Sistemas Computacionales
Análisis de rendimiento de algoritmos paralelos
Análisis de rendimiento de algoritmos paralelos Joaquín Andrés López Molina josandlopmol@gmail.com Daniel Mauricio Rodríguez Alpizar danielmau231995@hotmail.com Estudiantes de Ingeniería en Computación
TARJETA GRÁFICA. Conrado Perea
TARJETA GRÁFICA Conrado Perea Qué es una tarjeta gráfica También denominada adaptador de vídeo, es uno de los componentes más básicos e importantes del ordenador, ya que nos va a permitir visualizar toda
Algoritmos y solución de problemas. Fundamentos de Programación Otoño 2008 Mtro. Luis Eduardo Pérez Bernal
Algoritmos y solución de problemas Fundamentos de Programación Otoño 2008 Mtro. Luis Eduardo Pérez Bernal Introducción Departamento de Electrónica, Sistemas e Informática En las ciencias de la computación
Partes Internas y Externas de la Computadora
Partes Internas y Externas de la Computadora La computadora está compuesta por hardware que se clasifican según donde se encuentran: PARTES EXTERNAS MONITOR: es un dispositivo de salida que, mediante una
Java para no Programadores
Java para no Programadores Programa de Estudio Java para no Programadores Aprende a programar con una de las tecnologías más utilizadas en el mercado de IT. Este curso está orientado a quienes no tienen
20483 Programación en C#
20483B 20483 Programación en C# Fabricante: Microsoft Grupo: Desarrollo Subgrupo: Microsoft Visual Studio 2012 Formación: Presencial Horas: 25 Introducción Este curso enseña a los desarrolladores las habilidades
Capítulo III: MARCO METODOLÓGICO
Capítulo III: MARCO METODOLÓGICO Tipo de Investigación El presente trabajo de investigación, tuvo como propósito el desarrollo de una aplicación experimental que permitió evaluar la operatividad y funcionalidad
Fundamentos de programación JAVA
Pág. N. 1 Fundamentos de programación JAVA Familia: Editorial: Autor: Computación e informática Macro Ricardo Walter Marcelo Villalobos ISBN: 978-612-304-238-7 N. de páginas: 296 Edición: 2. a 2014 Medida: