MÉTODO DE CLÚSTER HÍBRIDO PARA LA SINTETIZACIÓN DE DATOS EN LA INDUSTRIA AUTOMOTRIZ UTILIZANDO

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

Download "MÉTODO DE CLÚSTER HÍBRIDO PARA LA SINTETIZACIÓN DE DATOS EN LA INDUSTRIA AUTOMOTRIZ UTILIZANDO"

Transcripción

1 MÉTODO DE CLÚSTER HÍBRIDO PARA LA SINTETIZACIÓN DE DATOS EN LA INDUSTRIA AUTOMOTRIZ UTILIZANDO GPU S EN UNA DISERTACIÓN DE LA UNIVERSIDAD DE GUADALAJARA COMPLECIÓN PARCIAL DE LOS REQUERIMIENTOS PARA EL GRADO DE MAESTRO EN CIENCIAS Edgar León Sandoval Noviembre 2012

2 Abstracto El avance de la tecnología supone un aumento en la cantidad de información a tratar. Particularmente, en el proyecto Smarter Cities de IBM c, es necesario el procesado de grandes cantidades de información. Con esta necesidad, también surge la necesidad de contar con algoritmos capaces de tomar tal tamaño de datos, así como ser capaces de aprovechar las tecnologías existentes y sacarles el máximo provecho a las mismas. Este trabajo explora uno de estos algoritmos, los árboles de decisiones, y la forma de optimizarlo para obtener un alto rendimiento en el manejo de datos. iv

3 Índice general Abstracto IV 1. Introducción Planteamiento del problema Objetivos Hipótesis Alcance Estado del arte Aprendizaje de maquina Árboles de decisión Entropía de Shannon Paralelización con CPUs Paralelismo Implícito Modelo de comunicación de plataformas paralelas Redes de interconexión para computadores paralelos Topologías de red Arreglos lineales, mallas y mallas k-dimensionales Redes basadas en árboles Paralelización con GPUs El modelo CPU / GPU simplificado GPUs integrados Multiples GPUs v

4 Espacio de direcciones en CUDA Interacciones entre el CPU y el GPU La interfaz del anfitrión y sincronización intra-gpu Arquitectura de los GPUs Panorama Multiprocesadores de flujo (SMs) Memoria El modelo de programación CUDA Metodología Arquitectura Descripción del algoritmo Alcance de la implementación Descripción del algoritmo Descripción del prototipo Código original Optimizaciones realizadas Código fuente optimizado Resultados Conclusiones 58 Bibliografía 59 vi

5 Índice de cuadros vii

6 Índice de figuras 2.1. Árbol de decisión para clasificar frutas [26] Ejemplo de Pipeline con dos tareas [14] Arquitectura SIMD (a) y MIMD (b) típica[14] Clasificación de redes de interconexión [14] Interconexión de bus con (a)sin cache local y (b) con cache local[14] Red cruzada conectando p nodos de procesamiento con b bancos de memoria [14] Red de interconexión multietapas[14] Barajeo perfecto para ocho entradas y salidas[14] Red omega completa conectando ocho entradas y salidas[14] Diagrama de flujo del recorrido de una red omega (a)red completamente conectada de ocho nodos, (b)red de conexióm en estrella de nueve nodos[14] (a)arreglo lineal simple, (b)conexión en anillo[14] (a)malla bidimensional, (b)malla bidimensional en anillo, (c) malla tridimensional[14] Ejemplo de hipercubos[16] Red completa de árbol binario, (a) estática y (b) dinámica [14] Árbol gordo con 16 nodos de procesamiento[14] Arquitectura CPU GPU sencilla GPU Integrado GPU integrado con GPUs discretos GPUs en diferentes ranuras viii

7 2.21. Espacio de direcciones sencillo de 16 bits[31] Espacio de direcciones virtual.[31] Memoria del anfitrión clavada Buffer de comandos Arquitectura CPU GPU sencilla Multiprocesador de flujo de la familia Tesla[14] Multiprocesador de flujo de la familia Fermi[14] Interfaz física de CUDA[9] Modelo de programación de CUDA[9] ix

8 Capítulo 1 Introducción El proyecto Smarter Cities de IBM c, supone un reto desde diferentes puntos de vista. Por una parte esta el problema de la obtención de datos, por otra, el procesado de esos datos, y por otra, las decisiones que se toman a partir de dicho procesado. En este trabajo nos concentraremos en una parte del procesado de datos. El procesado de datos puede realizarse de muchas maneras diferentes, con muchos algoritmos y muchas técnicas de división de datos, por lo que en este trabajo solamente nos concentraremos en uno de estos algoritmos, los árboles de decisión. Los árboles de decisión son un algoritmo clasificador supervisado de datos, es decir, nosotros le damos un conjunto de datos con cierta clasificación hecha, y a partir de esta, el algoritmo. a prende. a clasificar nuevas observaciones. La manera de hacer esto es mediante la construcción de un árbol binario de decisiones, con el cual es posible apreciar las relaciones causales que nos llevan a cierta clasificación. Hacer esto una tarea intensiva en cuanto a recursos computacionales, puesto que para la construcción de estos árboles se analizan diferentes combinaciones de datos, para después obtener la combinación que mejor se ajusta o, mejor dicho, que mejor separa tu conjunto de datos. Como este proceso es similar, cambiando únicamente la combinación de datos, podemos paralelizarlo fácilmente utilizando GPUs (Graphics Processor Units). Una ventaja de este algoritmo es que es posible hacer análisis parciales, es decir, podemos dividir nuestros datos en diferentes subconjuntos para después analizar sus 1

9 CAPÍTULO 1. INTRODUCCIÓN 2 resultados. Además de esta división, una ves que obtenemos el árbol de decisión podemos realizar clasificaciones de manera sencilla dado que esto se reduce a una simple navegación en un árbol binario Planteamiento del problema Cuando se cuenta con una gran cantidad de datos sobre algún tema en particular, se vuelve difícil el tratamiento y análisis de los mismos. Técnicas convencionales para el tratamiento de datos muestran ser insuficientes, sobre todo si se considera el tiempo de cómputo que toma procesar los datos. Entonces es necesario algún método para el tratamiento de datos que reúna las características siguientes: Entregar resultados en un tiempo razonable, Ser capaz de manejar grandes cantidades de datos, Ser capaz de realizar clasificaciones, es decir, aprender de los datos almacenados, Actualizar su aprendizaje con el nuevo conocimiento recopilado Objetivos El objetivo principal es mejorar un clasificador de datos utilizando GPUs (Graphics Processor Unit), para su utilización en el análisis de datos sobre el trafico. Para alcanzar este objetivo se proponen los siguientes objetivos particulares. Evaluar y analizar un método de clasificación de datos, el árbol de decisión. Optimizar dicho método utilizando GPUs, mejorando así su tiempo de computo y minimizando los recursos necesarios. Evaluar y analizar el método optimizado, para comparar sus rendimientos y ganancias.

10 CAPÍTULO 1. INTRODUCCIÓN Hipótesis Es posible mejorar el rendimiento de los clasificadores de datos, comparado con una implementación clásica usando simplemente CPUs, si utilizamos GPUs en algunas funciones de tratamientos de datos, tanto en recursos de computación como en tiempo de procesado Alcance

11 Capítulo 2 Estado del arte En este capitulo se introducen los conocimientos teóricos necesarios para el entendimiento de este trabajo. Primero se comienza hablando del algoritmo a tratar, es decir, de los árboles de decisión y de aprendizaje de maquina en general. Después se pasa a trabajar con algo de la teoría de la información, en particular de la entropía, y se finaliza con la paralelización, tanto en GPUs (Graphics Processor Units) como con CPUs (Central Processor Unit). Dentro de los GPUs también se toca una metodología de desarrollo que combina la flexibilidad de la programación de alto nivel con la capacidad de lenguajes de bajo nivel Aprendizaje de maquina En la mayoría de los casos, el conocimiento no es obvio mirando simplemente a los datos crudos. El aprendizaje de maquina es convertir esos datos en información [10]. El aprendizaje de maquina se encuentra en una intersección entre la ciencia computacional, la ingeniería, y la estadística, aunque muchas veces aparece también dentro de otras disciplinas. Esta es una herramienta que puede ser aplicada a una enorme cantidad de problemas y aplicaciones. Cualquier campo que necesite interpretar datos, y tomar decisiones en base a ello, se puede beneficiar del aprendizaje de maquina. El aprendizaje de maquina usa estadística. Se utiliza la estadística porque el aprendizaje de maquina ataca problemas no deterministas, y estos inherentemente 4

12 CAPÍTULO 2. ESTADO DEL ARTE 5 aceptan un porcentaje de error, es decir, no es necesario estar en lo correcto todo el tiempo. Por ejemplo, en las ciencias sociales, estar correcto el 60 % del tiempo es considerado exitoso. El aprendizaje de maquina toma diferentes tareas. Una de esas tareas es la clasificación. En la clasificación, nuestro trabajo es decidir a que clase pertenece una observación [10]. Otra tarea es la regresión. La regresión es la predicción de un valor numérico. Ambas tareas perteneces al aprendizaje supervisado, y es llamado así porque le estamos diciendo al algoritmo que predecir. Así como tenemos tareas en el aprendizaje supervisado, también existe el aprendizaje no supervisado. En este aprendizaje, no hay etiquetas o valores objetivos para nuestros datos. Una tarea donde agrupamos datos similares es conocida como clusterización. También puede que queramos encontrar valores numéricos que describan nuestros datos, esta tarea es llamada estimación de densidad. Otra tarea puede ser la reducción de datos a un número reducido de variables, para que pueda ser visualizada apropiadamente en dos o tres dimensiones [10]. Los árboles de decisión, que serán estudiados a continuación, pertenecen al aprendizaje no supervisado. Son un algoritmo para encontrar clusters de datos Árboles de decisión Los arboles de decisión son un algoritmo perteneciente a la rama de aprendizaje de máquina supervisado. El objetivo de estos es descubrir relaciones causales dentro de un conjunto de datos. Los arboles de decisión son altamente utilizados porque son unos de los métodos de aprendizaje de máquina más sencillos de implementar. Son un método completamente transparente para clasificar observaciones, que, después de ser entrenados, parecen ser una serie de sentencias si-entonces mostradas en forma de grafó dirigido, también concido como un árbol (figura 2.1). Una vez que cuentas con el árbol de decisión, es fácil observar como se realizan las decisiones, simplemente debes de seguir los caminos que te guíen a las respuestas y preguntas hechas, de esta forma llegaras a una respuesta. Es importante notar que para el uso de estos algoritmos, se debe de tener ya una base de datos llena, un cuerpo

13 CAPÍTULO 2. ESTADO DEL ARTE 6 Figura 2.1: Árbol de decisión para clasificar frutas [26]. de entrenamiento a partir del cual se analizaran sus relaciones causales. Debido a esto, los resultados dependen enormemente del cuerpo dado, por lo que este debe de ser homogéneo, equiprobable y representativo de la población a estudiar. El algoritmo a utilizar es llamado CART (Classification and Regression Trees). Para construir el árbol de decisión, primero el algoritmo construye un elemento raííz. Se considera el cuerpo de entrenamiento, se escoge la mejor variable para dividir los datos. Para hacer esto, se ven todas las variables y se decide cual de ellas separa los resultados de forma que explique mejor el comportamiento del sistema. Para seleccionar con cual variable se va a separar el cuerpo de entrenamiento, se puede ver a la función Impuridad Gini. Esta impuridad se refiere a la probabilidad de que algún elemento insertado al azar sea erróneamente categorizado. Otra forma de tomar esta decisión es la Entropía de Shannon. La entropía de Shannon es la cantidad de desorden de una colección, o que tan revuelto esta; si todos los elementos son iguales, entonces la entropía es cero. El objetivo al dividir los datos en dos grupos consiste en de reducir su entropía, de manera que los datos queden lo menos desordenados posibles. Después de dividir el cuerpo de entrenamiento, sin importar el método elegido para realizar esta separación, se procede a retirar estos datos del cuerpo y se repite nuevamente el proceso, hasta

14 CAPÍTULO 2. ESTADO DEL ARTE 7 que no queden datos disponibles. Un problema con los arboles de decisión es que estos pueden crecer mucho, es decir, son construidos de forma específica a su cuerpo de entrenamiento. En algunas ocasiones se desea que el árbol de decisión funcione relativamente bien para otros datos, que quizás no tengan la misma distribución que el cuerpo de entrenamiento original. Si este es el caso, los arboles de decisión resultantes son sometidos a un podado, para quitar ramas que sean muy especificas y reducir así el tamaño del árbol. Este podado se realiza mediante el análisis del árbol de manera que para dos hojas con el mismo padre, al ser unidas, la entropía no aumenta de cierto valor previamente establecido. Cabe mencionar que las nuevas observaciones clasificadas no se introducen al cuerpo de entrenamiento, debido a los problemas que pueden ser causados. Entre estos problemas se encuentra el hecho de que existe la probabilidad de que un elemento sea erróneamente clasificado y si se introduce al cuerpo de entrenamiento, entonces aumenta la probabilidad de clasificar de manera errónea futuras observaciones. Otro problema radica en que no es posible garantizar que se mantendrá la distribución del cuerpo de entrenamiento, al insertar nuevas observaciones estas pueden tender hacía alguna clasificación en especial, inclinando también el árbol de decisión hacía ese camino; si se desean incluir nuevas observaciones, se debe construir un nuevo árbol de decisión. Como se observa, los árboles de decisión no solo son buenos para clasificar elementos, sino para ver que variables influyen, y de que manera, en el proceso de clasificación. Pero como cualquier algoritmo, tiene sus desventajas. Entre estas se incluyen la simpleza de las decisiones que realiza, limitándose a igualdades o a mayor que, y si se topan con cuerpos de datos con muchas variables numéricas, o con relaciones complejas, el árbol resultante será grande e ilegible Entropía de Shannon La medida de entropía a utilizar es la llama entropía de Shannon, la cual se describe a continuación, pero antes se expone las bases de la teoría de la información,

15 CAPÍTULO 2. ESTADO DEL ARTE 8 puesto que es la ciencia a la cual pertenece la entropía. Un paso importante que tomó Claude Shannon fue el preguntarse Qué tan probable es que veamos una cierta información? Esto es importante porqué nos permite carcterizar que tanta información en realidad ganamos. Si un mensaje tiene una alta probabilidad de ocurrencia, entonces no ganaremos mucha información al recibir dicho mensaje. Por otro lado, si un mensaje tiene una baja probabilidad de ocurrencia, cuando veamos ese mensaje ganaremos una cantidad significativa de información [27]. Shannon cuantificó esto usando el logaritmo base 2 de la probabilidad de ocurrencia de cierto mensaje [27]. Esto es, si denotamos la cantidad de información de un mensaje con I, y la probabilidad de su ocurrencia con p, entonces I = log 2 (p) (2.1) El signo negativo asegura que el contenido de información en el mensaje seá positivo, y que mientras sea menos probable el mensaje, mayor es el contenido de información. Entonces podemos resumir el uso de logaritmos para caracterizar el contenido de información de un mensaje diciendo: Un mensaje con poca probabilidad de ocurrencia tiene un alto contenido de información. Un mensaje con alta probabilidad de ocurrencia tiene un bajo contenido de información. Ahora pasemos a la definición formal. Sea X una variable aleatoria caracterizada por la distribución de probabilidad p, y asumiendo los valores x 1, x 2,..., x n con probabilidades p 1, p 2,..., p n. Las probabilidades satisfacen 0 p 1 y Σ i p i = 1. La entropía de Shannon de X es definida como [27] H(X) = Σ i p i log 2 p i (2.2) Si la probabilidad de una x j es cero, entonces 0log 2 0 = 0. Si el logaritmo de la probabilidad de x nos da el contenido de información, entonces podemos ver la

16 CAPÍTULO 2. ESTADO DEL ARTE 9 función de entropía de Shannon como una medida de la cantidad de incertidumbre o de aleatoridad de un mensaje, esto es: Si estamos seguros de cual es el mensaje, la entropía es cero. Entre menos seguros estemos de que vamos a obtener, es más alta la entropía. Entonces, resumiendo la función de entropía de Shannon [4] Si decrementa la incertidumbre entonces incrementa la información. Si incrementa la incertidumbre entonces incrementa la entropía Paralelización con CPUs Por treinta años, uno de los métodos para aumentar el desempeño de los equipos de computo ha sido incrementar la frecuencia de operación del reloj con el que opera el procesador. Iniciando con las primeras computadoras personales de inicios de los ochentas, cuyas unidades centrales de procesamiento (CPUs) operaban con relojes internos de alrededor de 1MHz, y, casi 30 años más tarde, la mayoría de los procesadores de uso personal operan entre 1GHz y 4 GHz [14]. Aunque este ha sido un método seguro para aumentar el desempeño de computo, ya es necesario buscar formas adicionales para lograr estas mejoras de desempeño. Esto se debe a las limitantes en la tecnología de fabricación de circuitos integrados, y a las restricciones de potencia y de calor. Por el lado de las supercomputadoras, estas han logrado obtener mejoras de desempeño masivas utilizando medios similares. Pero, ademas de ello, también se han obtenido mejoras de desempeño incrementando el número de procesadores. Por eso, se ha optado también usar esta técnica en los computadores personales, teniendo así una alternativa para el tradicional aumento de frecuencia de operación. En el año 2005, teniendo pocas alternativas, comenzaron a aparecer en el mercado procesadores con dos núcleos de procesamiento en lugar de uno [13]. En los siguientes años, esta tendencia se ha mantenido, con la aparición de procesadores con 3, 4, 6 y 8 núcleos de procesamiento. Además de el aumento de núcleos de procesamiento,

17 CAPÍTULO 2. ESTADO DEL ARTE 10 Figura 2.2: Ejemplo de Pipeline con dos tareas [14]. también se ha aumentado el número de instrucciones que un procesador puede ejecutar en un ciclo de maquina [14]. A continuación se muestran algunas de las técnicas de paralelización más comunes Paralelismo Implícito La tecnología en microprocesadores ha entregado mejoras significativas en cuanto a velocidades de reloj se refieren, pero también ha mostrado varios cuellos de botella. Entre estas limitaciones se encuentran las limitantes en tecnología de memorias, y en que los altos niveles de integración resultan en un número alto de transistores, poniendo en evidencia el problema de como utilizarlos eficientemente. Consecuentemente, se han hecho popular las maneras que habilitan la ejecución de multiples instrucciones en un solo ciclo de reloj, Una de las técnicas para lograr este objetivo es el Pipeline [8]. Si sobreponemos diferentes etapas de la ejecución de una instrucción (como obtener, leer, decodificar, ejecutar, guardar, etc.), obtenemos una ejecución más rápida de diferentes tareas. Esta distribución de tareas se realizan dependiendo de la arquitectura interna del microprocesador. Esta ganancia puede llegar más lejos si se pueden realizar multiples unidades funcionales al mismo tiempo. Por ejemplo, suponga que tenemos un procesador con la capacidad de atender simultáneamente dos tareas. Entonces podemos dividir estas tareas como se muestra en la figura 2.2. Como se puede apreciar, se obtiene una ganancia significativa

18 CAPÍTULO 2. ESTADO DEL ARTE 11 comparada con la ejecución de tareas secuenciales [8]. Aunque esta técnica parece simple y efectiva, presenta algunos problemas por resolver. Primero, las instrucciones en un programa pueden estar relacionadas unas con otras. A esto se le conoce como dependencia de datos [14]. Estas dependencias deven de ser resueltas antes de la ejecución simultanea de instrucciones. Esto implica que, como esta resolución debe realizarse en tiempo de ejecución, debe de ser soportada por el hardware, y que la cantidad de paralelismo alcanzado con esta técnica esta limitado de la codificación. Algunas veces el paralelismo es máximizado reordenando las instrucciones y alterando el código fuente. También existe otra fuente de dependencias entre instrucciones debidas por los recursos finitos compartidos. Además, el control de flujo de un programa agrega otra dependencia, puesto que si tenemos un condicional en el flujo, y el destino de esta condición solo es conocido en tiempo de ejecución, planificar instrucciones a priori puede conducir a errores. Estos errores son típicamente manejados planificando especulativamente (en promedio 5 o 6 instrucciones [14]) y hacer un rollback. en caso de errores. Estructura de control de plataformas paralelas Las tareas paralelas pueden ser especificadas en diferentes niveles de granularidad. En un extremo, cada programa puede ser visto como una tarea paralela. En otro extremo, instrucciones individuales dentro de un programa pueden ser vistos como tareas paralelas. Las unidades de procesamiento de un computador en paralelo operan con un control centralizado bajo una sola unidad de control, o trabajan independientemente. En arquitecturas conocidas como instrucciones sencillas, multiples datos (SIMD por sus siglas en inglés) [7], una misma unidad de control manda instrucciones a cada unidad de procesamiento. Entonces, la misma instrucción es ejecutada de manera sincrona por todas las unidades de procesamiento, cambiando únicamente los datos a trabajar. Este concepto funciona bien para computación estructurada en estructuras de datos en paralelo, como los arreglos. Y a sido necesario trabajar con mascaras para

19 CAPÍTULO 2. ESTADO DEL ARTE 12 Figura 2.3: Arquitectura SIMD (a) y MIMD (b) típica[14]. estos datos, proveyendo la capacidad de seleccionar ciertos elementos a los cuales no les será aplicadas las instrucciones mandadas. Estas primitivas son conocidas como máscaras de actividad. En contraste con las arquitecturas SIMD, existen computadores en los cuales cada unidad de procesamiento es capaz de ejecutar un programa diferente e independiente de las demás unidades de procesamiento. Esta arquitectura es conocida como multiples instrucciones, multiples datos (MIMD por sus siglas en inglés) [7]. La figura 2.3 muestra un ejemplo de la arquitectura SIMD así como de la arquitectura MIMD Modelo de comunicación de plataformas paralelas Hay dos maneras de intercambio de datos entre tareas paralelas: accesando un espacio de datos compartidos e intercambiando mensajes. El espacio de datos compartidos de una plataforma paralela soporta un lugar común de datos, que es accesible a todas las unidades de procesamiento. Estas unidades de procesamiento interactuan las unas con las otras modificando datos almacenados en este espacio compartido. La

20 CAPÍTULO 2. ESTADO DEL ARTE 13 memoria en estas plataformas puede ser local (exclusiva de una unidad de procesamiento) o global (compartida por todas las unidades de procesamiento)[18]. Si el tiempo que le toma a una unidad de procesamiento en accesar algún dato en el sistema, ya sea local o global, es idéntica, la plataforma es clasificada como acceso a memoria uniforme (UMA por sus siglas en inglés). Si no es así, se le llama a la plataforma acceso a memoria no uniforme (NUMA por sus siglas en inglés). La presencia de un espacio de memoria global hace la programación de estas plataformas una tarea mucho más sencilla. Todas las interacciones de solo lectura son invisibles para el programador, por lo que se codifican de la misma manera que en un programa serial. Las interacciones de lectura / escritura son más difíciles de programar ya que requieren mecanismos de exclusión mutua para accesos concurrentes [18]. La presencia de çaches. en las unidades de procesamiento presentan la dificultad de múltiples copias de un mismo dato siendo manipuladas por dos o mas unidades de procesamiento al mismo tiempo. Entonces, proporcionar un espacio compartido de memoria en este contexto presenta dos tareas importantes: proveer un mecanismo de traducción de direcciones para localizar un dato en el sistema, y asegurar que las operaciones concurrentes sobre múltiples copias de un mismo dato tengan semánticas bien definidas. Este mecanismo es conocido como coherencia de la caché [18]. La vista lógica de mandar mensajes de una maquina consiste en p nodos de procesamiento, cada uno con su espacio de direcciones exclusivo. Cada uno de estos nodos de procesamiento puede ser una sola unidad de procesamiento o un multiprocesador de espacio de memoria compartida. En estas plataformas, las interacciones entre nodos de procesamiento se realiza enviando mensajes [3]. Este intercambio de mensajes es utilizado para transferir datos, tareas, o para sincronizar acciones entre los procesos. Esta arquitectura soporta la ejecución de diferentes programas en cada uno de sus p nodos de procesamiento. Dado que estas interacciones se realizan cambiando mensajes, las operaciones básicas son send y receive. Estas operaciones deben de especificar la dirección destino, por lo que debe de existir un mecanismo que asigne un identificador único a cada programa [3].

21 CAPÍTULO 2. ESTADO DEL ARTE 14 Arquitectura de un computador paralelo ideal Un procesador paralelo consiste de p procesadores y una memoria global sin restricciones de tamaño que es uniformemente accesible a todos los procesadores [14]. Todos los procesadores acceden el mismo espacio de direcciones. Los procesadores comparten un reloj común, pero pueden ejecutar diferentes instrucciones en cada ciclo. A este modelo ideal se le conoce como maquina paralela de acceso aleatorio (PRAM por sus siglas en inglés). Dependiendo de cuantos accesos a memoria simultáneos son manejados, los PRAMs pueden ser clasificados en 4 clases [30]. Lectura exclusiva, Escritura exclusiva (EREW). El acceso a una dirección de memoria es exclusiva, es decir, no son permitidas las operaciones de lectura o escritura concurrentes. Lectura concurrente, Escritura exclusiva (CREW). Múltiples accesos de lectura a una dirección de memoria son permitidos, mientras que múltiples accesos de escritura son serializados. Lectura exclusiva, Escritura concurrente (ERCW). Múltiples accesos de escritura a una dirección de memoria son permitidos, pero múltiples accesos de lectura son serializados. Lectura concurrente, Escritura concurrente (CRCW). Son permitidos los accesos concurrentes de lectura o escritura a una dirección común de memoria. Los accesos concurrentes a memoria requieren arbitraje. Se utilizan muchos protocolos para resolver las escrituras concurrentes [24]: Común, donde la escritura concurrente es permitida si todos los valores que se intentan escribir son idénticos. Arbitraria, donde un a procesador aleatorio es permitido la operación de escritura y el resto falla.

22 CAPÍTULO 2. ESTADO DEL ARTE 15 Figura 2.4: Clasificación de redes de interconexión [14]. Prioridad, donde todos los procesadores son organizados por una lista predefinida de prioridades, y al procesador con la prioridad mas alta le es permitido la operación y el resto falla. Suma, donde la suma de todas las cantidades es escrita Redes de interconexión para computadores paralelos Las redes de interconexión proveen medios de transferencia de datos entre nodos de procesamiento o entre procesadores y los módulos de memoria. Esta red consiste de n entradas y m salidas. Las redes de interconexión pueden ser clasificadas como estaticas o dinamicas [6]. Las redes estáticas consisten de enlaces de comunicación punto a punto entre nodos de procesamiento y también son conocidas como redes directas. Las redes dinámicas consisten de enlaces y de switches, los enlaces son conectados entre si dinámicamente por estos switches (figura 2.4) [6] Topologías de red Una gran variedad de topologías de red han sido usadas en las redes de interconexión, las cuales son diferentes balances entre costo, escalabilidad y rendimiento.

23 CAPÍTULO 2. ESTADO DEL ARTE 16 Redes basadas en bus compartido Una red basada en buses es la más simple, dado que simplemente consiste en un medio compartido por todos los p nodos de procesamiento [18]. Una propiedad deseable es que este bus tenga un costo que escala linearmente conforme el número de nodos de procesamiento p. Este costo esta asociado con las interfaces del bus. Además, deseamos que la distancia física entre estos nodos de procesamiento sea constante. Los buses son ideales para transmitir información a todos los nodos, esta acción es conocida como broadcast [11]. Como el medio de transmisión es compartido, la comunicación es más eficiente que aquella en un medio punto a punto. Sin embargo, el ancho de banda de este bus compartido limita el número de nodos de procesamiento soportados por esta arquitectura [11]. En este tipo de arquitecturas se utiliza la cache de cada nodo de procesamiento para reducir el problema del ancho de banda. Esto funciona bien porque en programas típicos, la mayoría de los accesos a memoria son locales al nodo de procesamiento [11]. En la figura 2.5 se muestra un ejemplo de esta arquitectura. Redes cruzadas Otra manera de conectar p procesadores a b bancos de memoria es con una red cruzada [1]. La red cruzada emplea una matriz de switches como se muestra en la figura 2.6. El número de switches necesarios es p b, y podemos asumir que el número de bancos b es al menos p, puesto que de lo contrario van a existir algunos nodos de procesamiento que no pueden accesar ningún banco de memoria. Entonces, mientras p se incrementa, la complejidad de la red aumenta en p 2 [1]. Redes multietapas Las redes de interconexión cruzadas son escalables en términos de rendimiento, pero no lo son en términos de costos. Las redes de bus compartido son escalables en términos de costo, pero no en términos de rendimiento. Una arquitectura intermedia es la red de interconexión multietapas [15]. El esquema general de una red multietapas de p nodos de procesamiento y b bancos de memoria se muestra en la figura 2.7.

24 CAPÍTULO 2. ESTADO DEL ARTE 17 Figura 2.5: Interconexión de bus con (a)sin cache local y (b) con cache local[14]. Figura 2.6: Red cruzada conectando p nodos de procesamiento con b bancos de memoria [14].

25 CAPÍTULO 2. ESTADO DEL ARTE 18 Figura 2.7: Red de interconexión multietapas[14]. Un uso común de las redes multietapas es la red omega [15]. Esta red consiste en log p etapas, donde p = b, es decir, el número de nodos de procesamiento es similar al número de bancos de memorias [15]. Cada etapa de la red omega consiste en un patrón de interconexión que conecta p entradas con p salidas. Un enlace existe entre la entrada i y la salida j si se cumple lo siguiente: { 2i, 0 i p/2 1 j = (2.3) 2i + 1 p, p/2 i p 1 La ecuación 2.3 representa la operación de rotación a la izquierda de la representación binaria de i para obtener j. Este patrón de interconexión es conocido como barajeo perfecto [29]. La figura 2.8 muestra un patrón de interconexión con barajeo perfecto para ocho entradas y salidas. En cada etapa de una red omega, un patrón de interconexión perfecta conecta un conjunto de p/2 switches [29]. Cada switch se encuentra en uno de dos modos de conexión. En un modo, las entradas se conectan directamente con las salidas. En el otro modo, las entradas se conectan de manera cruzada con las salidas. Entonces una red omega tiene p/2 log p switches, y el costo de crecimiento de la red crece con una proporción de p log p. La figura 2.9 muestra una red omega que conecta ocho nodos de procesamiento con ocho bancos de memoria [15]. Rutear datos se realiza utilizando un esquema sencillo. Sea s la representación binaria de

26 CAPÍTULO 2. ESTADO DEL ARTE 19 Figura 2.8: Barajeo perfecto para ocho entradas y salidas[14]. Figura 2.9: Red omega completa conectando ocho entradas y salidas[14]. un nodo de procesamiento que necesita escribir datos en un banco de memoria t. El dato atraviesa el enlace al primer switch. Si los bits más significativos de s y de t son iguales, entonces el dato es ruteado de manera directa por el switch. En caso contrario, el dato es ruteado de manera cruzada. Esta regla es repetida hasta alcanzar la salida usando los bits más significativos siguientes. Entonces recorrer las log p etapas usa todos los log p bits en la representación binaria de s y de t [15]. La figura 2.10 muestra el diagrama de flujo de este proceso.

27 CAPÍTULO 2. ESTADO DEL ARTE 20 Figura 2.10: Diagrama de flujo del recorrido de una red omega. Redes completamente conectadas y en estrella En una red completamente conectada cada nodo de procesamiento tiene una comunicación directa con cada otro nodo de procesamiento de la red [28]. Esta red es ideal en el sentido en que cada nodo de procesamiento puede mandar un mensaje a algún otro nodo de procesamiento en un solo paso, ya que existe un enlace de comunicación entre ellos. Estas redes tienen la desventaja de tener una implementación costosa, y su crecimiento es de p! [28]. En una red de conexión de estrella un nodo de procesamiento actúa como el nodo central. Cada otro nodo de procesamiento tiene un enlace de comunicación con este nodo. La red de conexión en estrella es similar a las redes basadas en buses. La comunicación entre cualquier par de nodos de procesamiento es enrutada a travez del nodo principal [28]. El cuello de botella en esta topología es el nodo central. La figura 2.11 muestra una red completamente conectada de ocho nodos y una red de estrella de 9 nodos.

28 CAPÍTULO 2. ESTADO DEL ARTE 21 Figura 2.11: (a)red completamente conectada de ocho nodos, (b)red de conexióm en estrella de nueve nodos[14]. Figura 2.12: (a)arreglo lineal simple, (b)conexión en anillo[14] Arreglos lineales, mallas y mallas k-dimensionales Dado el gran número de enlaces en redes completamente conectadas, redes más dispersas son usadas para construir computadoras paralelas. Un ejemplo de estas redes son los arreglos lineales y los hipercubos. Un arreglo lineal es una red estatica donde cada nodo de procesamiento tiene dos vecinos, exceptuando el primero y el ultimo. Una extensión simple de estos es la topología en anillo, en donde todos los nodos de procesamiento tienen dos vecinos, uno a su izquierda y otro a su derecha. La figura 2.12 ilustra estas dos topologías de red. Conexión en malla Una malla es la extensión de un arreglo lineal a dos dimensiones. Cada dimensión tiene p nodos de procesamiento identificados con una tupla de la forma (i, j). Cada nodo de procesamiento, exceptuando los de la periferia, esta conectado a otros cuatro nodos cuyos indices difieren en una dimensión cualquiera en uno. Como es una red de dos dimensiones, es fácil de cablear, ademas de que muchas estructuras de datos computacionales se ajustan fácilmente a estas mallas [16]. Esta red puede ser fácilmente aumentada a una topología de anillo. Una malla de tres dimensiones es

29 CAPÍTULO 2. ESTADO DEL ARTE 22 Figura 2.13: (a)malla bidimensional, (b)malla bidimensional en anillo, (c) malla tridimensional[14]. una generalización de la malla de dos dimensiones. La figura 2.13 muestra una malla bidimensional, una malla con topología de anillo, y una malla tridimensional. Mallas k-dimensionales Las mallas k-dimensionales (k d) se refieren a una clase de topologías que están compuestas de d dimensiones con k nodos de procesamiento por cada dimensión. Esta topología también es llamada hipercubo. Esta topología tiene dos nodos de procesamiento por cada dimensión, y log p dimensiones [16]. Un hipercubo de cero dimensiones consiste de 2 0 = 1 nodos de procesamiento. Un hipercubo de una dimensión esta formado por dos hipercubos de dimensión cero conectados entre ellos. En general, un hipercubo de dimensión d esta compuesto de dos hipercubos de dimensión (d 1) conectados entre ellos. La figura 2.14 muestra hipercubos hasta la dimensión cuatro. Como se muestra en la figura 2.14, si tenemos dos subcubos de p/2 nodos, podemos derivar su numeración para el cubo de p nodos anteponiendo las etiquetas de uno de los subcubos con un 0 2 la etiqueta del otro subcubo con un 1. Esta enumeración tiene la propiedad de que la distancia mínima entre dos nodos esta dada por el número de bits diferentes entre las etiquetas de ambos [16] Redes basadas en árboles Una red de árbol es aquella en donde solo existe un único camino entre un par de nodos de procesamiento. Tanto los arreglos lineales como las redes en estrella son casos

30 CAPÍTULO 2. ESTADO DEL ARTE 23 Figura 2.14: Ejemplo de hipercubos[16].

31 CAPÍTULO 2. ESTADO DEL ARTE 24 Figura 2.15: Red completa de árbol binario, (a) estática y (b) dinámica [14]. Figura 2.16: Árbol gordo con 16 nodos de procesamiento[14]. especiales de las redes de árbol. La figura 2.15 muestra redes de árbol completamente binarias [16]. Las redes estáticas tienen un elemento de procesamiento en cada nodo de la red. Las redes dinámicas tienen nodos intermedios de switcheo, dejando únicamente a las hojas con elementos de procesamiento. Para enrutar un mensaje en un árbol, el nodo de origen envía el mensaje hacia niveles superiores del árbol, hasta que se alcanza un nodo que sea la raíz del sub-árbol mas pequeño que contenga tanto el nodo origen como al nodo destino. Entonces el mensaje es ruteado hacia el destino. Las redes de árbol sufren de un cuello de botella en los niveles superiores del árbol, puesto que estos deben de manejar una cantidad mayor de mensajes [17]. Esto se puede minimizar si aumentamos el número de enlaces que tienen los nodos más cercanos a la raíz. Esta red, llamada árbol gordo [17] se ilustra en la figura 2.16.

32 CAPÍTULO 2. ESTADO DEL ARTE 25 Figura 2.17: Arquitectura CPU GPU sencilla Paralelización con GPUs Esta sección hablará de la arquitectura de GPUs, de CUDA y su modelo de software. También se toca el tema del desarrollo de aplicaciones utilizando PyCUDA, lo que nos permite unir el desarrollo de prototipos rápidos de Python con el rendimiento y uso eficiente del equipo que nos entrega CUDA El modelo CPU / GPU simplificado La figura 2.17 muestra un modelo simple y abstracto, en el cual se basa la programación de CUDA. El CPU ejecuta la mayor parte del software de la aplicación, el sistema operativo, y el controlador de CUDA que opera el GPU. El GPU es un periférico que puede ejecutar ciertos programas paralelos, llamados kernels. Generalmente, el GPU cuenta con su propio banco de memoria, también conocido como memoria del dispositivo; los datos de entrada deben de ser copiados a la memoria del dispositivo para que el GPU pueda procesarla, y de igual forma, los resultados del GPU deben de ser copiados desde la memoria del dispositivo. Estas copias generalmente ocurren utilizando el bus PCI express[23] GPUs integrados Estos GPUs están integrados dentro del chipset principal. La figura 2.18 muestra un banco de memoria que previamente solo pertenecía al CPU y ahora comparte con un GPU [31].

33 CAPÍTULO 2. ESTADO DEL ARTE 26 Figura 2.18: GPU Integrado. La API ( Application Programming Interface ) de CUDA para el direccionamiento de memoria tiene una funcionalidad especial en GPUs integrados. Estas APIs también son conocidas como copia zero, porque la memoria es compartida y no es necesaria la copia a través del bus central. Por esta razón, en aplicaciones que limitadas por el ancho de banda, los GPUs integrados tienen un mayor rendimiento que muchos GPUs discretos[23]. En sistemas donde encontramos tanto GPUs integrados como GPUs discretos, CUDA intentará lanzar los kernels en los GPUs discretos, puesto que la mayoría de las aplicaciones CUDA son diseñadas de esa manera[31]. Por supuesto, este comportamiento puede ser cambiado, y si la aplicación esta diseñada para ejecutarse en un solo GPU, CUDA va a seleccionar el GPU integrado. La figura 2.19 muestra una arquitectura con un GPU integrado, y uno discreto Multiples GPUs En el 2004 NVIDIA introdujo su tecnología llamada SLI (Scalable Link Interface) que habilita a múltiples GPUs trabajar en paralelo, aumentando así el poder de procesamiento de gráficos[20]. Con tarjetas madres que hacen posible conectar múltiples

34 CAPÍTULO 2. ESTADO DEL ARTE 27 Figura 2.19: GPU integrado con GPUs discretos. Figura 2.20: GPUs en diferentes ranuras. GPUs, los usuarios pueden fácilmente aumentar el rendimiento instalando dos o más GPUs en su sistema. La figura 2.20 muestra un ejemplo de esta arquitectura. Por defecto, el controlador de NVIDIA configura estas tarjetas para que se comporten como si solamente fueran una. Esta funcionalidad también esta disponible para CUDA a partir de la versión 4.0. También es posible construir tarjetas GPUs que soporten múltiples GPUs. En estos casos, el único recurso que comparten los GPUs es un chip de puente que les permite comunicarse usando PCI Express[31]. No tienen memoria compartida; cada GPU tiene su propio controlador de memoria que le permite aprovechar su ancho

35 CAPÍTULO 2. ESTADO DEL ARTE 28 Figura 2.21: Espacio de direcciones sencillo de 16 bits[31]. de banda al máximo. Los GPUs en la misma tarjeta pueden comunicarse entre ellos con copias de memoria de punto a punto, que utilizara el chip puente dejando fuera a PCIe. Además, si son GPU de clase Fermi, estos pueden mapear su espacio de memoria al espacio de memoria global, facilitando así el desarrollo[20] Espacio de direcciones en CUDA Los espacios de direcciones del CPU y de los GPUs están separados, por lo que el CPU no puede leer o escribir en una localidad de memoria del GPU y a su vez, el GPU no puede leer o escribir en una localidad de memoria del CPU. Como resultado, la aplicación debe de explícitamente copiar datos de y desde el GPU para procesarlos correctamente[31]. Direccionamiento virtual El direccionamiento virtual es una extensión de la idea de que es útil asignar números consecutivos a las localidades de memoria de una computadora. La unidad de medida estándar es el byte, por ejemplo, una computadora con 64K de memoria tiene las localidades 1, 2,..., Los valores utilizados para leer y escribir en estas localidades de memoria se llaman direcciones, y a la acción de leer, escribir y en general el manejo de las direcciones de memoria se le llama direccionamiento[31].

36 CAPÍTULO 2. ESTADO DEL ARTE 29 Figura 2.22: Espacio de direcciones virtual.[31] Los primeros computadores utilizaban el direccionamiento físico, es decir, estos computaban una localidad de memoria y después se leía o escribía esta localidad de memoria directamente. La figura 2.21 muestra un direccionamiento sencillo de 16 bits. Mientras el software fue haciéndose más completo y las computadoras comenzaron a soportar múltiples usuarios o ejecutar diferentes trabajos fue haciéndose más común, se hizo claro que permitirle a un programa leer o escribir cualquier localidad de memoria es inaceptable, un programa podría corromper otro al escribir en la localidad de memoria equivocada. Además de la preocupación por la robustez de las aplicaciones, existe la preocupación de la seguridad: un programa puede espiar a otro simplemente leyendo localidades de memoria que no le pertenecen[23]. Como resultado, las computadoras modernas implementas los espacios virtuales de memoria, es decir, cada programa tiene direcciones de memoria similares, pero cada programa cuenta con un espacio de direcciones distinto. Un programa no puede leer o escribir en localidades de memoria que le pertenecen a otros programas, a no ser que cuenten con permiso especial del sistema operativo. En lugar de especificar la dirección física, la instrucción de maquina especifica una dirección virtual, que debe de ser traducida a una dirección física por el sistema operativo[31]. En la mayoría de los sistemas, el espacio virtual de direcciones esta dividido en

37 CAPÍTULO 2. ESTADO DEL ARTE 30 páginas, que son unidades de direcciones de al menos 4096 bytes. En lugar de referenciar memoria física directamente de las direcciones, el sistema busca en las tablas de paginación (PTE por sus siglas en inglés) que especifica la dirección física donde reside la memoria de la página. Esta técnica habilita el direccionamiento continuo virtual de memoria, aunque en memoria física esta se encuentre en páginas discontinuas. La figura 2.22 muestra un espacio virtual de memoria. Además de este direccionamiento físico, las PTEs tienen bits de configuración que el equipo puede validar mientras se realiza la traducción de direcciones. Por ejemplo, el sistema operativo puede hacer que ciertas páginas de solo lectura, entonces el equipo mandará una señal de falla si alguna aplicación intenta escribir en esas páginas. Los sistemas operativos utilizan el equipo físico para implementar estas propiedades: Posicionamiento perezoso: Cantidades grandes de memoria pueden ser asignadas por configuraciones además de las PTEs si contar con memoria física. Si la aplicación solicita una localidad de estas memorias, el sistema operativo asigna una página física en ese momento. Paginación bajo demanda: La memoria puede ser copiada al disco y la página marcada como no residente. Si la memoria es referenciada nuevamente, el sistema operativo copia los contenidos de vuelta a memoria, actualiza las PTEs y reanuda la ejecución de la aplicación. Copiar en escritura: La memoria virtual puede ser çopiadaçreando otro conjunto de PTEs que referencian a las mismas páginas, y después haciendo ambos conjuntos de solo lectura. Si una escritura es intentada en alguna de esas páginas, entonces el sistema operativo copia esa página, marca ambas como de escritura, y reanuda la ejecución de la aplicación. Mapeo de IOs de archivos: Archivos pueden ser mapeados al espacio de direcciones. Es importante denotar que la traducción de direcciones se realiza en cada acceso a memoria por el CPU. Entonces, para hacer esta operación rápida, el CPU tiene implementado mucho equipo especializado para resolver esta operación[23].

38 CAPÍTULO 2. ESTADO DEL ARTE 31 Figura 2.23: Memoria del anfitrión clavada Interacciones entre el CPU y el GPU Esta sección describe los elementos claves de la interacción entre el CPU y el GPU[33]: Memoria del anfitrión clavada: memoria del CPU que el GPU puede acceder directamente, Buffers de comandos: buffers escritos por el controlador CUDA que puede leer el GPU y controlar su ejecución, y Sincronización: como el progreso del GPU es monitoreado por el CPU. Memoria del anfitrión clavada y buffers de comandos Ambos, el CPU y el GPU acceden mejor su propio espacio de memoria; pero el GPU puede acceder directamente memoria del CPU sin paginar a través del acceso directo a memoria (DMA por sus siglas en inglés). Los periféricos pueden acceder esta memoria puesto que están programadas sus direcciones de manera directa, es decir, utilizan sus direcciones físicas. Dado que el GPU es un dispositivo distinto al CPU, DMA le permite al GPU leer o escribir memoria del CPU independientemente de este, y por lo tanto en paralelo al mismo. Se deben de tomar precauciones para sincronizar el CPU y el GPU para evitar condiciones de competencia, que si se hacen de manera adecuada, las mejoras de rendimientos son sustanciosas[33]. La figura 2.23 muestra memoria clavada para que el GPU tenga acceso a ella. Una de las principales aplicaciones para este espacio de memoria compartido es para

39 CAPÍTULO 2. ESTADO DEL ARTE 32 Figura 2.24: Buffer de comandos. mandarle comandos al GPU, el CPU escribe los comandos en un buffer de comandos que el GPU puede consumir, y el GPU simultáneamente lee y ejecuta comandos escritos previamente. La figura 2.24 muestra un GPU y un CPU que comparten uno de estos buffers de comandos. Típicamente, el controlador de CUDA re-usa la memoria del buffer de comandos, porque una vez que el GPU a terminado la ejecución de un comando esa memoria se hace elegible para ser escrita nuevamente por el CPU[31]. Dado que toma varios ciclos de reloj del CPU lanzar un núcleo de CUDA, un caso de uso para la concurrencia entre CPU y GPU es preparar más comandos para el GPU mientras este esta ejecutando una aplicación. Claro que si esto no es adecuadamente balanceado, pueden ser tanto el GPU o el CPU los cuellos de botella de la aplicación. Todos los lanzamientos de núcleos de CUDA son asíncronos: el CPU solicita el inicio de ejecución escribiendo comandos en el buffer de comandos, y después regresa sin verificar el progreso del GPU. Las copias de memoria también pueden ser asíncronas, habilitando la concurrencia entre el GPU y el CPU. La ley de Amdahl Cuando una aplicación de CUDA es escrita correctamente, el CPU y el GPU pueden operar completamente en paralelo. Pero si la carga de trabajo no esta balanceada, el CPU o el GPU limitara el rendimiento incluso si el otro dispositivo trabaja en paralelo. Esta observación es explicada por la ley de Amdahl [2]:

MULTIPROCESADORES MODELOS DE INTERCONEXIÓN

MULTIPROCESADORES MODELOS DE INTERCONEXIÓN Todos los derechos de propiedad intelectual de esta obra pertenecen en exclusiva a la Universidad Europea de Madrid, S.L.U. Queda terminantemente prohibida la reproducción, puesta a disposición del público

Más detalles

Programación Concurrente y Paralela. Unidad 1 Introducción

Programación Concurrente y Paralela. Unidad 1 Introducción Programación Concurrente y Paralela Unidad 1 Introducción Contenido 1.1 Concepto de Concurrencia 1.2 Exclusión Mutua y Sincronización 1.3 Corrección en Sistemas Concurrentes 1.4 Consideraciones sobre el

Más detalles

TAREA 1. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS.

TAREA 1. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS. 1 TAREA 1. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS. 1- Cuáles son las principales funciones de un sistema operativo? Los Sistemas Operativos tienen como objetivos o funciones principales lo siguiente; Comodidad;

Más detalles

Memoria. Organización de memorias estáticas.

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

Más detalles

Memoria Caché. Algorítmo de Mapeo Directo

Memoria Caché. Algorítmo de Mapeo Directo Algorítmo de Mapeo Directo Antecedentes Uno de los principales problemas con la arquitectura de computadoras Von Neumann es que la memoria principal generalmente es considerablemente más lenta que el procesador;

Más detalles

ENTRADA-SALIDA. 2. Dispositivos de Carácter: Envía o recibe un flujo de caracteres No es direccionable, no tiene operación de búsqueda

ENTRADA-SALIDA. 2. Dispositivos de Carácter: Envía o recibe un flujo de caracteres No es direccionable, no tiene operación de búsqueda Tipos de Dispositivos ENTRADA-SALIDA 1. Dispositivos de Bloque: Almacena información en bloques de tamaño fijo (512b hasta 32Kb) Se puede leer o escribir un bloque en forma independiente 2. Dispositivos

Más detalles

CAPITULO 5 RESULTADOS Y CONCLUSIONES

CAPITULO 5 RESULTADOS Y CONCLUSIONES CAPITULO 5 RESULTADOS Y CONCLUSIONES A continuación se describirán los resultados obtenidos durante las pruebas realizadas mencionadas en el capítulo anterior, también se observarán las capacidades de

Más detalles

Conceptos básicos de paralelismo

Conceptos básicos de paralelismo Capítulo 2 Conceptos básicos de paralelismo 2.1. Introducción En este capítulo introduciremos algunos conceptos del paralelismo que se requeriran en la posterior discusión. Particularmente relevantes para

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

Con estas consideraciones, Flynn clasifica los sistemas en cuatro categorías:

Con estas consideraciones, Flynn clasifica los sistemas en cuatro categorías: Taxonomía de las arquitecturas 1 Introducción Introducción En este trabajo se explican en detalle las dos clasificaciones de computadores más conocidas en la actualidad. La primera clasificación, es la

Más detalles

PROCESAMIENTO DISTRIBUIDO

PROCESAMIENTO DISTRIBUIDO Pág. 1 INTRODUCCIÓN PROCESAMIENTO DISTRIBUIDO Arquitectura de comunicaciones: Software básico de una red de computadoras Brinda soporte para aplicaciones distribuidas Permite diferentes Sistemas Operativos

Más detalles

Taxonomía de las arquitecturas

Taxonomía de las arquitecturas Taxonomía de las arquitecturas 1 INTRODUCCIÓN 2 2 CLASIFICACIÓN DE FLYNN 3 2.1 SISD (SINGLE INSTRUCTION STREAM, SINGLE DATA STREAM) 3 2.2 SIMD (SINGLE INSTRUCTION STREAM, MULTIPLE DATA STREAM) 4 2.2.1

Más detalles

TEMA 10 INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS DISTRIBUIDOS. Introducción Hardware Software Aspectos de diseño

TEMA 10 INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS DISTRIBUIDOS. Introducción Hardware Software Aspectos de diseño TEMA 10 INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS DISTRIBUIDOS Introducción Hardware Software Aspectos de diseño 1 Introducción Aparecen en los 80 Desarrollo de Microprocesadores LAN Sistemas Distribuidos:

Más detalles

TEMA 9. SISTEMAS OPERATIVOS DISTRIBUIDOS

TEMA 9. SISTEMAS OPERATIVOS DISTRIBUIDOS TEMA 9. SISTEMAS OPERATIVOS DISTRIBUIDOS Introducción Hardware Software Aspectos de diseño 1 Introducción Aparecen en los 80 Desarrollo de Microprocesadores LAN Sistemas Distribuidos: Gran nº de procesadores

Más detalles

ARQUITECTURA DE LOS SUBSISTEMAS DE BUSES Y ENTRADA/SALIDA

ARQUITECTURA DE LOS SUBSISTEMAS DE BUSES Y ENTRADA/SALIDA U C V F A C C I E N C I A S Organización y Estructura del Computador II ARQUITECTURA DE LOS SUBSISTEMAS DE BUSES Y ENTRADA/SALIDA T e m a 2 G D O E C - II S e m e st r e I - 2012 AGENDA Subsistema de Buses

Más detalles

Ingeniería en Computación

Ingeniería en Computación Universidad Autónoma del Estado de México Centro Universitario UAEM Valle de México Ingeniería en Computación Unidad de Aprendizaje: Programación Paralela y Distribuida Tema: Introducción a los Sistemas

Más detalles

MULTIPROCESADORES TIPOS DE PARALELISMO

MULTIPROCESADORES TIPOS DE PARALELISMO Todos los derechos de propiedad intelectual de esta obra pertenecen en exclusiva a la Universidad Europea de Madrid, S.L.U. Queda terminantemente prohibida la reproducción, puesta a disposición del público

Más detalles

Microprocesador. Introducción. Instituto Sagrado Corazón de Jesús

Microprocesador. Introducción. Instituto Sagrado Corazón de Jesús Microprocesador Introducción El microprocesador es la parte de la computadora diseñada para llevar acabo o ejecutar los programas. Este viene siendo el cerebro de la computadora, el motor, el corazón de

Más detalles

Sistemas Operativos Distribuidos

Sistemas Operativos Distribuidos Contenidos del Tema Gestión de procesos Modelos de sistema Asignación de procesadores Estrategias dinámicas Estrategias estáticas Ejecución remota de procesos Modelos de sistema Organización de los procesadores

Más detalles

Sistema Cache. Técnicas Digitales III Ing. Gustavo Nudelman Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

Sistema Cache. Técnicas Digitales III Ing. Gustavo Nudelman Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Sistema Cache Técnicas Digitales III Ing. Gustavo Nudelman 2012 RAM dinámica Almacena un bit como una capacidad espuria en un transistor La necesidad de conservar la carga y la lectura destructiva obliga

Más detalles

Velocidades Típicas de transferencia en Dispositivos I/O

Velocidades Típicas de transferencia en Dispositivos I/O Entradas Salidas Velocidades Típicas de transferencia en Dispositivos I/O Entradas/Salidas: Problemas Amplia variedad de periféricos Entrega de diferentes cantidades de datos Diferentes velocidades Variedad

Más detalles

ARQUITECTURA DE VON NEUMANN Y HARVARD

ARQUITECTURA DE VON NEUMANN Y HARVARD ARQUITECTURA DE VON NEUMANN Y HARVARD ARQUITECTURA VON NEUMANN En esta arquitectura se observa que las computadoras utilizan el mismo dispositivo de almacenamiento para datos e instrucciones conectados

Más detalles

Tema II. Unidad de memoria

Tema II. Unidad de memoria Tema II Unidad de memoria 2 Unidad de memoria 2.1 Definiciones y conceptos básicos 2.1.1 Localización 2.1.2 Capacidad 2.1.3 Unidad de transferencia 2.1.4 Método de acceso 2.1.5 Tipos físicos 2.1.6 Características

Más detalles

Tema 7. Mejora del rendimiento: introducción a la segmentación y a las arquitecturas paralelas

Tema 7. Mejora del rendimiento: introducción a la segmentación y a las arquitecturas paralelas Tema 7. Mejora del rendimiento: introducción a la segmentación y a las arquitecturas paralelas Arquitectura de Computadores Curso 2009-2010 Transparencia: 2 / 21 Índice Introducción Taxonomía de Flynn

Más detalles

Unidad 9. Daniel Rojas UTN. Thursday, July 31, 14

Unidad 9. Daniel Rojas UTN. Thursday, July 31, 14 Unidad 9 Daniel Rojas UTN Manejo de Memoria La memoria consiste en un punto central de los sistemas modernos de computadora. Consiste en arreglos de bytes, cada uno con su propia dirección. Ciclo de Instrucciones

Más detalles

6. Enumere tres ventajas de los ULT frente a los KLT.

6. Enumere tres ventajas de los ULT frente a los KLT. 1 Tarea 3 Hilos 1. Cuales bloques de control de proceso deberían pertenecer a un bloque de control de hilo y cuáles a un bloque de control de proceso en un sistema multihilo? Para modelos monohilo deben

Más detalles

Memoria Cache. Departamento de Arquitectura de Computadores

Memoria Cache. Departamento de Arquitectura de Computadores Memoria Cache Departamento de Arquitectura de Computadores Índice Introducción. Conceptos básicos Características de los sistemas de memoria Jerarquías de memoria Memoria Principal Características físicas

Más detalles

Universidad de Sonora Arquitectura de Computadoras 2

Universidad de Sonora Arquitectura de Computadoras 2 Memoria Cachés Introducción Caché es el nivel de memoria situada entre el procesador y la memoria principal. Se comenzaron a usar a fines de los años 60s. Hoy en día, todas la computadoras incluyen cachés.

Más detalles

MINUTA: Taller en UAEMEX, Toluca. Construcción de Tecnología HPC

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

Más detalles

Manual de prácticas del Laboratorio de Dispositivos de Almacenamiento y de Entrada/Salida

Manual de prácticas del Laboratorio de Dispositivos de Almacenamiento y de Entrada/Salida Secretaría/División: Área/Departamento: Manual de prácticas del Laboratorio de Dispositivos de Almacenamiento y de Entrada/Salida División de Ingeniería Eléctrica Departamento de Computación Memorias direccionables

Más detalles

Introducción a memorias cache

Introducción a memorias cache Introducción a memorias cache Lección 6 Ing. Cristina Murillo Miranda Arquitectura de Sistemas Embebidos Programa de Maestría en Electrónica Énfasis en Sistemas Embebidos Escuela de Ingeniería en Electrónica

Más detalles

Ejecución serial: las tareas/instrucciones de un programa son ejecutadas de manera secuencial, una a la vez.

Ejecución serial: las tareas/instrucciones de un programa son ejecutadas de manera secuencial, una a la vez. Paralelismo Conceptos generales Ejecución serial: las tareas/instrucciones de un programa son ejecutadas de manera secuencial, una a la vez. Ejecución paralela: varias tareas/instrucciones de un programa

Más detalles

Test: Conteste exclusivamente en HOJA DE LECTURA ÓPTICA. No olvide marcar que su tipo de examen es C

Test: Conteste exclusivamente en HOJA DE LECTURA ÓPTICA. No olvide marcar que su tipo de examen es C MATERIAL PERMITIDO: los libros Estructura y tecnología de computadores y Problemas de estructura y tecnología de computadores, ed. Sanz y Torres, y calculadora. NO SE PERMITEN FOTOCOPIAS. INSTRUCCIONES:

Más detalles

Introducción a la Computación. Capítulo 7 Entrada/Salida

Introducción a la Computación. Capítulo 7 Entrada/Salida Introducción a la Computación Capítulo 7 Entrada/Salida Problemas Entrada/Salida Existe una amplia variedad periféricos Se les entrega distintas cantidades de datos Funcionan a distintas velocidades Tienen

Más detalles

Arquitectura de Computadoras para Ingeniería

Arquitectura de Computadoras para Ingeniería Arquitectura de Computadoras para Ingeniería (Cód. 7526) 1 Cuatrimestre 2016 Dra. DCIC - UNS 1 Multiprocesadores 2 Clasificación de Flynn Clasificación de 1966 En función del flujo de instrucciones y datos

Más detalles

TEMA 4 PROCESAMIENTO PARALELO

TEMA 4 PROCESAMIENTO PARALELO TEMA 4 PROCESAMIENTO PARALELO Tipos de plataformas de computación paralela Organización lógica Organización física Sistemas de memoria compartida Sistemas de memoria distribuida Tipos de plataformas de

Más detalles

Introducción. Universidad de Sonora Arquitectura de Computadoras 2

Introducción. Universidad de Sonora Arquitectura de Computadoras 2 Memoria virtual Introducción Memoria virtual es un mecanismo que permite que la memoria principal parezca mas grande que su tamaño físico. Permite ejecutar programas mas grandes que la memoria física disponible.

Más detalles

TEMA 4 PROCESAMIENTO PARALELO

TEMA 4 PROCESAMIENTO PARALELO TEMA 4 PROCESAMIENTO PARALELO Tipos de plataformas de computación paralela Organización lógica Organización física Sistemas de memoria compartida Sistemas de memoria distribuida Tipos de plataformas de

Más detalles

Introducción. Universidad de Sonora Arquitectura de Computadoras 2

Introducción. Universidad de Sonora Arquitectura de Computadoras 2 Memoria virtual Introducción Memoria virtual es un mecanismo que permite que la memoria principal parezca mas grande que su tamaño físico. Permite ejecutar programas mas grandes que la memoria física disponible.

Más detalles

Facultad de Ingeniería Industrial y de Sistemas v1.0 MA781U PROCESOS DISTRIBUIDOS

Facultad de Ingeniería Industrial y de Sistemas v1.0 MA781U PROCESOS DISTRIBUIDOS PROCESOS DISTRIBUIDOS Preparado por: Angel Chata Tintaya (angelchata@hotmail.com) Resumen El proceso cliente servidor es la clave para comprender el potencial de los sistemas de información y las redes

Más detalles

Una dirección IP es una secuencia de unos y ceros de 32 bits. La Figura muestra un número de 32 bits de muestra.

Una dirección IP es una secuencia de unos y ceros de 32 bits. La Figura muestra un número de 32 bits de muestra. DIRECCIONAMIENTO IP Un computador puede estar conectado a más de una red. En este caso, se le debe asignar al sistema más de una dirección. Cada dirección identificará la conexión del computador a una

Más detalles

Procesamiento Paralelo

Procesamiento Paralelo Procesamiento Paralelo Arquitecturas de Computadoras Paralelas Javier Iparraguirre Universidad Tecnológica Nacional, Facultad Regional Bahía Blanca 11 de Abril 461, Bahía Blanca, Argentina jiparraguirre@frbb.utn.edu.ar

Más detalles

Aplicaciones Concurrentes

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

Más detalles

TEMA 2: Organización de computadores

TEMA 2: Organización de computadores TEMA 2: Organización de computadores Procesadores Memorias Dispositivos de E/S 1 Computador Procesador, memoria, dispositivos de E/S CPU Unidad de control Unidad aritmética y lógica Registros Dispositivos

Más detalles

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

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

Más detalles

Tema 7. Entrada / Salida

Tema 7. Entrada / Salida Tema 7 Entrada / Salida Problemática Entrada/Salida Elementos claves en un computador: Procesador, memoria y módulos de E/S Cada módulo de E/S se conecta al bus del sistema y controla a uno o a más periféricos

Más detalles

Arquitectura de Computadoras 2011

Arquitectura de Computadoras 2011 Arquitectura de Computadoras Unidad 7: Entrada/Salida Arquitectura de Computadoras Aspectos claves La arquitectura de E/S es su interfaz con el exterior Se diseña de manera sistemática para controlar las

Más detalles

Arquitectura de Computadoras. Clase 9 Procesamiento paralelo

Arquitectura de Computadoras. Clase 9 Procesamiento paralelo Arquitectura de Computadoras Clase 9 Procesamiento paralelo Introducción al procesamiento paralelo Sea cual sea el nivel de prestaciones, la demanda de máquinas de mayor rendimiento seguirá existiendo.

Más detalles

ARQUITECTURAS PARA PROCESAMIENTO PARALELO

ARQUITECTURAS PARA PROCESAMIENTO PARALELO 1 de 6 27/11/11 13:08 ARQUITECTURAS PARA PROCESAMIENTO PARALELO Facultad de Ingeniería de Sistemas Información para el Proyecto REYCYT RESUMEN Se presenta información general relativa a las diferentes

Más detalles

Aspectos avanzados de arquitectura de computadoras Multiprocesadores (I) Facultad de Ingeniería - Universidad de la República Curso 2017

Aspectos avanzados de arquitectura de computadoras Multiprocesadores (I) Facultad de Ingeniería - Universidad de la República Curso 2017 Aspectos avanzados de arquitectura de computadoras Multiprocesadores (I) Facultad de Ingeniería - Universidad de la República Curso 2017 Motivación Explotación de ILP estancada desde 2005 (aproximadamente)

Más detalles

1.1. Modelos de arquitecturas de cómputo: clásicas, segmentadas, de multiprocesamiento.

1.1. Modelos de arquitecturas de cómputo: clásicas, segmentadas, de multiprocesamiento. 1.1. Modelos de arquitecturas de cómputo: clásicas, segmentadas, de multiprocesamiento. Arquitecturas Clásicas. Estas arquitecturas se desarrollaron en las primeras computadoras electromecánicas y de tubos

Más detalles

Programación Gráfica de Altas Prestaciones

Programación Gráfica de Altas Prestaciones rogramación Gráfica de Altas restaciones lataformas de altas prestaciones para Infomática Gráfica. Máster de Desarrollo de Software Depto. de Lenguajes y Sistemas Informáticos lsi.ugr.es/~jmantas/ga 1.

Más detalles

Motherboard. Daniel Rúa Madrid

Motherboard. Daniel Rúa Madrid Motherboard Daniel Rúa Madrid Qué es? La Motherboard es la placa principal de circuitos impresos y contiene los buses, que permiten que los datos sean transportados entre los diferentes componentes de

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

Sistemas con Microprocesadores I

Sistemas con Microprocesadores I Sistemas con Microprocesadores I 1 Microcontroladores Introducción Harvard vs. von-neumann Clasificación del procesador Segmentado o Pipeline Ortogonal vs. No ortogonal 2 Microcontroladores PIC Siglas

Más detalles

INFORME MEMORIA CACHE Y MEMORIA VIRTUAL.

INFORME MEMORIA CACHE Y MEMORIA VIRTUAL. AIEP PROGRAMACIÓN COMPUTACIONAL FUNDAMENTOS DE PROGRAMACIÓN INFORME MEMORIA CACHE Y MEMORIA VIRTUAL. Por:Diego Menéndez Introducción. Ante la inmensa velocidad de los procesadores que a medida del tiempo

Más detalles

Tema 1. Arquitecturas multiprocesador: MIMD de memoria compartida (multiprocesadores) V 1.1

Tema 1. Arquitecturas multiprocesador: MIMD de memoria compartida (multiprocesadores) V 1.1 Tema 1 Arquitecturas multiprocesador: MIMD de memoria compartida (multiprocesadores) V 1.1 José M. Cámara (checam@ubu.es) Multiprocesadores y multicomputadores Multiprocesadores: son sistemas formados

Más detalles

Gestión de Entrada-salida

Gestión de Entrada-salida Gestión de Entrada-salida E. Campo M. Knoblauch Ó. López J. Clemente Departamento de Automática Universidad de Alcalá Sistemas Operativos Avanzados Gestión de Entrada-salida 1 / 18 Índice Introducción

Más detalles

Es un conjunto de palabras y símbolos que permiten al usuario generar comandos e instrucciones para que la computadora los ejecute.

Es un conjunto de palabras y símbolos que permiten al usuario generar comandos e instrucciones para que la computadora los ejecute. Los problemas que se plantean en la vida diaria suelen ser resueltos mediante el uso de la capacidad intelectual y la habilidad manual del ser humano. La utilización de la computadora en la resolución

Más detalles

Organización de Computadoras

Organización de Computadoras Organización de Computadoras SEMANA 10 UNIVERSIDAD NACIONAL DE QUILMES Qué vimos? Mascaras Repeticiones controladas Arreglos Modo indirecto Q5 Hoy! Memorias: Características Memorias ROM Jerarquía de memorias

Más detalles

Sistemas de Computadoras

Sistemas de Computadoras Sistemas de Computadoras Índice Concepto de Computadora Estructura de la Computadora Funcionamiento de la Computadora Historia de las Computadoras Montando una Computadora Computadora Un sistema de cómputo

Más detalles

Plataformas paralelas

Plataformas paralelas Plataformas paralelas Curso 2011-2012 Elementos de un computador paralelo Hardware: Múltiples procesadores Múltiples memorias Redes de interconexión Software: Sistemas Operativos paralelos Programas orientados

Más detalles

Paralelismo _Arquitectura de Computadoras IS603

Paralelismo _Arquitectura de Computadoras IS603 Paralelismo _Arquitectura de Computadoras IS603 INTRODUCCION El objetivo de esta investigación, es conceptualizar las diferentes tipos de paralelismo referente al área de Arquitectura de Computadoras,

Más detalles

PROGRAMACIÓN PARALELA. Modelos de programación paralela Paradigmas de programación paralela

PROGRAMACIÓN PARALELA. Modelos de programación paralela Paradigmas de programación paralela PROGRAMACIÓN PARALELA Modelos de programación paralela Paradigmas de programación paralela Tipos de paralelismo Paso de mensajes Paralelismo de datos Memoria compartida Paradigmas de programación paralela

Más detalles

Lógica: Algoritmo: Archivo: Base de datos: Bit:

Lógica: Algoritmo: Archivo: Base de datos: Bit: Lógica: Algoritmo: Archivo: Base de datos: Bit: 1 LÓGICA: Es una secuencia de operaciones realizadas por el hardware o por el software. Lógica del hardware, Son los circuitos y Chips que realizan las operaciones

Más detalles

Página 1 de 12 CONCEPTOS INFORMÁTICOS BÁSICOS

Página 1 de 12 CONCEPTOS INFORMÁTICOS BÁSICOS Página 1 de 12 CONCEPTOS INFORMÁTICOS BÁSICOS CONTENIDOS a. CONCEPTOS INFORMÁTICOS i. Informática ii. Sistema informático iii. Ordenador iv. El sistema binario v. Medidas de almacenamiento de la información

Más detalles

EVOLUCIÓN HISTÓRICA DE LOS µp

EVOLUCIÓN HISTÓRICA DE LOS µp EVOLUCIÓN HISTÓRICA DE LOS µp El primer procesador fue inventado por los Babilonios en el año 500 ac En 1642 se perfeccionó la primera calculadora por Blas Pascal A mediados del siglo pasado se inventaron

Más detalles

Universidad de Los Andes Facultad de Ciencia Forestales y Ambientales Escuela de Ingeniería Forestal

Universidad de Los Andes Facultad de Ciencia Forestales y Ambientales Escuela de Ingeniería Forestal Universidad de Los Andes Facultad de Ciencia Forestales y Ambientales Escuela de Ingeniería Forestal Redes Tema5. Informática. Régimen Anualidad Prof. Kuong-F Chang. Mérida, Marzo 2016 Redes Concepto Una

Más detalles

EQUIPO DE INTERCONEXION ROUTER

EQUIPO DE INTERCONEXION ROUTER ROUTER EQUIPO DE INTERCONEXION ROUTER ROUTER Un router es un dispositivo de red intermedio cada interfaz de un router pertenece a una red ip diferente Por lo general, las LAN son redes Ethernet que contienen

Más detalles

TEMA 1. Arquitecturas multiprocesador: MIMD de memoria compartida (multiprocesadores) V 2.0

TEMA 1. Arquitecturas multiprocesador: MIMD de memoria compartida (multiprocesadores) V 2.0 TEMA 1 Arquitecturas multiprocesador: MIMD de memoria compartida (multiprocesadores) V 2.0 José M. Cámara (checam@ubu.es) Multiprocesadores y multicomputadores Multiprocesadores: son sistemas formados

Más detalles

Tema II. Unidad de memoria

Tema II. Unidad de memoria Tema II Unidad de memoria 2.1 Definiciones y conceptos básicos. 2.2 Jerarquía de memorias. 2.3 Memorias de semiconductor. 2.4 Memorias asociativas. 2.5 Memoria caché. 2.6 Discos magnéticos. 2.1 Definiciones

Más detalles

Introducción a las Computadoras. Capítulo 3 Buses del Sistema

Introducción a las Computadoras. Capítulo 3 Buses del Sistema Introducción a las Computadoras Capítulo 3 Buses del Sistema Concepto de Programa Los sistemas de propósito específico no son flexibles El Hardware de propósito general puede realizar diferentes tareas,

Más detalles

Manejo de Entrada-Salida. Arquitectura de Computadoras

Manejo de Entrada-Salida. Arquitectura de Computadoras Manejo de Entrada-Salida Arquitectura de Computadoras Agenda 1.2.3.1Módulos de entrada/salida. 1.2.3.2Entrada/salida programada. 1.2.3.3Entrada/salida mediante interrupciones. 1.2.3.4Acceso directo a memoria.

Más detalles

METODOLOGÍA DE LA PROGRAMACIÓN PARALELA. Modelos de programación paralela Paradigmas de programación paralela

METODOLOGÍA DE LA PROGRAMACIÓN PARALELA. Modelos de programación paralela Paradigmas de programación paralela METODOLOGÍA DE LA PROGRAMACIÓN PARALELA Modelos de programación paralela Paradigmas de programación paralela Tipos de paralelismo Paso de mensajes Paralelismo de datos Memoria compartida Tipos de paralelismo

Más detalles

Elementos constituyentes de la ejecución de un programa

Elementos constituyentes de la ejecución de un programa Micro-Operaciones En la ejecución de un programa en una computadora, se ejecutan instrucciones, que pueden subdividirse en ciclos: Búsqueda/Ejecución Cada ciclo se compone a su vez de una serie de operaciones

Más detalles

Arquitectura de Computadoras

Arquitectura de Computadoras Arquitectura de Computadoras Arquitecturas Von Neumann Harvard Otras (Multiprocesador, Sistemas distribuidos) Arquitectura de Computadores Corresponde a la estructura, organización, e interconexión de

Más detalles

III Unidad Planificación y diseño de una red (LAN)

III Unidad Planificación y diseño de una red (LAN) Recordemos: Una red de área local, Es un conjunto de Equipos y dispositivos de hardware unidos entre sí con el fin de compartir recursos en una zona geográfica limitada. Planificación y diseño de la red.

Más detalles

Sistema Operativo. Repaso de Estructura de Computadores. Componentes Hardware. Elementos Básicos

Sistema Operativo. Repaso de Estructura de Computadores. Componentes Hardware. Elementos Básicos Sistema Operativo Repaso de Estructura de Computadores Capítulo 1 Explota los recursos hardware de uno o más procesadores Proporciona un conjunto de servicios a los usuarios del sistema Gestiona la memoria

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

Registros Un campo: Registro:

Registros Un campo: Registro: Agenda 1) 2) registros ordenados registros desordenado Agenda 3) Organización de. 4) desordenado Organización de. Un campo: es el elemento de datos básico. Un campo individual contiene un valor único.

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

Controlador de Floppy Disk - DMA

Controlador de Floppy Disk - DMA Controlador de Floppy Disk - DMA Alejandro Furfaro Progrmación Sistemas Operativos 12 de Mayo de 2011-1c2011 Alejandro Furfaro (PSO - DC) Controlador de Floppy Disk - DMA 12 de Mayo de 2011 1 / 19 Que

Más detalles

SISTEMAS OPERATIVOS Arquitectura de computadores

SISTEMAS OPERATIVOS Arquitectura de computadores SISTEMAS OPERATIVOS Arquitectura de computadores Erwin Meza Vega emezav@unicauca.edu.co Esta presentación tiene por objetivo mostrar los conceptos generales de la arquitectura de los computadores, necesarios

Más detalles

Unidad II Arquitectura de Computadoras

Unidad II Arquitectura de Computadoras Unidad II Arquitectura de Computadoras Arquitectura de Computadoras -LATIC Contenido Qué es una computadora? Tipos de computadoras Evolución de las computadoras El modelo de Von Neumann La unidad central

Más detalles

BASES DE DATOS DISTRIBUIDAS

BASES DE DATOS DISTRIBUIDAS BASES DE DATOS DISTRIBUIDAS Una Base de Datos Distribuida entonces es una colección de datos que pertenecen lógicamente a un sólo sistema, pero se encuentra físicamente esparcido en varios "sitios" de

Más detalles

Manejo de Entrada-Salida. Arquitectura de Computadoras

Manejo de Entrada-Salida. Arquitectura de Computadoras Manejo de Entrada-Salida Arquitectura de Computadoras Agenda 1.2.3.1Módulos de entrada/salida. 1.2.3.2Entrada/salida programada. 1.2.3.3Entrada/salida mediante interrupciones. 1.2.3.4Acceso directo a memoria.

Más detalles

Arquitectura de placas

Arquitectura de placas Arquitectura de placas Organización de buses ESTRUCTURAS BÁSICAS DE INTERCONEXIÓN. Las unidades funcionales de una computadora se interconectan de acuerdo a una determinada organización. Estructuras más

Más detalles

Facultad de Ingeniería Industrial y de Sistemas v2.0 MA781U MEMORIA VIRTUAL

Facultad de Ingeniería Industrial y de Sistemas v2.0 MA781U MEMORIA VIRTUAL MEMORIA VIRTUAL Preparado por: Angel Chata Tintaya (angelchata@hotmail.com) Resumen Para un aprovechamiento eficiente del CPU y los recursos de E/S se requiere mantener en el sistema operativo la mayor

Más detalles

BASE DE DATOS DISTRIBUIDOS

BASE DE DATOS DISTRIBUIDOS 1 BASE DE DATOS DISTRIBUIDOS Contenido: Base de Datos Distribuidos 1.1. Introducción 1.1.1 Almacenamiento Distribuido 1.2. Sistemas de gestión de bases de datos distribuidos 1.2.1 Funciones y Arquitectura

Más detalles

UNIDAD II Metodología de programación paralela. Lic. Jesús Germán Andrés PAUTSCH - FCEQyN - UNaM

UNIDAD II Metodología de programación paralela. Lic. Jesús Germán Andrés PAUTSCH - FCEQyN - UNaM UNIDAD II Metodología de programación paralela UNIDAD II: Metodología de programación paralela Metodología de programación paralela Algunos conceptos que nos ayudarán a entender mejor el tema. Modelos

Más detalles

Créditos prácticos: Gil Montoya María Dolores TEMA 1º: Análisis del Rendimiento de un computador.(5 horas)

Créditos prácticos: Gil Montoya María Dolores TEMA 1º: Análisis del Rendimiento de un computador.(5 horas) Año académico: 2006-2007 Centro: Escuela Politécnica Superior Departamento: Arquitect. de Computadores y Electrónica Área: Arquitectura y Tecnología de Computadores Estudios: Ingeniero Técnico en Informática

Más detalles

Sistemas Distribuidos.

Sistemas Distribuidos. Escuela Militar de Ingeniería Ingeniería de Sistemas SISTEMAS OPERATIVOS Laboratorio Nombre: Código: Sistemas Distribuidos. 1. Conceptos fundamentales. Definición de un sistema de cómputo distribuido.

Más detalles

Sistemas Operativos. Un sistema operativo es un conjunto de programas de computadora diseñados especialmente para cubrir los siguientes objetivos:

Sistemas Operativos. Un sistema operativo es un conjunto de programas de computadora diseñados especialmente para cubrir los siguientes objetivos: Qué es un Sistema Operativo? Sistemas Operativos Un sistema operativo es un conjunto de programas de computadora diseñados especialmente para cubrir los siguientes objetivos: 1. Servir como interfaz entre

Más detalles

Identificación de agentes en el diseño de sistemas de control de producción Pau Herrero Viñas

Identificación de agentes en el diseño de sistemas de control de producción Pau Herrero Viñas Identificación de agentes en el diseño de sistemas de control de producción Pau Herrero Viñas Unidad de carga S1 M1 S4 Unidad de descarga M2 S2 S3 Basado en el artículo: On the Identification of Agents

Más detalles

Introducción a los Sistemas Operativos y Redes. Clase 2: Topologías de Redes

Introducción a los Sistemas Operativos y Redes. Clase 2: Topologías de Redes Introducción a los Sistemas Operativos y Redes Clase 2: Topologías de Redes Introducción a los Sistemas Operativos y Redes Topologías de Red: Topología Física. Topología Lógica. Hardware de Red. Medios

Más detalles

PROFInet. Índice. Tecnologías de Control

PROFInet. Índice. Tecnologías de Control PROFInet Tecnologías de Control Índice TEMA PROFInet Conceptos Básicos 1. Introducción 2. Fundamentos 3. Sistemas de Transmisión en Tiempo Real 4. Dispositivos Descentralizados de Campo 5. Control de Movimientos

Más detalles

Tema 2. GENERALIDADES SOBRE SISTEMAS OPERATIVOS 1, MAQUINA DESNUDA.

Tema 2. GENERALIDADES SOBRE SISTEMAS OPERATIVOS 1, MAQUINA DESNUDA. Tema 2. GENERALIDADES SOBRE SISTEMAS OPERATIVOS 1, MAQUINA DESNUDA. El término de máquina desnuda se aplica a una computadora carente de sistema operativo, el término es interesante porque resalta el hecho

Más detalles

Arquitectura de Computadoras 2011

Arquitectura de Computadoras 2011 Arquitectura de Computadoras Unidad 7: Acceso Directo a Memoria (DMA)U Acceso directo a memoria (DMA) Las operaciones de E/S mediante interrupciones son más efectivas que las programadas. Pero ambas necesitan

Más detalles

Memoria y Entrada/Salida Tecnología Organización - Expansión

Memoria y Entrada/Salida Tecnología Organización - Expansión Universidad Simón Bolívar Departamento de Electrónica y Circuitos EC2721 Arquitectura del Computador I Prof. Osberth De Castro Clase 05 Memoria y Entrada/Salida Tecnología Organización - Expansión La memoria

Más detalles

Un importante problema para sistemas de la nueva generación

Un importante problema para sistemas de la nueva generación Un importante problema para sistemas de la nueva generación J. A. Stankovic, Misconceptions about Real-Time Computing: A Serious Problem for Next Generation Systems, IEEE Computer, October 1988. Manifestar

Más detalles