Está en la página 1de 6

-

República Bolivariana de Venezuela


Ministerio del poder popular para la Educación
Universidad Nacional Experimental de los Llanos
Occidentales “Ezequiel Zamora”
Núcleo-Apure

COMPUTADORES VECTORIALES Y

MATRICIALES

Profesora: Bachiller:
María Ortiz Luis Bravo
CI: 30.438.901

San Fernando de Apure, Diciembre 2022

1. Principio general, arquitectura y organización de súper computadores


vectoriales basados en “pipelines”

Muchos de los computadores antiguos y muchos de los minicomputadores


contemporáneos son monoprocesadores, lo cual no debe sorprendernos ya que
es la máquina más elemental para diseñar y construir.

Por otra parte, las computadoras digitales modernas de gran escala utilizan
frecuentemente el procesamiento simultáneo (concurrencia) en distintos puntos
del sistema, denominaremos a esta clase de computadoras Procesadores
Paralelos.
Los computadores paralelos son sistemas de computadores consistentes de un
conjunto centralizado de procesadores que pueden procesar simultáneamente los
datos del programa. El procesamiento paralelo se basa en la explotación de
sucesos concurrentes en el proceso de cómputo.

1. Sucesos Paralelos: ocurren en múltiples recursos durante el mismo


intervalo de tiempo.

2. Sucesos Simultáneos: ocurren en el mismo instante.

3. Sucesos Pipeline: ocurren en lapsos superpuestos.

La computación vectorial también en llamada procesador vectorial es un diseño de


CPU que puede realizar operaciones de carácter científico, matemático con
múltiples datos en forma simultánea. En la actualidad casi todas las CPU incluyen
algunas instrucciones de procesamiento de tipo vectorial, conocidas como SIMD.

En particular, las consolas de videojuegos y las tarjetas gráficas hacen un uso de


este tipo de procesamiento. 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 como de
suma/resta, multiplicación, división y de carga/almacenamiento entre otras que en
conjunto trabajan sobre los registros.

Los sistemas de supercomputación han tomado un papel importante en las


infraestructuras sociales, debido a esto se ha generado alta demanda de estas
máquinas sobretodo en el ámbito científico. Ahora para satisfacer esta demanda
computacional se han implementado técnicas avanzadas para asegurar un alto
performance computacional.

Un ejemplo de esto se ve en los procesadores actuales y aceleradores que utilizan


tecnología many-core que por su nombre integra miles de cores en un chip.
además que las técnicas de cálculo vectorial han sido adoptadas en procesadores
scalar y aceleradores al igual que los procesadores vectoriales.

Sin embargo, mientras estas técnicas solo mejoran la capacidad computacional,


existe un espacio entre un performance teórico y un performance sostenido,
conocido como el memory wall problem.

Estos supercomputadores alcanzan rendimientos bastante altos en sostenimiento


con respecto al porcentaje del pico de rendimiento denominado eficiencia.
Debido a que el rendimiento de memoria ha ganado a través del tiempo bastante
importancia, un nuevo supercomputador vectorial llamado SX-Aurora TSUBASA el
cual contiene la mayor banda de memoria que se ha sacado al mercado. El
SXAurora TSUBASA esta diseñado para dos requerimientos importantes alta
usabilidad y sostenibilidad, para cumplir esto el SX-Aurora TSUBASA incorpora un
nuevo sistema de arquitectura y una nueva tecnología de integración de memoria.

Su estructura consiste en un motor de vectores equipados con procesador


vectorial y un vector host(VH) de un nodo estándar x86 de linux. A pesar de que
puede ser similar a la arquitectura de un acelerador convencional, su ejecución es
totalmente diferente.

1.2 Procesadores vectoriales

Se llama vector a una secuencia de datos escalares del mismo tipo almacenados
en memoria, normalmente en posiciones contiguas, aunque no siempre. Para
ilustrar este hecho, su- póngase una matriz bidimensional almacenada en
memoria por filas. En esta matriz, podríamos considerar vectores a las filas,
columnas o diagonales; en este caso, sólo las filas estarán en posiciones
contiguas de memoria.

Un procesador vectorial es un conjunto de recursos para efectuar operaciones


sobre vectores. Estas operaciones consistirán en funciones aritméticas y lógicas
aplicadas sobre las componentes de los vectores. La diferencia entre un
procesador vectorial y uno escalar estriba en que el procesador vectorial puede
decodificar instrucciones cuyos operandos son vectores completos. La conversión
de un programa correspondiente a un procesador escalar a otro vectorial se llama
vectorización.

Arquitectura de los procesadores vectoriales

Este tipo de máquina sería un procesador vectorial memoria-memoria que es


capaz de extraer dos vectores de memoria y operar sobre ellos. El inconveniente
de este tipo de máquina sería el cuello de botella que supondrían los accesos a
memoria. Por ello, sobre esta primera arquitectura pueden hacerse algunas
mejoras:

1. Aumentar el ancho de banda de la memoria: esto se consigue


entrelazando la memoria, de forma que la ésta tenga varios módulos y
se pueda acceder simultáneamente a varias posiciones consecutivas
que se hallen en módulos diferentes.
2. Añadir una memoria intermedia de mayor velocidad entre la memoria y
el procesador. Una forma de hacer esto, además de incorporar una
memoria caché, es añadir un banco de registros vectoriales.

Por todo esto, es habitual que los procesadores vectoriales dispongan de un


banco (o varios) de registros vectoriales que hagan de memoria intermedia; se
habla entonces de procesadores vectoriales registro-registro. Por otra parte, la
mayoría de los procesadores vectoriales actúan como coprocesadores de un
procesador escalar convencional que trata las instrucciones vectoriales.

Como puede verse, los computadores vectoriales pueden considerarse como


computadores del tipo SIMD de Flynn, sin embargo, hay que tener en cuenta que,
si bien los computadores vectoriales ejecutan la misma instrucción sobre datos
diferentes, estos datos forman parte del mismo flujo. Por ello, en algunos casos, a
estas máquinas se les llama SIMD-vectoriales.

Bajo estas arquitecturas, estudiaremos ahora algunos problemas que se plantean


en los computadores vectoriales:

En primer lugar plantearemos el problema de la longitud de los vectores; éste sólo


se plantea en los procesadores vectoriales de tipo registro-registro, ya que la
capacidad almacenamiento de los registros vectoriales es limitada. La longitud
”natural” de los vectores que se tratan en un procesador vectorial será la de sus
registros vectoriales; sin embargo, la longitud de los vectores declarados en los
programas rara vez coincidirá con ella, es más, en muchos casos la longitud de los
vectores sólo se conocerá en el momento de la ejecución (por ejemplo, cuando
uno de los límites de un bucle sea una variable).

Una solución a este problema es mantener un registro de longitud vectorial (VLR,


vec- tor length register) que contenga la longitud del vector que se procesa. En
principio, la longitud del vector debe ser inferior a la longitud de los registros
vectoriales (MV L, ma- ximum vector length). Si la longitud del vector fuera mayor
recurriremos a la técnica denominada seccionamiento (strip-mining) que consiste
en que el compilador divida la operación vectorial en lotes cuyo tamaño máximo
sea MV L.

1.3 Procesadores Matriciales

Según la clasificación de Flynn uno de los cuatro tipos de sistemas es el SIMD


(Single Instruction stream Multiple Data stream) Este tipo de sistemas explotan el
paralelismo inherente en los datos más que en las instrucciones. El computador de
tipo SIMD clásico es el computador matricial.
Organización básica

La configuración básica de un procesador matricial se trata de N elementos de


proceso (EP) sincronizados y bajo el control de una única unidad de control (UC).
Cada elemento de proceso está formado básicamente por una unidad aritmética
lógica, asociada a unos registros de trabajo, y una memoria local para el
almacenamiento de datos distribuidos. La unidad de control, que muchas veces es
un procesador escalar, tiene su propia memoria para almac enar el programa y
datos.

Las instrucciones escalares y de control como saltos, etc. se ejecutan


directamente en la unidad de control. Las instrucciones vectoriales son
transmitidas a los EPs para su ejecución. De esta manera se alcanza un alto
grado de paralelismo gracias a la multiplicidad de los elementos procesadores.

Este esquema que se acaba de comentar, es el modelo de computador matricial


con memoria distribuida. Otra posibilidad consiste en tener la memoria compartida
intercalando la red de interconexión entre los elementos de proceso y las
memorias.

Las diferencias con el modelo anterior son que las memorias ligadas a los EPs son
sustituidas por módulos en paralelo que son compartidos por todos los EPs
mediante la red de interconexión.

También se tocara el tema de

2. Ley de Amdahl

En arquitectura informática, la ley de Amdahl es una fórmula que proporciona la


aceleración teórica en latencia de la ejecución de una tarea con una carga de
trabajo fija que se puede esperar de un sistema cuyos recursos se mejoran.
Específicamente, establece que "la mejora general del rendimiento obtenida al
optimizar una sola parte de un sistema está limitada por la fracción de tiempo en
que se usa realmente la parte mejorada". Lleva el nombre del científico informático
Gene Amdahl y se presentó en la Conferencia Conjunta de Computación de
Primavera de AFIPS en 1967.

La ley de Amdahl se usa a menudo en computación paralela para predecir la


aceleración teórica cuando se usan múltiples procesadores. Por ejemplo, si un
programa necesita 20 horas para completarse con un solo subproceso, pero una
parte del programa de una hora no se puede paralelizar, por lo tanto, solo se
pueden paralelizar las 19 horas restantes (p = 0,95) de tiempo de ejecución,
entonces, independientemente de cuantos hilos se dedican a una ejecución
paralelizada de este programa, el tiempo mínimo de ejecución no puede ser
inferior a una hora.

Por lo tanto, la aceleración teórica se limita a un máximo de 20 veces el


rendimiento de un solo subproceso.

Muestra que la aceleración teórica de la ejecución de toda la tarea aumenta con la


mejora de los recursos del sistema y que independientemente de la magnitud de la
mejora, la aceleración teórica siempre está limitada por la parte de la tarea que no
puede beneficiarse de la mejora.

La ley de Amdahl se aplica solo a los casos en los que el tamaño del problema es
fijo. En la práctica, a medida que hay más recursos informáticos disponibles,
tienden a usarse en problemas más grandes (conjuntos de datos más grandes), y
el tiempo dedicado a la parte paralelizable a menudo crece mucho más rápido que
el trabajo inherentemente en serie. En este caso, la ley de Gustafson da una
evaluación menos pesimista y más realista del desempeño paralelo.

Una tarea ejecutada por un sistema cuyos recursos son mejorados en


comparación con un sistema similar inicial se puede dividir en dos partes:

Un ejemplo es un programa de computadora que procesa archivos. Una parte de


ese programa puede escanear el directorio del disco y crear una lista de archivos
internamente en la memoria. Después de eso, otra parte del programa pasa cada
archivo a un subproceso separado para su procesamiento. La parte que escanea
el directorio y crea la lista de archivos no se puede acelerar en una computadora
paralela, pero la parte que procesa los archivos sí.

También podría gustarte