Módulo 01 Introducción Organización de Computadoras Depto. Cs. e Ing. de la Comp. Universidad Nacional del Sur Copyright Copyright © 2011-2015 A. G. Stankevicius Copyright © 2016 Leonardo de - Matteis Se asegura la libertad para copiar, distribuir y modificar este documento de acuerdo a los términos de la GNU Free Documentation License, Versión 1.2 o cualquiera posterior publicada por la Free Software Foundation, sin secciones invariantes ni textos de cubierta delantera o trasera. Una copia de esta licencia está siempre disponible en la página http://www.gnu.org/copyleft/fdl.html. Organización de Computadoras 2 Contenidos Historia de la computación. Arquitectura John von Neumann. Generaciones. Organización general. Ley de Moore. Evolución de la arquitectura Intel x86. Ciclo básico de un CPU. Organización de la memoria. Organización de Computadoras 3 ¿Qué es una computadora? Empecemos por acordar qué cosas califican como una computadora y cuáles no: Una PC (Personal Computer) Un tableta android o un iPad. Un celular inteligente (smartphone). Una calculadora de bolsillo. Un TV inteligente (smart-tv). Un lavarropa programable. Un ábaco. Organización de Computadoras 4 ¿Qué es una computadora? OK, ok, podemos acotar la respuesta un poco más para sólo considerar a las computadoras electrónicas (¡que son las que nos interesan!). Consultemos el mataburro (es decir, la RAE): Computadora Electrónica: máquina electrónica, analógica o digital, dotada de una memoria de gran capacidad y de métodos de tratamiento de la información, capaz de resolver problemas matemáticos y lógicos mediante la utilización automática de programas informáticos. Organización de Computadoras 5 Historia de la Computación La historia de la computación se remontan a la edad dorada de la Grecia clásica o incluso más atrás a los tiempos de los faraones. No obstante, como nos interesa la computación usando computadoras electrónicas, el repaso de la historia de la computación se centrará en los avances más recientes, si bien no podemos ignorar la rica historia que nos respalda. Después de todo, ¡la computación es meramente una rama de la matemática! Organización de Computadoras 6 Charles Babbage Charles Babbage (1791-1871) fue un famoso matemático, filósofo e ingeniero inglés a quien se le atribuye haber creado la primer computadora mecánica programable. Se lo considera el Padre de la Computación. Su principal creación fue la Máquina Diferencial. Organización de Computadoras 7 Máquina Diferencial La Máquina Diferencial, si bien completamente diseñada en papel, no pudo ser fabricada por Babbage por cuestiones ajenas a él. La calidad de los engranajes disponibles en su época no era la apropiada. En 1991, usando un maquinado moderno, se pudo completar finalmente y poner en funcionamiento. Organización de Computadoras 8 Herman Hollerith Herman Hollerith (1860-1929) fue un estadístico americano que creo quizás la primer máquina electrónica programable para contar. Su invención es conocida como el Telar de Hollerith. Se basaba en una idea parecida a la usada en los telares de la revolución industrial para “programar” los distintos patrones de la tela a ser confeccionada. Organización de Computadoras 9 Telar de Hollerith La idea central del Telar de Hollerith era hacer uso de tarjetas perforadas para codificar distintas características. Cambiando la ubicación y la cantidad de las perforaciones se codificaban distintos aspectos. Hollerith fundó una compañía para vender su máquina que luego se unió con otras para formar a... ¡IBM! Organización de Computadoras 10 Z3 (1941) La Z3, creada en Alemania por Konrad Zuse durante la segunda guerra mundial, es la primer computadora electromecánica del mundo. Recientemente se pudo demostrar que es Turing completa. ¿Esto, qué implica? Organización de Computadoras 11 Z3 (1941) Características: Velocidad de reloj: 5.3 Hertz. Suma en 0,8 segundos, multiplica en 3 segundos. Capacidad de memoria: 64 palabras de 22 bits. Operaba sólo en punto flotante, base 10. Consumo de electricidad: 4.000 Watts. Peso: unos 1.000 kilogramos. Componentes: unos 2.000 relés, de los cuales 1.400 se usaban para representar la memoria. Organización de Computadoras 12 Colossus (1944) Del otro lado del Canal de la Mancha, los británicos no se quedaron atrás, creando la computadora Colossus. Su principal uso era romper el código usado por los alemanes para codificar sus comunicaciones. Su existencia se ocultó por ser considerada un secreto de estado. Churchill ordenó que se destruya por completo. Organización de Computadoras 13 Colossus (1944) No confundir con el dispositivo electromecánico diseñado por Turing para quebrar el esquema de encriptado alemán llamado enigma. Para más data ver: The Imitation Game Organización de Computadoras 14 ENIAC (1946) Los americanos John Mauchly y Presper Eckert construyeron la ENIAC, la primer computadora electrónica de propósito general que además era Turing completa. Su principal propósito era calcular las tablas de artillería para los distintos tipos de cañones de aquella época. Organización de Computadoras 15 ENIAC (1946) Características: Operaba en decimal. Contaba con 20 acumuladores de 10 dígitos. Se programaba a mano usando interruptores. Calculaba unas 5.000 sumas por segundo. Componentes: 18.000 válvulas y 7.200 diodos. Peso: unos 27.000 kg. Tamaño: ocupaba alrededor de 167 m². Consumo de electricidad: 150.000 Watts. Organización de Computadoras 16 EDSAC (1949) El británico Maurice Wilkes puso en práctica las ideas de John von Neumann al diseñar y construir la EDSAC, la primera computadora electrónica práctica de programa almacenado. La revolucionaria idea de John von Neumann era usar la memoria de la computadora para almacenar no sólo datos sino además el programa a ser ejecutado. De nuevo, Alan S. Turing colaboró con John von Neumann en este diseño. Organización de Computadoras 17 EDSAC (1949) Características: Operaba en binario, en notación complemento a dos. Capacidad de memoria: 1.024 palabras de 17 bits. La memoria era de tipo dinámica (como hoy en día). La industria del software nació en el momento que se desarrolló el ensamblador para esta máquina. Al no contar con registros índices, para recorrer arreglos se debía apelar al código automodificable. La entrada era a través de tarjetas perforadas y la salida a través de una teletipo. Organización de Computadoras 18 Arquitectura von Neumann La arquitectura de programa almacenado propuesta por John von Neumann es la que sigue en uso hoy en día. Se basa en cuatro componentes principales: La CPU (Unidad Central de Proceso), la cual cuenta con su respectiva ALU (Unidad Aritmético-Lógica). La memoria principal. Uno o más dispositivos de entrada y/o de salida. Un componente de control que orquesta la interacción entre todos estos componentes. Organización de Computadoras 19 Arquitectura von Neumann CPU Organización de Computadoras 20 EDVAC (1951) Los creadores de la ENIAC junto con John von Neumann crearon la EDVAC, una computadora de programa almacenado que corregía algunas de las deficiencias de su predecesora. La programación era mucho más sencilla (no más interruptores). Adoptaba el sistema binario en vez del sistema decimal. Incorporaba la mayor parte de las mejoras tecnológicas disponibles al momento de su creación. Organización de Computadoras 21 EDVAC (1951) Características: Componentes: 6.000 válvulas y 12.000 diodos. Consumo eléctrico: 56.000 Watts. Tamaño: ocupaba unos 46 m². Peso: 7.850 kg. Sumaba en 864 µs y multiplicaba en 2900 µs. Contaba con una unidad lecto/escritora de cinta. Mucho más confiable que los modelos anteriores, se la podía usar... ¡hasta 20 horas por día! Organización de Computadoras 22 Invención del transistor La invención del transistor en 1947 revolucionó al incipiente campo de la computación. Sirve como reemplazo directo de las válvulas. Son más pequeños y más baratos. Disipan menos calor, en otras palabras, consumen menos corriente eléctrica. Se trata de un dispositivo de estado sólido. Se fabrica a partir de silicio... esto es, ¡arena! Organización de Computadoras 23 Generaciones El advenimiento del transistor permitió construir computadoras tan diferentes a las anteriores que se habla de distintas generaciones. La primera generación está compuesta de las computadoras que hemos enumerado, las cuales están construidas usando válvulas. La segunda generación está compuesta de las nuevas computadoras construidas usando transistores. Por caso, la familia IBM 7000 o la DEC PDP-1. Organización de Computadoras 24 Generaciones Claramente para poder hablar de una tercera generación iba a hacer falta una invención tan radical como la del transistor. La invención en la década del '60 de los circuitos integrados constituyó esa invención radical. En consecuencia, la tercera generación está compuesta por computadoras construidas usando circuitos integrados Organización de Computadoras 25 Generaciones Primera generación (1941-1957) Computadoras construidas usando válvulas. Segunda generación (1958-1964) Computadoras construidas usando transistores. Tercera generación (1965-2015) Computadoras construidas usando circuitos integrados. Algunos autores consideran a las computadoras más recientes (1978-2015) como una cuarta generación. Organización de Computadoras 26 Niveles de integración Usando integrados SSI y MSI (1965-1971) SSI hasta 100 transistores por chip. MSI de 100 a 3.000 transistores por chip. Usando integrados LSI (1971-1977) De 3.000 a 100.000 transistores por chip. Usando integrados VLSI (1978-1991) De 100.000 a 100.000.000 de transistores por chip. Usando integrados ULSI (1991-2015) Más de 100.000.000 de transistores por chip. Organización de Computadoras 27 Sistema Operativo Un componente faltante en estas primeras computadoras es el sistema operativo. ¿Tiene sentido que hoy en día una computadora no cuente con su correspondiente sistema operativo? Las tareas del sistema operativo era realizadas por los propios operadores. No era de extrañar ver decenas de operarios en torno a estas computadoras, para que entre todos lograran llevar adelante un cierto cómputo. Organización de Computadoras 28 Proceso de compilación Protocolo para compilar un programa escrito en un cierto lenguaje de programación: Buscar en el armario la caja de tarjetas perforadas conteniendo el programa compilador del lenguaje (por caso, para la época sería Fortran o Cobol). Hacer correr esos cientos de tarjetas por el lector de tarjetas hasta que la computadora se detenga (a la espera de ingresar el programa a ser compilado). Poner en el lector el conjunto de tarjetas perforadas correspondientes al programa que queremos compilar y esperar a que sean procesadas. Organización de Computadoras 29 Proceso de compilación Continúa: En ese momento la perforadora de cinta entra en acción (puesto que no se usaban monitores). Pueden pasar dos cosas, que la compilación sea exitosa o que haya habido un error en el programa fuente. Si la compilación fue exitosa, la perforadora de cinta genera la versión ejecutable del programa. Si la compilación falló, se genera un reporte de cuál fue el error, pero eso significa tener que descartar y volver a perforar una o más tarjetas (por así decir, las tarjetas perforadas son “sólo lectura”). Organización de Computadoras 30 Proceso de ejecución Protocolo para ejecutar el programa una vez compilado satisfactoriamente. Buscar en el armario las tarjetas perforadas asociadas al cargador de programas. Hacer pasar esas tarjetas por el lector de tarjetas hasta que la computadoras se detenga. En ese punto se hace pasar la cinta perforada antes generadas por el compilador por el lector de cinta. En este punto, el programa puede o bien finalizar satisfactoriamente, o bien abortar su ejecución por la mitad, o bien ciclar indefinidamente. Organización de Computadoras 31 Proceso de ejecución Continúa: Si el programa termina de ejecutar y además cuenta con alguna forma de salida, se activará el teletipo o el perforador de cinta según corresponda. Si el programa aborta por la mitad su ejecución, se genera un volcado en impresora del estado de la memoria en ese momento para que el autor del programa intente descubrir qué pasó. Si el programa cicla indefinidamente, el operador tiene que darse cuenta e interrumpir su ejecución, generándose un volcado como en el caso anterior. Organización de Computadoras 32 IBM System/360 Esta computadora introducida en 1964 constituye la primer familia de computadoras: Todas tienen un set de instrucciones similar o incluso idéntico y usan el mismo sistema operativo. La principal diferencia entre las distintas versiones de la familia es su velocidad y su capacidad de memoria. Popularizó el concepto de que un byte tiene 8 bits. ¡Casi termina teniendo 4 bits, o alternativamente 6 bits! Organización de Computadoras 33 DEC PDP-8 DEC creo en 1964 la primer minicomputadora. El nombre hace referencia a otra invención contemporánea, la minifalda. No requería un equipo de aire acondicionado propio. Era lo suficientemente pequeña como entrar en un escritorio. Una bicoca para la época: $16.000 (la System/360 de IBM arrancaba en unos $100.000). Organización de Computadoras 34 PDP-8 La PDP-8 se caracteriza por hace uso de un innovativo bus único llamado Omnibus, el cual interconecta a todos sus componentes. Resultó un éxito, vendiéndose más de 300.000 unidades entre sus distintas variantes. Organización de Computadoras 35 Ley de Moore Gordon Moore, unos de los fundadores de Intel, observó que la densidad de los circuitos integrados crecía constantemente. Predijo que la cantidad de transistores en los chips iba a duplicarse cada año. Tan precisa fue esa predicción que hoy se la conoce como la Ley de Moore. Desde la década del '70 este crecimiento se desaceleró un poco: Ahora... ¡sólo se duplica cada 18 meses! Organización de Computadoras 36 Transistores por CPU Organización de Computadoras 37 Transistores por CPU ¿Qué beneficio genera contar dentro de un mismo chip con más transistores? Los transistores de los integrados CMOS cuanto más pequeños resultan más veloces y disipan menos calor. Al ser más pequeños todos los componentes, sus interconexiones son mas cortas, y por ende pueden funcionar a mayor velocidad. El costo de fabricar un chip se ha mantenido relativamente constante, por lo que al aumentar el nivel de integración baja el costo (es decir, pagando lo mismo podemos hacer más que antes). Organización de Computadoras 38 Evolución de la memoria La tecnología de la memoria principal de las primeras computadora era bien diversa. Una de las alternativas más populares de la época (1955-1975) fue la memoria de núcleo. Cada bit se almacenaba en un pequeño toroide magnético. Se trata de una memoria persistente, pero cuyo contenido se destruye al leerlo. Otro tipo: de núcleo cableado. Organización de Computadoras 39 Evolución de la memoria En la década del '70 finalmente se pudo aplicar la tecnología de los circuitos integrados a la producción de memoria. La tecnología de los semiconductores permitió empaquetar unos 256 bits en el espacio ocupado por un único toroide de la memoria de núcleo. Las lecturas no eran destructivas y además el ciclo de lectura era mucho más veloz. Eso si, se trata de una memoria dinámica, el contenido se pierde pasado un cierto tiempo. Organización de Computadoras 40 Evolución de la memoria Una vez implementada la memoria dentro de un circuito integrado, se pudo sacar provecho de los avances en el nivel de integración: La capacidad de los módulos de memoria se duplica cada unos 12 meses. No obstante, sólo la capacidad de los módulos se incrementa de forma exponencial, no así su velocidad. Existe una separación cada vez mayor entre las velocidades del procesador y de la memoria. Organización de Computadoras 41 CPU vs. Memoria Organización de Computadoras 42 Soluciones ensayadas A lo largo del tiempo se han ensayado distintas alternativas para atemperar el impacto de esta creciente diferencia de desempeño: Traer más información a la vez (que los módulos de memoria tengan más “patitas”). Incorporar múltiples niveles de memoria cache. Minimizar los accesos a memoria (tarea tanto del programador como del compilador). Mejorar la interconexión entre CPU y memoria (por ejemplo, haciendo uso de múltiples canales). Organización de Computadoras 43 Intel Intel introdujo en 1971 el i4004, el primer microprocesador. Un microprocesador contiene todos los componentes del CPU dentro de un único chip. Se trata de una arquitectura de 4 bits. En 1972 introdujo el i8008, de 8 bits. Tanto el i4004 como el i8008 eran de propósito específico. Luego, en 1974 introdujo el i8080, el primer microprocesador de propósito general. Organización de Computadoras 44 Intel 4004 (1971) Características: Arquitectura de 4 bits. Capacidad de memoria: 4 KB (12 bits) Transistores: 2.250 Tamaño: 12 mm² Frecuencia: 108 KHz Organización de Computadoras 45 Intel 8086 (1978) Características: Arquitectura de 16 bits. Capacidad de memoria: 1 MB (20 bits) Transistores: 29.000 Tamaño: 23 mm² Frecuencia: 5.000 KHz Organización de Computadoras 46 Intel 80386 (1985) Características: Arquitectura de 32 bits. Capacidad de memoria: 4 GB (32 bits) Transistores: 275.000 Tamaño: 104-39 mm² Frecuencia: 12-33 MHz Organización de Computadoras 47 Intel 80486 (1989) Características: Arquitectura de 32 bits. Capacidad de memoria: 4 GB (32 bits) Transistores: 1.200.000 Tamaño: 81 mm² Frecuencia: 16-100 MHz Cache: 8 KB Incluye por primera vez un coprocesador matemático en el mismo chip. Organización de Computadoras 48 Intel Pentium (1993) Características: Arquitectura de 32 bits. Capacidad de memoria: 4 GB (32 bits) Transistores: 3.100.000 Tamaño: 294 mm² Frecuencia: 60-233 MHz Cache: 16-32 KB Primer arquitectura x86 superescalar. Organización de Computadoras 49 Intel Pentium III (1999) Características: Arquitectura de 32 bits. Capacidad de memoria: 4 GB (32 bits) Transistores: 9.500.000 Tamaño: 125 mm² Frecuencia: 450-1400 MHz Cache: 256-512 KB Esta arquitectura es aún la base de los procesadores modernos. Organización de Computadoras 50 Intel Pentium IV (2000) Características: Arquitectura de 32 bits. Capacidad de memoria: 4 GB (32 bits) Transistores: 42.000.000 Tamaño: 145 mm² Frecuencia: 1.3-3.8 GHz Cache: 256-2048 KB Primera implementación de la técnica de hyperthreading. Organización de Computadoras 51 Intel Core2 (2006) Características: Arquitectura de 64 bits. Capacidad de memoria: 64 GB - 8 EB (36-64 bits) Transistores: 291.000.000 Tamaño: 143 mm² Frecuencia: 1.06-3.5 GHz Cache: 1-12 MB Núcleos: 1, 2 ó 4. Organización de Computadoras 52 Intel Core i7 (2008) Características: Arquitectura de 64 bits. Capacidad de memoria: 64 GB - 8 EB (36-64 bits) Transistores: 1.600.000.000 Tamaño: 160 mm² Frecuencia: 1.06-3.5 GHz Cache: 5-15 MB Núcleos: 2, 4 ó 6. Organización de Computadoras 53 Hardware vs. Software Las computadoras hoy en día se componen esencialmente de hardware y de softwarte. Denominamos hardware a todo componente tangible, es decir, que se puede tocar. Por caso, procesador, memoria, teclado, etc. En contraste, denominamos software a los restantes componentes intangibles. Por caso, el sistema operativo, los programas de aplicación, etc. Organización de Computadoras 54 Principio de equivalencia El principio de equivalencia nos brinda un puente entre el hardware y el software: “Todo lo que pueda ser implementado a nivel de software también puede ser reimplementado a nivel de hardware y todo lo que pueda ser implementado a nivel de hardware puede ser reimplementado a nivel de software” La decisión de qué implementar en hardware y qué en software depende de otros parámetros: Velocidad, costo, facilidad de mantenimiento, etc. Organización de Computadoras 55 Microprogramación Una aplicación inmediata de la ley de equivalencia se puede observar, por caso, en las minicomputadoras de la compañía DEC. En ocasiones, las instrucciones máquina más complicadas se implementaban en un software de bajo nivel llamado microcódigo. Parte de las instrucciones estaban implementadas directamente en hardware, pero parte también se implementaban a través de microprogramación. La idea era balancear costo vs. desempeño. Organización de Computadoras 56 Microprogramación La técnica de microprogramación floreció principalmente durante el período que la memoria principal era excesivamente lenta. El contar con un set de instrucciones complejo permite generar programas más compactos y con menor requerimiento de ancho de banda a memoria. Este tipo de arquitectura se denomina casualmente Complex Instruction Set Computer (CISC). La familia Intel x86 es quizás el ejemplo más conocido de arquitectura CISC. Organización de Computadoras 57 Microprogramación La utilidad de la microprogramación empezó a ceder de la mano de dos avances: Por un lado el crecimiento exponencial de la cantidad de transistores disponibles permitió reimplementar en hardware más y más funcionalidad. Pero el mayor impacto vino de la mano de la mejora en el desempeño de la memoria principal. En la actualidad se opta por simplificar el set de instrucciones (RISC), mejorando el desempeño mediante el uso de pipeline y múltiples núcleos. Organización de Computadoras 58 Ciclo básico del CPU Las computadoras llevan adelante infinitas veces su ciclo básico de operación: Etapa Fetch: se busca la próxima instrucción a ser ejecutada, la cual es apuntada por el registro PC. Etapa Decode: luego, se determina de qué tipo de instrucción se trata. Etapa Effective Address: se calcula la dirección efectiva referida por la instrucción (si es que existe alguna) y/o se busca en memoria los operandos para poder ejecutar la instrucción. Organización de Computadoras 59 Ciclo básico del CPU Continúa: Etapa Execute: sabiendo de qué instrucción se trata y contando con los operandos que se necesiten se puede enviar todo a la ALU para que sea ejecutado. Etapa Memory: las arquitecturas que no permiten acceder a operandos en memoria cuentan con una etapa específica donde se accede a memoria para leer o escribir una determinada locación. Etapa Write-Back: usualmente el resultado de la operación se almacena en alguno de los registros de la máquina durante esta etapa. Organización de Computadoras 60 Ciclo básico del CPU FETCH FETCH DECODE DECODE EFFECTIVE EFFECTIVE ADDRESS ADDRESS WRITE WRITE BACK BACK MEMORY MEMORY EXECUTE EXECUTE Organización de Computadoras 61 Organización de la memoria La memoria se organiza como un arreglo de n locaciones, cada una de k bits. 0000: 01110010 1110: 1111: 11100101 00011001 01110010 00100101 … De igual forma, cada locación almacena un contenido de k bits. … Cada locación cuenta con un identificador que la caracteriza denominado dirección. 0001: 0010: 0011: 0100: 00111001 10010110 Las operaciones básicas con la memoria son: Leer un valor de la memoria. Escribir un valor en la memoria. Organización de Computadoras 62 Interfaz con la memoria La unidad controladora de la memoria cuenta esencialmente con dos registros: El registro MAR el cual almacena la dirección de una locación de memoria. El registro MDR el cual almacena el contenido de una locación de memoria. MAR MDR unidad controladora de la memoria Organización de Computadoras 63 Interfaz con la memoria Operación de lectura (load): El procesador escribe la locación que se desea acceder en el registro MAR, luego activa la señal de lectura y finalmente accede al valor en cuestión el cual estará disponible en el registro MDR. Operación de escritura (store): El procesador escribe la locación que se desea acceder en el registro MAR y el contenido que se desea almacenar en el registro MDR y por último activa la señal de escritura. Organización de Computadoras 64 Latinoamérica y Argentina Historia de la Informática en Latinoamérica y el Caribe: Investigaciones y testimonios Jorge Aguirre & Raúl Carnota (Compiladores) Universidad Nacional de Río Cuarto, 2009 Organización de Computadoras 65 Clementina (1960) Primera computadora utilizada con fines científicos. Manuel Sadosky (matemático y físico) creador de la carrera de Computador Científico (Lic. en Ciencias de la Computación). Instalada en el Instituto de Cálculo de la UBA. Características: Marca: Ferranti Mercury (de Gran Bretaña) Sucedor del modelo Mark 1 Memoria núcleo magnético 4Kwords de 10bits. Componentes: 18 gabinetes Lector de tarjetas (nacional) Primer lenguaje de prog. Argentino: COMIC Organización de Computadoras 66 Supercomputadoras Cristina En honor a la Dra. María Cristina Giordano pionera de la investigación en fisicoquímica en Córdoba Comienzo de operaciones: marzo 2010 Univ. Nacional de Córdoba Organización de Computadoras 67 Supercomputadoras (cont.) Características: nodo de administración 32 GiB de RAM, 8 núcleos Intel Xeon E5420 2.5 GHz, fuente redundante. nodo de almacenamiento 32 Gb de RAM, 8 núcleos Intel Xeon E5420 2.5 GHz y 20 TiB de almacenamiento RAID, fuente redundante. 68 nodos de cómputo con 16 GiB de RAM, 8 núcleos Intel Xeon E5420 2.5 GHz. Total de procesadores: 560 CPUs, 32 TiB de disco y 1.1 TiB de RAM. (1 TiB/tebibyte = 240 bytes = 1099511627776bytes = 1024 gibibytes) Organización de Computadoras 68 Supercomputadoras (cont.) Mendieta Séptima más rápida de LA (según LarTop50 2014) Univ. Nacional de Córdoba Isaac Segunda más veloz de la Argentina. CNEA (Comisión Nacional de Energía Atómica) Organización de Computadoras 69 Supercomputadoras (cont.) Tupac Cluster del CONICET Características: 16384 GPUs nVidia 4096 CPUs AMD Opteron (AMD 6276) Memoria general: 2GB por core Memoria total GPU: 8192GB Organización de Computadoras 70 ¿Preguntas? Organización de Computadoras 71