hpc hi performance computing computación de alto desempeño juan carlos gutiérrez martínez...

42
HPC HI PERFORMANCE COMPUTING Computación de Alto Desempeño Juan Carlos Gutiérrez Martínez Universidad Tecnológica de Pereira Pereira, Abril 17 de 2009

Upload: nacho-ledesma

Post on 23-Jan-2016

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: HPC HI PERFORMANCE COMPUTING Computación de Alto Desempeño Juan Carlos Gutiérrez Martínez Universidad Tecnológica de Pereira Pereira, Abril 17 de 2009

HPCHI PERFORMANCE

COMPUTING

Computación de Alto Desempeño

Juan Carlos Gutiérrez Martínez

Universidad Tecnológica de Pereira

Pereira, Abril 17 de 2009

Page 2: HPC HI PERFORMANCE COMPUTING Computación de Alto Desempeño Juan Carlos Gutiérrez Martínez Universidad Tecnológica de Pereira Pereira, Abril 17 de 2009

Contenido1. INTRODUCCIÓN2. QUE ES HPC3. ANTECEDENTES3.1 Un poco de historia 4. COMO LOGRAR HPC4.1 HPC desde la perspectiva del hardware 4.1.1 Modelo taxonómico de PhD Michel J Flynn4.1.2. Modelo de conexión de la memoria y el procesador4.1.3 Modelo estructura de la memoria y mecanismo de comunicación4.1.4 Clasificación de los computadores Flynn-Jonson4.1.5 Computación escalar y súper escalar4.1.6 Procesador vectorial4.1.7 Intel Itanium 2. Incorporado en Altix 350 U.T.P4.1.8 Soluciones asociadas4.2 HPC desde la perspectiva del software 4.2.1 Sistema operativo4.2.2. Lenguaje y compilador4.2.3 Anotaciones4.2.4 MPI4.3 HPC desde la algoritmia 4.3.1 En serie y en paralelo.4.4 HPC RC 4.4.1. Arquitectura de la computación reconfigurable4.4.2 Estructura de la librería RASC4.4.3. Arquitectura RASC con la capa “Core services”4.4.4. Arreglo de FPGA masivamente paralelo4.4.5 VHDL4.4.5.1. VHDL: VHSIC y HDL4.4.5.2. VHDL: Formas de describir un circuito4.4.5.3. VHDL: Ejemplo compuerta NAD4.4.5.4. VHDL: Ejemplo ContadorBibliografía

HPC: Computación de alto desempeño

Page 3: HPC HI PERFORMANCE COMPUTING Computación de Alto Desempeño Juan Carlos Gutiérrez Martínez Universidad Tecnológica de Pereira Pereira, Abril 17 de 2009

INTRODUCCIÓN

Desde el inicio de la humanidad el ser humano con su capacidad creativa ha diseñado instrumentos que le permitan desempeñar sus labores de una manera mas eficiente.

Con la computación, la eficiencia está enfocada en realizar cada vez mayor cantidad de cálculos en el menor tiempo posible, esta necesidad ha llevado a desarrollar herramientas de software y hardware que le permitan lograr este objetivo

HPC: Computación de alto desempeño

Page 4: HPC HI PERFORMANCE COMPUTING Computación de Alto Desempeño Juan Carlos Gutiérrez Martínez Universidad Tecnológica de Pereira Pereira, Abril 17 de 2009

QUE ES HPC

El término HPC, surgió luego del término SUPERCOMPUTING, y son asociados usualmente como sinónimos.

En otros contextos “Supercomputador”, se considera como un subconjunto de “Computadores de alto desempeño”, y el término “SUPERCOMPUTING”, se considera como un subconjunto de la “HPC”

HPC: Computación de alto desempeño

Términos

Page 5: HPC HI PERFORMANCE COMPUTING Computación de Alto Desempeño Juan Carlos Gutiérrez Martínez Universidad Tecnológica de Pereira Pereira, Abril 17 de 2009

QUE ES HPC

En la actualidad HPC se puede definir como un conjunto de elementos de hardware, software y algoritmia, que combinados permiten resolver problemas donde se requiere actuar sobre un conjunto muy denso de datos para ser procesados en el menor tiempo posible. (El autor).

Ejemplos: Clima, medicina, gráficos, negocios, criptografía

HPC: Computación de alto desempeño

Definición

Page 6: HPC HI PERFORMANCE COMPUTING Computación de Alto Desempeño Juan Carlos Gutiérrez Martínez Universidad Tecnológica de Pereira Pereira, Abril 17 de 2009

ANTECEDENTES

En un contexto histórico desde el conteo con nudos en tiras de lana de oveja, pasando por la aparición del numero “uno”, llegando al ábaco, la sumadora de Pascal, la maquina de Babagge, la Qurta, y comenzado en la era de reles con Z3 y en la de tubos al vacío con el Eniac, pasando por muchos otros, todos ellos han tenido la finalidad de realizar HPC.

HPC: Computación de alto desempeño

.

Page 7: HPC HI PERFORMANCE COMPUTING Computación de Alto Desempeño Juan Carlos Gutiérrez Martínez Universidad Tecnológica de Pereira Pereira, Abril 17 de 2009

ANTECEDENTES

HPC: Computación de alto desempeño

Page 8: HPC HI PERFORMANCE COMPUTING Computación de Alto Desempeño Juan Carlos Gutiérrez Martínez Universidad Tecnológica de Pereira Pereira, Abril 17 de 2009

Un poco de historia

El origen moderno de HPC, nace con quien se conoce como “El padre de la supercomputación”, el Ingeniero electricista y magíster en matemáticas aplicadas, Seymour Cray, (1925 – 1996 ).

Seymor Cray, inicia sus trabajos, en 1951 en Engineering Research Associates, compañía que trabaja en criptografía.

Desarrolla el modelo 1103, con el concepto de un conjunto reducido de instrucciones, que hoy se conoce como RISC.

HPC: Computación de alto desempeño

.

Page 9: HPC HI PERFORMANCE COMPUTING Computación de Alto Desempeño Juan Carlos Gutiérrez Martínez Universidad Tecnológica de Pereira Pereira, Abril 17 de 2009

Un poco de historia

En 1957 hace parte de CDC (Control data corporation) y Desarrolla el modelo 1604, con el uso de transistores.

Crea en 1972 la empresa Cray research Inc., Desarrolla el supercomputador CRAY1En forma de letra “C”.Sistema innovador para refrigeración con freón.

En 1978 aparece el supercomputador multiprocesadorCray X- MP, lo sigue el CRAY 2

HPC: Computación de alto desempeño

.

Page 10: HPC HI PERFORMANCE COMPUTING Computación de Alto Desempeño Juan Carlos Gutiérrez Martínez Universidad Tecnológica de Pereira Pereira, Abril 17 de 2009

Un poco de historia.

En 1978 aparece el supercomputador multiprocesador

Cray X- MP, lo sigue el CRAY 2

Para 1988 se rompe la barrera de 1 Gigaflop

Cray Y-MP

En 1989 crea Cray Computer Coprporation.

Desarrollan 1 solo CRAY 3

Inicia proyecto CRAY 4, entra en bancarrota

Queda inconcluso por muerte Seymor en 1996

HPC: Computación de alto desempeño

.

Page 11: HPC HI PERFORMANCE COMPUTING Computación de Alto Desempeño Juan Carlos Gutiérrez Martínez Universidad Tecnológica de Pereira Pereira, Abril 17 de 2009

Un poco de historia.

En 1990 se crea Cray Research, aparecen grandes avances

Comienzan con el Cray 90 y 1 Gigaflop sostenido

Utiliza 16 procesadores de 333 Megaflops

256 Millones de “Words” ( 1 millón de Words = 8 Mb)

Le siguen el Mini supercomputador Cray XMS, “Cray Y-MP-El”, y el Cray J90 (vendidas mas de 400)

HPC: Computación de alto desempeño

.

Page 12: HPC HI PERFORMANCE COMPUTING Computación de Alto Desempeño Juan Carlos Gutiérrez Martínez Universidad Tecnológica de Pereira Pereira, Abril 17 de 2009

Un poco de historia.

.

HPC: Computación de alto desempeño

CRAY - 1

Page 13: HPC HI PERFORMANCE COMPUTING Computación de Alto Desempeño Juan Carlos Gutiérrez Martínez Universidad Tecnológica de Pereira Pereira, Abril 17 de 2009

COMO LOGRAR HPC.

Teniendo en cuenta que la HPC se logra con el conjunto de Hardware, software y algoritmia, presentaremos desde cada uno de estos los conceptos para lograr HPC.

HPC: Computación de alto desempeño

.

Page 14: HPC HI PERFORMANCE COMPUTING Computación de Alto Desempeño Juan Carlos Gutiérrez Martínez Universidad Tecnológica de Pereira Pereira, Abril 17 de 2009

HPC desde la perspectiva del hardware

Este modelo presentado en 1966, tiene en cuenta las 4 formas en que se procesan las instrucciones y los datos en un computador:

HPC: Computación de alto desempeño

Modelo taxonómico de PhD Michel J Flynn

MODELO TAXONÓMICO DE FLYNN

 UNA

INSTRUCCIÓNMULTIPLES

INSTRUCCIONES

UN DATO SISDMISD

(no hay aplicación)

MULTIPLES DATOS

SIMD MIMD

Page 15: HPC HI PERFORMANCE COMPUTING Computación de Alto Desempeño Juan Carlos Gutiérrez Martínez Universidad Tecnológica de Pereira Pereira, Abril 17 de 2009

HPC desde la perspectiva del hardware

HPC: Computación de alto desempeño

Modelo taxonómico de PhD Michel J Flynn

Page 16: HPC HI PERFORMANCE COMPUTING Computación de Alto Desempeño Juan Carlos Gutiérrez Martínez Universidad Tecnológica de Pereira Pereira, Abril 17 de 2009

HPC desde la perspectiva del hardware

Memoria compartida

Memoria distribuida

Memoria distribuida - compartida

HPC: Computación de alto desempeño

Modelo de conexión de la memoria y el procesador

Page 17: HPC HI PERFORMANCE COMPUTING Computación de Alto Desempeño Juan Carlos Gutiérrez Martínez Universidad Tecnológica de Pereira Pereira, Abril 17 de 2009

HPC desde la perspectiva del hardware

Memoria compartida: Cada procesador tiene acceso a un espacio global de direcciones de memoria, que es compartido por todos los procesadores en el sistema. Para evitar problemas de acceso al mismo dato por dos procesadores, se deben utilizar semáforos y candados.

HPC: Computación de alto desempeño

Modelo de conexión de la memoria y el procesador

Page 18: HPC HI PERFORMANCE COMPUTING Computación de Alto Desempeño Juan Carlos Gutiérrez Martínez Universidad Tecnológica de Pereira Pereira, Abril 17 de 2009

HPC desde la perspectiva del hardware

Memoria distribuida: Cada procesador tiene su propio espacio de direcciones de memoria. El intercambio de información se realiza por la red de interconexión, utilizando software de intercambio de mensajes. Si un procesador requiere información de al memoria de otro procesador, realiza una solicitud.

HPC: Computación de alto desempeño

Modelo de conexión de la memoria y el procesador

Page 19: HPC HI PERFORMANCE COMPUTING Computación de Alto Desempeño Juan Carlos Gutiérrez Martínez Universidad Tecnológica de Pereira Pereira, Abril 17 de 2009

HPC desde la perspectiva del hardware

Memoria distribuida compartida: La memoria que esta distribuida, se “ ve “ como un único espacio de direcciones virtuales.

HPC: Computación de alto desempeño

Modelo de conexión de la memoria y el procesador

Page 20: HPC HI PERFORMANCE COMPUTING Computación de Alto Desempeño Juan Carlos Gutiérrez Martínez Universidad Tecnológica de Pereira Pereira, Abril 17 de 2009

HPC desde la perspectiva del hardware

Del modelo taxonómico de Flynn, cuando se realizan múltiples instrucciones sobre múltiples datos (MIMD), la conexión de las memoria y la forma en que se comunican, se modeló por E.E. Jonson, proponiendo las 4 siguientes categorías:

HPC: Computación de alto desempeño

Modelo estructura de la memoria y mecanismo de comunicación

MODELO E.E. JONSON para MIMD

 

Variables compartidas SV

Intercambio de mensajes MP

Memoria global GM GMSVGMMP

(Sin aplicación real)

Memoria distribuida DM DMSV DMMP

Page 21: HPC HI PERFORMANCE COMPUTING Computación de Alto Desempeño Juan Carlos Gutiérrez Martínez Universidad Tecnológica de Pereira Pereira, Abril 17 de 2009

HPC desde la perspectiva del hardware

Modelo Flynn - Jonson

HPC: Computación de alto desempeño

Clasificación de los computadores Flynn-Jonson

No tiene aplicación

Page 22: HPC HI PERFORMANCE COMPUTING Computación de Alto Desempeño Juan Carlos Gutiérrez Martínez Universidad Tecnológica de Pereira Pereira, Abril 17 de 2009

HPC desde la perspectiva del hardware

Los procesadores escalares son el tipo más sencillo de procesadores. Cada instrucción de un procesador escalar opera sobre un dato cada vez. (SISD)

La gran mayoría de las CPUs de hoy en día son escalares o superescalares.

Superescalar es el término utilizado para designar un tipo de microarquitectura de procesador capaz de ejecutar más de una instrucción por ciclo de reloj. (MIMD)

HPC: Computación de alto desempeño

Computación escalar y súper escalar

Page 23: HPC HI PERFORMANCE COMPUTING Computación de Alto Desempeño Juan Carlos Gutiérrez Martínez Universidad Tecnológica de Pereira Pereira, Abril 17 de 2009

HPC desde la perspectiva del hardware

Un procesador vectorial es un diseño de CPU capaz de ejecutar operaciones matemáticas sobre múltiples datos de forma simultánea. (SIMD). (Ej. Consolas video jugos, tarjetas gráficas).

Una maquina vectorial consta de una unidad escalar segmentada y una unidad vectorial.

La unidad vectorial dispone de M registros vectoriales de N elementos y de unidades funcionales vectoriales (suma/resta, multiplicación, división, de carga/almacenamiento, etc), que trabajan sobre los registros vectoriales, y un conjunto de registros escalares.

Dispone de un juego de instrucciones vectoriales.

Por ejemplo addv v1,v2,v3

HPC: Computación de alto desempeño

Procesador vectorial

Page 24: HPC HI PERFORMANCE COMPUTING Computación de Alto Desempeño Juan Carlos Gutiérrez Martínez Universidad Tecnológica de Pereira Pereira, Abril 17 de 2009

HPC desde la perspectiva del hardware

En un procesador con doble núcleo, basado en computación con instrucciones paralelas explicitas (EPIC).

La arquitectura Intel Itanium soporta alto procesamiento en paralelo, direccionar hasta 1024 TB, (1 Petabyte), de memoria ram, 24 MB de caché L3, ancho de banda de 10.6GB/sec para I/O.

Recupera la caché automáticamente tras errores, Permite que un núcleo de procesador duplique las operaciones del otro.

HPC: Computación de alto desempeño

Intel Itanium 2. Incorporado en Altix 350 U.T.P

Page 25: HPC HI PERFORMANCE COMPUTING Computación de Alto Desempeño Juan Carlos Gutiérrez Martínez Universidad Tecnológica de Pereira Pereira, Abril 17 de 2009

HPC desde la perspectiva del hardware

.Incrementar ciclo de reloj de trabajo del procesador.

.Tecnología Hypertreading: Multiples hilos en un solo procesador.

.Tecnología Dual / (QUAD) core: dos / (4) núcleos en un chip.

.RISC: Reduced instruction set code.

.Memoria caché.

.Cluster computer.

.NUMAflex: Tecnología de acceso a la memoria

.Red Gigabit.

.Almacenamiento.

.RC: Computación reconfigurable

HPC: Computación de alto desempeño

Soluciones asociadas

Page 26: HPC HI PERFORMANCE COMPUTING Computación de Alto Desempeño Juan Carlos Gutiérrez Martínez Universidad Tecnológica de Pereira Pereira, Abril 17 de 2009

HPC desde la perspectiva del software

Los procesadores, independiente de su arquitectura, tienen su conjunto de instrucciones, relacionadas en su forma básica al direccionamiento de memoria, manejo de datos y a la entrada/salida. Estos recursos son controlados por el sistema operativo.

La HPC requiere un sistema operativo que permita además de las funciones básicas mencionadas, de características como: multitarea, multiusuario, multiplataforma, memoria compartida y distribuida, manejo de red.

HPC: Computación de alto desempeño

Sistema operativo

Page 27: HPC HI PERFORMANCE COMPUTING Computación de Alto Desempeño Juan Carlos Gutiérrez Martínez Universidad Tecnológica de Pereira Pereira, Abril 17 de 2009

HPC desde la perspectiva del software

Asociado al sistema operativo la HPC requiere de un lenguaje de programación y un compilador para ese programa.

Para el supercomputador Cray1, se liberó el primer paquete de software conformado por:

COS: Cray Operative system (Mejorado como UNICOS)CAL: Cray assembler lenguageCFT: Cray fortran

HPC: Computación de alto desempeño

Lenguaje y compilador

Page 28: HPC HI PERFORMANCE COMPUTING Computación de Alto Desempeño Juan Carlos Gutiérrez Martínez Universidad Tecnológica de Pereira Pereira, Abril 17 de 2009

HPC desde la perspectiva del software

Hasta el 2006, UNIX, en todas sus variantes, fue el sistema operativo de mayor uso en los supercomputadores donde se realizan HPC.

A abril 17 de 2009, el 88% de los 500 supercomputadores más rápidos, utilizan LINUX. <http://www.top500.org>

En los lenguajes de programación dominantes estan C++ y fortran 90, con sus respectivos compiladores.

HPC: Computación de alto desempeño

Anotaciones

Page 29: HPC HI PERFORMANCE COMPUTING Computación de Alto Desempeño Juan Carlos Gutiérrez Martínez Universidad Tecnológica de Pereira Pereira, Abril 17 de 2009

HPC desde la perspectiva del software

Conseguir HPC, requiere de la conexión de varios procesadores, y tener acceso a la memoria, lo que hace necesario librerías encargadas del paso de mensajes.

Para suplir este requerimiento, se cuenta con la librería estándar: MPI ( Message passing interface ), que permite la comunicación entre múltiples procesos, en cualquier ambiente paralelo.

MPI permite por ejemplo asignar el numero de procesadores en los que de dividirá la tarea, el numero de hilos, entre otros.<http://www.mpi-forum.org/>

HPC: Computación de alto desempeño

MPI

Page 30: HPC HI PERFORMANCE COMPUTING Computación de Alto Desempeño Juan Carlos Gutiérrez Martínez Universidad Tecnológica de Pereira Pereira, Abril 17 de 2009

HPC desde la perspectiva del software

.

HPC: Computación de alto desempeño

MPI:“Hola mundo”

Page 31: HPC HI PERFORMANCE COMPUTING Computación de Alto Desempeño Juan Carlos Gutiérrez Martínez Universidad Tecnológica de Pereira Pereira, Abril 17 de 2009

HPC desde la perspectiva del software

.

HPC: Computación de alto desempeño

MPI:“Hola mundo”mejorado

Page 32: HPC HI PERFORMANCE COMPUTING Computación de Alto Desempeño Juan Carlos Gutiérrez Martínez Universidad Tecnológica de Pereira Pereira, Abril 17 de 2009

HPC desde la perspectiva del software

.

HPC: Computación de alto desempeño

MPI:“Hola mundo”Resultados con 8 hilos

Page 33: HPC HI PERFORMANCE COMPUTING Computación de Alto Desempeño Juan Carlos Gutiérrez Martínez Universidad Tecnológica de Pereira Pereira, Abril 17 de 2009

HPC desde la algoritmia Lograr procesamiento más rápido, se debe tener en cuanta que si se

divide un proceso en procesos más pequeños, y cada uno es asignado a un procesador, dentro de una arquitectura en la que existe comunicación entre las unidades de procesamiento, se obtienen respuestas en menor tiempo comparado con el tiempo que tomaría un solo procesador en realizar la misma tarea.

Ejemplo simple: A. Serializado B. Paralelizado

1 a = 3 + 42.b = 6 - 23.c = a + b

HPC: Computación de alto desempeño

En serie y en paralelo.

Page 34: HPC HI PERFORMANCE COMPUTING Computación de Alto Desempeño Juan Carlos Gutiérrez Martínez Universidad Tecnológica de Pereira Pereira, Abril 17 de 2009

HPC RC Arquitectura de la computación reconfigurable

HPC: Computación de alto desempeño

Reconfigurable computing FPGA

Page 35: HPC HI PERFORMANCE COMPUTING Computación de Alto Desempeño Juan Carlos Gutiérrez Martínez Universidad Tecnológica de Pereira Pereira, Abril 17 de 2009

HPC RC Estructura de la librería RASC

HPC: Computación de alto desempeño

Reconfigurable computing(Opuesto a ASIC application-specific integrated circuit)

RASC permite a los usuarios, en un ambiente de software, tener control de FPGA´s, en términos de “C++” y herramientas de linux.

Page 36: HPC HI PERFORMANCE COMPUTING Computación de Alto Desempeño Juan Carlos Gutiérrez Martínez Universidad Tecnológica de Pereira Pereira, Abril 17 de 2009

HPC RC Arquitectura RASC con la capa “Core services”

HPC: Computación de alto desempeño

Reconfigurable computing

NUMA Non-Uniform Memory Access

Core Services: Todas las FPGA´s conectadas a TIO en un bloque RASC, contendrán un conjunto de instrucciones, o núcleo lógico de SGI, que controlan el movimiento de datos, inicialización de funciones.

Page 37: HPC HI PERFORMANCE COMPUTING Computación de Alto Desempeño Juan Carlos Gutiérrez Martínez Universidad Tecnológica de Pereira Pereira, Abril 17 de 2009

HPC RC Arreglo de FPGA masivamente paralelo

HPC: Computación de alto desempeño

Reconfigurable computing

Page 38: HPC HI PERFORMANCE COMPUTING Computación de Alto Desempeño Juan Carlos Gutiérrez Martínez Universidad Tecnológica de Pereira Pereira, Abril 17 de 2009

HPC RC Es un lenguaje utilizado para programar dispositivos lógicos

programables.

VHSIC: es el acrónimo de Very High Speed Integrated CircuitHDL: es a su vez el acrónimo de Hardware Description Language

Hay 4 formas de describir un circuito con VHDL:FUNCIONALFLUJO DE DATOSESTRUCTURALMIXTA

HPC: Computación de alto desempeño

VHDL: VHSIC y HDL

Page 39: HPC HI PERFORMANCE COMPUTING Computación de Alto Desempeño Juan Carlos Gutiérrez Martínez Universidad Tecnológica de Pereira Pereira, Abril 17 de 2009

HPC RC Funcional: Describimos la forma en que se comporta el circuito. Esta es la

forma que más se parece a los lenguajes de software ya que la descripción es secuencial. Estas sentencias secuenciales se encuentran dentro de los llamados procesos en VHDL. Los procesos son ejecutados en paralelo entre sí, y en paralelo con asignaciones concurrentes de señales y con las instancias a otros componentes.

Flujo de datos: describe asignaciones concurrentes (en paralelo) de señales.

Estructural: se describe el circuito con instancias de componentes. Estas instancias forman un diseño de jerarquía superior, al conectar los puertos de estas instancias con las señales internas del circuito, o con puertos del circuito de jerarquía superior.

Mixta: combinación de todas o algunas de las anteriores.

HPC: Computación de alto desempeño

VHDL: Formas de describir un circuito

Page 40: HPC HI PERFORMANCE COMPUTING Computación de Alto Desempeño Juan Carlos Gutiérrez Martínez Universidad Tecnológica de Pereira Pereira, Abril 17 de 2009

HPC RC -- (this is a VHDL comment) -- import std_logic from the IEEE librarylibrary IEEE;use IEEE.std_logic_1164.all; -- this is the entityentity ANDGATE is port ( IN1 : in std_logic; IN2 : in std_logic; OUT1: out std_logic);end ANDGATE; architecture RTL of ANDGATE isbegin OUT1 <= IN1 and IN2; end RTL;

HPC: Computación de alto desempeño

VHDL: Ejemplo compuerta NAD

Page 41: HPC HI PERFORMANCE COMPUTING Computación de Alto Desempeño Juan Carlos Gutiérrez Martínez Universidad Tecnológica de Pereira Pereira, Abril 17 de 2009

HPC RC library IEEE;use IEEE.std_logic_1164.all;use IEEE.numeric_std.all; -- for the unsigned type entity counter_example isgeneric ( WIDTH : integer := 32);port ( CLK, RESET, LOAD : in std_logic; DATA : in unsigned(WIDTH-1 downto 0); Q : out unsigned(WIDTH-1 downto 0));end entity counter_example; architecture counter_example_a of counter_example issignal cnt : unsigned(WIDTH-1 downto 0);begin process(RESET, CLK) begin if RESET = '1' then cnt <= (others => '0'); elsif rising_edge(CLK) then if LOAD = '1' then cnt <= DATA; else cnt <= cnt + 1; end if; end if; end process; Q <= cnt; end architecture counter_example_a;

HPC: Computación de alto desempeño

VHDL: Ejemplo Contador

Page 42: HPC HI PERFORMANCE COMPUTING Computación de Alto Desempeño Juan Carlos Gutiérrez Martínez Universidad Tecnológica de Pereira Pereira, Abril 17 de 2009

http://es.wikipedia.org/wiki/Procesador_vectorial

http://es.wikipedia.org/wiki/Procesadores_escalares

http://www2.gup.jku.at/thesis/diploma/bernhard_reitinger/main/node10.html#flynn

http://en.wikipedia.org/wiki/Distributed_operating_system

http://www.csa.ru/CSA/News/msg00912.htmr

http://technet.microsoft.com/en-us/library/cc720120.aspx

http://en.wikipedia.org/wiki/High_performance_computing

http://www.intel.com/cd/products/services/emea/spa/processors/itanium/373613.htm

http://download.intel.com/products/processor/itanium/dc_prod_brief.pdf

http://oss.sgi.com/projects/numa/

http://www.wikilearning.com/tutorial/caracteristicas_principales_de_linux-caracteristicas_de_linux/20536-2

Bibliografía

“RASC Algorithm FPGA Hardware Design Guide”..

<http://techpubs.sgi.com/library/tpl/cgi-bin/getdoc.cgi/linux/bks/SGI_EndUser/books/RASC_UG/sgi_html/ch03.html>