PARALELISMO
El paralelismo en la informática es
una función que realiza el procesador para ejecutar varias tareas al mismo
tiempo o de forma simultánea, basado en el principio de dividir los problemas
grandes para obtener varios problemas pequeños, que son posteriormente
solucionados en paralelo.
El paralelismo se ha utilizado
para muchas temáticas diferentes, desde bioinformática para hacer el
plegamiento de proteínas, hasta economía para hacer simulaciones en matemática
financiera.
¿Dónde se aplica el procesamiento en paralelo?
Las aplicaciones que se
benefician de una aceleración más significativa son aquellas que describen
procesos intrínsecamente paralelos, las simulaciones de modelos moleculares,
climáticos o económicos tienen toda una amplia componente paralela, como los
sistemas que representan. El hardware de la máquina entra en juego ya que es
preciso maximizar la relación entre el tiempo de cálculo útil y el perdido en
el paso de mensajes, parámetros que dependen de la capacidad de proceso de las CPU
y de la velocidad de la red de comunicaciones.
Tipos de paralelismo.
- Nivel de bits: Es cuando se aumenta la el tamaño de la palabra en la computadora, hacer esto reduce el número de instrucciones que son necesarias para ejecutar un instrucción en la cual sus operando son más grandes que su tamaño de palabra.
- Nivel de instrucción: Es cuando un grupo de instrucciones que compone un programa son ejecutadas paralelamente sin cambiar el resultado final del programa.
- Nivel de datos o nivel de proceso: Es cuando se distribuye los datos a través de diferentes nodos de cómputo para que los procesen en paralelo y las tareas que realizan son comunes y el resultado es uno solo.
- Nivel de tareas: Cuando cálculos totalmente diferentes se realizan en los mismos o diferentes datos.
Desventajas de la computación en paralelo.
- Requiere de un gran número de ciclos de procesamiento o acceso a una gran cantidad de datos.
- Encontrar un hardware y un software que permita brindar estas utilidades comúnmente proporciona inconvenientes de costos, seguridad y disponibilidad.
Ventajas de la computación en paralelo.
- Brinda a las empresa, instituciones y usuarios en general el beneficio de la velocidad.
- Ventaja competitiva, provee una mejora de los tiempos para la producción de nuevos productos y servicios.
- Colaboración y flexibilidad operacional.
Clasificación de los sistemas paralelos en los sistemas informáticos.
SISD. Se refiere a las computadoras convencionales de Von Neumann.
Ejemplo: PC’s.
En la categoría SISD están la
gran mayoría de las computadoras existentes. Son equipos con un solo procesador
que trabaja sobre un solo dato a la vez. A estos equipos se les llama también
computadoras secuenciales.
SIMD. Arreglo de procesadores. Cada procesador sigue el mismo
conjunto de instrucciones; diferentes elementos de información son asignados a
cada procesador. Utilizan memoria distribuida. Típicamente tienen miles
procesadores simples. Son utilizadas en redes neuronales.
Las computadoras SIMD tienen una
sola unidad de control y múltiples unidades funcionales. La unidad de control
se encarga de enviar la misma instrucción a todas las unidades funcionales.
Cada unidad funcional trabaja sobre datos diferentes. Estos equipos son de
propósito específico, es decir, son apropiados para ciertas aplicaciones
particulares, como por ejemplo el procesamiento de imágenes.
MISD. Es un tipo de arquitectura de computación paralela donde
muchas unidades funcionales realizan diferentes operaciones en los mismos
datos.
MIMD. Múltiples computadoras y multiprocesadores. Las piezas de
código distribuidas entre los procesadores. Los procesadores pueden ejecutar la
misma o instrucción o diferentes instrucciones. Se puede decir que MIMD es un súper
conjunto de SIMD.
Diferentes elementos de información
se asignan a diferentes procesadores. Pueden tener memoria distribuida o
compartida.
Cada procesador MIMD corre casi
independientemente de los otros.
Flujo de control: Las instrucciones se van ejecutando según el
orden en el que se encuentran en memoria
Flujo de Datos. : El flujo de ejecución es conducido por los datos;
una instrucción será ejecutada cuando los operadnos estén disponibles.
Reducción. La ejecución se realiza por demanda: una instrucción
será ejecutada cuando otra necesite sus resultados. Son una clase de las de
flujo de datos.
No hay comentarios:
Publicar un comentario