jueves, 11 de octubre de 2012


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