Está en la página 1de 7

4.

1 Aspectos básicos de la
computación paralela
La computación paralela es una forma de cómputo en la
que muchas instrucciones se ejecutan simultáneamente
operando sobre el principio de que problemas grandes se
pueden dividir en unos más pequeños que luego son
resueltos simultáneamente (en paralelo).

Las computadoras paralelas pueden clasificarse según el


nivel de paralelismo que admite el hardware: en equipos
con procesadores multinúcleo y multiprocesadores, que
tienen múltiples elementos de procesamiento dentro de
una sola máquina y los clústers que utilizan varios equipos
para trabajar en la misma tarea. Para acelerar las tareas
específicas se utilizan arquitecturas especializadas de
computación en paralelo junto a procesadores
tradicionales.

La comunicación y sincronización entre diferentes


subtareas son algunos de los mayores obstaculos para
obtener un buen rendimiento del programa paralelo.

La máxima aceleración posible de un programa como


resultado de la paralelización se conoce como ley de
Amdahl.
4.2 Tipos de Computación
Paralela
Paralelismo a nivel de bit
Con los avances computacionales el tamaño de la palabra
de una computadora ha ido aumentando con el tiempo
llegando incluso a duplicarlo, en esto se basa el
paralelismos a nivel de bit. Una palabra es la cantidad de
información que un procesador puede manejar por ciclo. El
aumento de la palabra reduce el número de instrucciones
que el procesador debe ejecutar para realizar una
operación de variables cuyos tamaños son mayores que la
longitud de la palabra.

Por ejemplo, cuando un procesador de 8 bits debe sumar


dos enteros de 16 bits, el procesador primero debe sumar
los 8 bits de orden inferior de cada numero entero con la
instrucción de adición, enseguida añadir los 8 bits
superiores utilizando la instrucción de adición con acarreo
que tiene en cuenta el bit de acarreo de orden inferior, en
este caso un procesador de 8 bits requiere dos
instrucciones para completar una sola operación, en donde
un procesador de 16 bits necesita una sola instrucción para
poder completarla.
4.2 Tipos de Computación
Paralela
Paralelismo a nivel de instrucción
Un programa de computadora es, en esencia una secuencia
de instrucciones ejecutadas por una computadora. Éstas
instrucciones pueden reordenarse y combinarse en grupos
que luego son ejecutadas en paralelo sin cambiar el
resultado del programa. Esto se conoce como paralelismo
a nivel de instrucción.

Los procesadores modernos tienen un pipeline de


instrucciones de varias etapas. Cada etapa en el pipeline
corresponde a una acción diferente que el procesador
realiza en la instrucción correspondiente a la etapa; un
procesado con un pipeline de N etapas puede tener hasta N
instrucciones diferentes en diferentes etapas de
finalización.

Además de paralelismo a nivel de instrucción del pipelining,


algunos procesadores pueden ejecutar más de una
instrucción a la vez. Estos son conocidos como
procesadores superescalares. Las instrucciones pueden
agruparse juntas sólo si no hay dependencia de datos entre
ellas. El scoreboarding y el algorimo Tamasulo hace uso del
renombre de registros, son dos de las técnicas más
comunes para implementar la ejecución fuera de orden y la
paralelización a nivel de instrucción.
4.2.1 Taxonomía de las
arquitecturas paralelas
La clasificación de Flynn ha demostrado funcionar
bastante bien para la tipificación de sistemas, y se ha
usado desde décadas por la mayoría de arquitectos de
computadoras. Sin embargo, los avances en tecnología y
diferentes topologías, han llevado a sistemas que no son
tan fáciles de clasificar dentro de los 4 tipos de Flynn. Por
ejemplo, los procesadores vectoriales no encajan en esta
clasificación, ni tampoco las arquitecturas hibridas. Para
solucionar esto se han propuesto otras clasificaciones.
4.2.2 Arquitecturas de las
computadoras secuenciales
A diferencia de los sistemas combinacionales, en los
sistemas secuenciales, los valores de las salidas, en un
momento dado no dependen exclusivamente de los valores
de las entradas en dicho momento, sino también de los
valores anteriores.

El sistema secuencial más simple es el biestable.

La mayoría de los sistemas secuenciales están gobernados


por señales de reloj. A éstos se les denomina como
“sincronos” o “sincrónicos”, a diferencia de los “asíncronos”
o “asincónicos” que son aquellos que no son controlados
por señales de reloj.

Los principales sistemas secuenciales que pueden


encontrarse en forma de circuito integrado o como
estructuras en sistemas programados son:

Contador

Registros
4.2.2.1 Taxonomía de Flynn

La taxonomía de Flynn clasifica las arquitecturas de las


computadoras según la presencia de únicos o múltiples
flujos de datos e instrucciones.
Las 4 categorías de esta clasificación son:

SISD: Define las computadoras seriales.

MISD: Implica que muchos procesadores aplican
diferentes instrucciones al mismo dato, esta
posibilidad hipotética se considera generalmente
impracticable.

SIMD: Implica que múltiples procesadores ejecutan
simultáneamente la misma instrucción sobre
diferentes datos.

MIMD: Implica que múltiples procesadores ejecutan
autónomamente diversas instrucciones sobre diversos
datos.

Si bien estas distinciones proveen elementos útiles para


caracterizar arquitecturas, no bastan para clasificar varias
de las computadoras modernas.
Por ejemplo los procesadores vectoriales pipelinizados
merecen ser incluidos como arquitecturas paralelas, ya que
muestran una concurrencia substancial en la ejecución
aritmética y pueden manejar cientos de elementos de
vectores de forma paralela, no obstante no se ajustan a los
parámetros de clasificación de Flynn.
4.2.2.2 Organización de Espacio
De Direcciones de Memoria
Organización Lógica
Los programas a menudo están organizados en módulos,
algunos de los cuales pueden ser compartidos por
diferentes programas, algunos son de sólo lectura y otros
contienen datos que se pueden modificar. La gestión de
memoria es responsable de manejar esta organización
lógica, que se contrapone al espacio de direcciones físicas
lineales. Una forma de lograrlo es mediante la
segmentación de memoria.

Organización Física
La memoria suele dividirse en un almacenamiento primario
de alta velocidad y uno secundario de menor velocidad. La
gestión de memoria del sistema operativo se ocupa de
trasladar información entre estos dos niveles de memoria.

También podría gustarte