Está en la página 1de 7

Modelos de

Máquinas
Paralelas

Algoritmos
Concurrentes y
Paralelos

1
1. Modelos de máquinas
paralelas
La rápida penetración de las computadoras en el comercio, la ciencia y la
educación se debió mucho a la estandarización temprana en una sola
máquina modelo, la computadora de von Neumann. La arquitectura de von
Neumann fue nombrada así por el matemático húngaro John von Neumann,
quien fue el primero en escribir los requisitos generales para una
computadora electrónica en sus documentos de 1945.

Figura 1: John von Neumann

Fuente: LANL, 2008, https://goo.gl/GURbS2

Una computadora de von Neumann también es conocida como


computadora de programa almacenado, porque tanto las instrucciones del
programa como los datos se guardan en la memoria electrónica. Esta
computadora comprende una unidad central de procesamiento (CPU)
conectada a una unidad de almacenamiento (memoria). La CPU ejecuta un
programa almacenado que especifica una secuencia de operaciones de
lectura y escritura en la memoria. Este modelo simple ha demostrado ser
muy robusto. Su persistencia durante más de cuarenta años ha permitido
que el estudio de temas tan importantes como los algoritmos y los lenguajes
de programación procedan en gran medida independientemente de los
desarrollos en la arquitectura de computadoras. En consecuencia, los
programadores pueden capacitarse en el arte abstracto de la programación
en lugar de hacerlo en del diseño de la máquina de programación X. De este
modo, pueden diseñar algoritmos para una máquina abstracta de von
Neumann, confiados en que estos algoritmos se ejecutarán en la mayoría de
las computadoras objetivo.

2
Figura 2: Diseño de la computadora de von Neumann

Fuente: elaboración propia.

Como podemos ver en la Figura 2, la computadora de Von Neumann consta


de cuatro componentes principales:

 memoria;
 unidad de control;
 unidad de lógica aritmética;
 componente de entrada y salida.

La memoria de acceso aleatorio de lectura y escritura se utiliza para


almacenar tanto las instrucciones del programa como los datos:

 las instrucciones del programa son datos codificados que le dicen a


la computadora que haga algo;
 los datos son simplemente información para ser utilizada por el
programa.

La unidad de control obtiene instrucciones y datos de la memoria,


decodifica dichas instrucciones y luego coordina las operaciones de forma
secuencial para realizar la tarea programada.

La unidad aritmética realiza operaciones aritméticas básicas. El


componente de entrada y salida es la interfaz para el operador humano.

3
Las computadoras paralelas aún siguen este diseño básico, solo se
multiplican en unidades. La arquitectura básica fundamental sigue siendo la
misma.

El desafío es identificar un modelo de máquina paralelo que sea tan general


y útil como el modelo de máquina secuencial de von Neumann. Este modelo
de máquina debe ser simple y realista: simple para facilitar la comprensión
y la programación y realista para garantizar que los programas desarrollados
para el modelo se ejecuten con una eficiencia razonable en computadoras
reales.

1.1. El Multicomputador
Un modelo de máquina paralelo, llamado el multicomputador, se ajusta a
estos requisitos como se ilustra en la Figura 3. El multicomputador
comprende varias computadoras, o nodos de von Neumann, conectadas por
una red de interconexión. Cada computadora ejecuta su propio programa.
Este programa puede acceder a la memoria local y puede enviar y recibir
mensajes a través de la red. Los mensajes se utilizan para comunicarse con
otras computadoras o, de manera equivalente, para leer y escribir memorias
remotas. En la red idealizada, el costo de enviar un mensaje entre dos nodos
es independiente de la ubicación del nodo y del tráfico de otra red, pero
depende de la longitud del mensaje.

Figura 3: El multicomputador

Fuente: elaboración propia.

Una de las características más importantes del modelo multicomputador es


que los accesos a la memoria local, en el mismo nodo, son menos costosos
que los accesos a la memoria remota, en un nodo diferente, es decir, leer y
escribir son menos costosos que enviar y recibir. Es deseable, por lo tanto,
que los accesos a datos locales sean más frecuentes que los accesos a datos
remotos. Esta propiedad, llamada localidad, es un requisito fundamental
para el software paralelo, además de la concurrencia y la escalabilidad. La
importancia de la localidad depende de la proporción de costos del acceso

4
remoto al local. Esta relación puede variar de 10: 1 a 1000: 1 o más, según el
rendimiento relativo de la computadora local, la red y los mecanismos
utilizados para mover datos hacia y desde la red.

1.2. Otros modelos de máquinas


En la Figura 4 se ilustran las arquitecturas de computadoras paralelas más
importantes. Revisaremos brevemente en qué se diferencian del modelo
multicomputador idealizado.

Figura 4: Clases de arquitectura computacional paralela

Fuente: elaboración propia.

El multicomputador es más parecido a lo que a menudo se denomina


computadora MIMD (datos múltiples de instrucciones múltiples) de
memoria distribuida. MIMD significa que cada procesador puede ejecutar
una secuencia separada de instrucciones en sus propios datos locales. Por
su parte, memoria distribuida significa que la memoria se distribuye entre
los procesadores, en lugar de ubicarse en una ubicación central. La principal
diferencia entre un equipo MIMD de varios ordenadores y la memoria
distribuida es que, en esta última, el costo de enviar un mensaje entre dos
nodos puede no ser independiente de la ubicación del nodo y de otra red.
Algunos ejemplos de esta clase de máquina incluyen IBM SP, Intel Paragon,
Thinking Machines CM5, Cray T3D, Meiko CS-2 y nCUBE.

Otra clase importante de computadora paralela es el multiprocesador o


computadora MIMD de memoria compartida. En multiprocesadores, todos
los procesadores comparten el acceso a una memoria común, generalmente
a través de un bus o una jerarquía de buses. En el modelo idealizado de la
máquina de acceso aleatorio paralelo (PRAM), a menudo utilizado en

5
estudios teóricos de algoritmos paralelos, cualquier procesador puede
acceder a cualquier elemento de memoria en el mismo período de tiempo.
En la práctica, escalar esta arquitectura generalmente introduce alguna
forma de jerarquía de memoria; en particular, la frecuencia con la que se
accede a la memoria compartida puede reducirse almacenando copias de
elementos de datos de uso frecuente en un caché asociado con cada
procesador. El acceso a este caché es mucho más rápido que el acceso a la
memoria compartida; por lo tanto, la localidad suele ser importante y las
diferencias entre los multicomputadores y los multiprocesadores son, en
realidad, cuestiones de grado. Los programas desarrollados para equipos
múltiples también pueden ejecutarse de manera eficiente en
multiprocesadores, ya que la memoria compartida permite una
implementación eficiente del paso de mensajes. Ejemplos de esta clase de
máquina incluyen el Silicon Graphics Challenge, Sequent Symmetry y las
muchas estaciones de trabajo multiprocesador.

Una clase más especializada de computadora paralela es la computadora


SIMD (single instruction, multiple data, es decir, una instrucción, múltiples
datos). En las máquinas SIMD, todos los procesadores ejecutan el mismo
flujo de instrucciones en un dato diferente. Este enfoque puede reducir la
complejidad tanto del hardware como del software, pero es apropiado solo
para problemas especializados caracterizados por un alto grado de
regularidad, como por ejemplo, el procesamiento de imágenes y ciertas
simulaciones numéricas. En general, los algoritmos multicomputadores no
se pueden ejecutar de manera eficiente en computadoras SIMD. El MasPar
MP es un ejemplo de esta clase de máquina.

Existen dos clases de sistemas informáticos que a veces se utilizan como


computadoras paralelas de red de área local (LAN), a través de las cuales las
computadoras en proximidad física cercana (por ejemplo, el mismo edificio)
están conectadas por una red rápida y por medio de una red de área amplia
(WAN), en las cuales dichas computadoras están distribuidas
geográficamente. Aunque los sistemas de este tipo introducen
preocupaciones adicionales, tales como la confiabilidad y la seguridad,
pueden verse para muchos propósitos como multicomputadores, aunque
con alto costos de acceso remoto. La tecnología que se suele usar es
Ethernet y el modo de transferencia es asíncrono (ATM).

6
Referencias
LANL. (2008). [Imagen sin título sobre John von Newmann]. Recuperada de
https://commons.wikimedia.org/wiki/File:JohnvonNeumann-LosAlamos.gif

También podría gustarte