9
Paralelismo _Arquitectura de Computadoras IS603

Paralelismo Arquitectura de Computadoras IS603 filee instrucciones, arquitectura von Neumann SIMD: un solo flujo de instrucciones y múltiples en datos. Computadores matriciales. Una

  • Upload
    tranbao

  • View
    228

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Paralelismo Arquitectura de Computadoras IS603 filee instrucciones, arquitectura von Neumann SIMD: un solo flujo de instrucciones y múltiples en datos. Computadores matriciales. Una

Paralelismo _Arquitectura de Computadoras IS603

Page 2: Paralelismo Arquitectura de Computadoras IS603 filee instrucciones, arquitectura von Neumann SIMD: un solo flujo de instrucciones y múltiples en datos. Computadores matriciales. Una

Paralelismo _Arquitectura de Computadoras IS603

INTRODUCCION

El objetivo de esta investigación, es conceptualizar las diferentes tipos de

paralelismo referente al área de Arquitectura de Computadoras, ya que

al adentrarnos al concepto Paralelismo o Procesamiento Paralelo es una

forma poderosa de explotar los eventos concurrentes en el proceso de

computación siendo así los sucesos paralelos los que pueden darse en

diferentes recursos durante el mismo intervalo de tiempo.

La tecnología de fabricación de chips de computadora e integración a

gran escala aumentan la velocidad según trasciende en el tiempo y en

la arquitectura de computadores fue impulsado por doble palabra

computadora del tamaño (Ley de Moore), la cantidad de información

que el procesador puede manipular por ciclo. El aumento del tamaño de

la palabra se reduce el número de instrucciones del procesador debe

ejecutar para llevar a cabo una operación en variables cuyos tamaños

son mayores que la longitud de la palabra. Históricamente, los

microprocesadores de 4 bits fueron reemplazados con 8 bits, a

continuación, 16 bits, a continuación, microprocesadores de 32 bits. Esta

tendencia general, llegó a su fin con la introducción de los procesadores

de 32 bits, lo que ha sido un estándar en la informática de uso general

durante dos décadas. No hasta hace poco, con el advenimiento de las

arquitecturas x86-64, han procesadores de 64 bits convertido en algo

común.

Page 3: Paralelismo Arquitectura de Computadoras IS603 filee instrucciones, arquitectura von Neumann SIMD: un solo flujo de instrucciones y múltiples en datos. Computadores matriciales. Una

Paralelismo _Arquitectura de Computadoras IS603

El Paralelismo en la informática, es una función que realiza el procesador para ejecutar varias tareas al mismo tiempo. Es decir, puede realizar varios cálculos simultáneamente, basado en el principio de dividir los problemas grandes para obtener varios problemas pequeños, que son posteriormente solucionados en paralelo.

1. Particionamiento de datos. En este caso, cada nodo procesa un número determinado de datos (por ejemplo, 1000 filas). La posibilidad y tipo concreto de partición va en función del tipo de base de datos a la cual estoy accediendo. En el caso de un warehouse, todo suele estar particionado, pues en los discos encontramos trozos de tablas con datos.

2. Pipelining. Este tipo de paralelismo posibilita, una vez se han dividido los datos, tener también particionadas las operaciones que se se van realizando con ellos, como por ejemplo añadir un campo “Y” a cada fila. Dicho de otro modo, permite hacer modificaciones a nivel estructural.

3. Componentes. Se definen componentes que asignan una referencia a un campo, por ejemplo una letra, y se reutilizan cada vez que se tenga que volver a cambiar ese mismo campo en el resto de filas. Es decir, este tipo de proceso de paralelismo permite crear una lógica y reutilizarla.

4. Sucesos simultáneos: aquellos que se producen en el mismo instante de tiempo.

Algunos Tipos de Paralelismo

Page 4: Paralelismo Arquitectura de Computadoras IS603 filee instrucciones, arquitectura von Neumann SIMD: un solo flujo de instrucciones y múltiples en datos. Computadores matriciales. Una

Paralelismo _Arquitectura de Computadoras IS603

5. Sucesos solapados: los que se producen en intervalos de tiempo superpuestos

6. Granularidad: tamaño de tarea computable. 7. Planificación: asignación de recursos a las tareas 8. Comunicación: sincronización de tareas dependientes. 9. Paralelismo de grano grueso: programa o trabajo y modulo proceso

(menos paralelismo) 10. Paralelismo de grano medio: modulo proceso y task 11. Paralelismo de grano fino: bucle e Instrucción sentencia (más

paralelismo) 12. Paralelismo a nivel de procesador: segmentación, división funcional,

procesadores vectoriales 13. Paralelismo en multiprocesadores: memoria compartida, memoria

distribuida 14. Paralelismo en multicomputadores: clusters, sistemas distribuidos

CLASIFICACIÓN DE SISTEMAS PARALELOS:

-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 operandos 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.

Page 5: Paralelismo Arquitectura de Computadoras IS603 filee instrucciones, arquitectura von Neumann SIMD: un solo flujo de instrucciones y múltiples en datos. Computadores matriciales. Una

Paralelismo _Arquitectura de Computadoras IS603

SISD: arquitectura de simple construcción sobre simple dato. Serie en datos e instrucciones, arquitectura von Neumann

SIMD: un solo flujo de instrucciones y múltiples en datos. Computadores matriciales. Una unidad de control que gobierna varias unidades aritmetico-logicas.

MISD: varios flujos de instrucciones y uno solo de datos. Arquitectura no implementada, consecuencia teórica de la clasificación. Superestructura pipeline, varios conjuntos de unidad de control más unidad aritmético lógica realizan partes de una operación sobre un flujo de datos.

MIMD: arquitectura multiprocesador con varios flujos tanto de instrucciones como de datos. Varios procesadores serie convencionales que manejan cada uno un flujo de instrucciones sobre un flujo de datos.

Interno o implícito: Se programa en lenguaje secuencial y el compilador se encarga de paralelizar y asignar recursos. Queda oculta la arqui del comput, aumentando su velocidad sin modificar su funcionamiento. Bajo aprovechamiento, aprovecha código secuencial.

Externo o explícito: Se usan dialectos paralelos de programación. Queda visible al usuario. Mejor aprovechamiento a las posibilidades de la máquina, más trabajo para el programador, SIMD (computadores matriciales), MISD, MIMD.

Paralelismo según SW: Depende del entorno de programación en dos facetas: herramientas de programación, S.O MPMD (múltiple program-multiple data): cada procesador ejecuta programas distintos. Esta estructura suele ser del tipo maestro esclavo en la que un procesador coordina el trabajo al resto SPMD (single program-multiple data): el mismo programa es cargado en múltiples procesadores y se ejecuta sobre conjuntos de datos distintos

Paralelismo a nivel de instrucción: Un programa de ordenador es, en esencia, una corriente de instrucciones ejecutadas por un procesador. Estas instrucciones pueden ser reordenadas y se combinan en grupos que luego se ejecutan en paralelo sin cambiar el resultado del programa. Esto se conoce como paralelismo a nivel de instrucción. Los avances en el paralelismo a nivel de instrucción dominaron la

Page 6: Paralelismo Arquitectura de Computadoras IS603 filee instrucciones, arquitectura von Neumann SIMD: un solo flujo de instrucciones y múltiples en datos. Computadores matriciales. Una

Paralelismo _Arquitectura de Computadoras IS603 arquitectura de computadores desde mediados de 1980 hasta mediados de la década de 1990.

Los procesadores modernos tienen tuberías de instrucciones de múltiples etapas. Cada etapa en la tubería corresponde a una acción diferente que el procesador lleva a cabo en el que la instrucción en esa etapa; un procesador con una tubería N-etapa puede tener hasta N diferentes instrucciones en diferentes fases de ejecución. El ejemplo canónico de un procesador segmentado es un procesador RISC, con cinco etapas: extracción de instrucción, decodificar, ejecutar, acceso a la memoria, y escribir de nuevo. El procesador Pentium 4 con una cartera de 35 etapas.

Además de paralelismo a nivel de instrucción de la canalización, algunos procesadores pueden emitir más de una instrucción a la vez. Estos son conocidos como procesadores superescalares. Las instrucciones pueden ser agrupadas juntos sólo si no hay dependencia de datos entre ellos. Scoreboarding y el algoritmo son dos de las técnicas más comunes para la aplicación de ejecución de órdenes y el paralelismo a nivel de instrucción.

Paralelismo de tareas: Paralelismo de tareas es la característica de un programa paralelo que “completamente diferentes cálculos se pueden realizar en cualquiera de los mismos o diferentes conjuntos de datos”. Esto contrasta con paralelismo de datos, donde el mismo cálculo se lleva a cabo en los mismos o diferentes conjuntos de datos. Paralelismo de tareas por lo general no escala con el tamaño de un problema.

Page 7: Paralelismo Arquitectura de Computadoras IS603 filee instrucciones, arquitectura von Neumann SIMD: un solo flujo de instrucciones y múltiples en datos. Computadores matriciales. Una

Paralelismo _Arquitectura de Computadoras IS603

GENERALIDADES DE LAS VENTAJAS Y DESVENTAJAS

Desventajas

– 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 blindar estas utilidades comúnmente proporciona inconvenientes de costos, seguridad y

disponibilidad.

Ventajas

– Blinda a las empresas, instituciones y usuarios en general el beneficio de la velocidad.

– Ventaja competitiva, provee una mejora de los tiempos para producción de nuevos productos y servicios. Las variaciones entre los paradigmas están

motivados por varios factores.

Page 8: Paralelismo Arquitectura de Computadoras IS603 filee instrucciones, arquitectura von Neumann SIMD: un solo flujo de instrucciones y múltiples en datos. Computadores matriciales. Una

Paralelismo _Arquitectura de Computadoras IS603

CONCLUCIONES

Distintas aplicaciones tienen diferentes tipos de paralelismo y por tanto se han desarrollado diferentes lenguajes de programación para explotarlos.

Diferencia de esfuerzo invertido en escribir programas paralelos. Algunos lenguajes requieren menos esfuerzo para el programador, mientras

que otros requieren menos trabajo pero generan un código menos eficiente.

Un determinado paradigma de programación puede ser más eficiente que otros al programar sobre determinadas arquitecturas paralelas.

Page 9: Paralelismo Arquitectura de Computadoras IS603 filee instrucciones, arquitectura von Neumann SIMD: un solo flujo de instrucciones y múltiples en datos. Computadores matriciales. Una

Paralelismo _Arquitectura de Computadoras IS603

Referencias Bibliográficas

https://cseweb.ucsd.edu/classes/wi13/cse141-b/slides/10-Multithreading.pdf

https://www.fing.edu.uy/cluster/grupo/Multithreading-Clase1.pdf

http://www.monografias.com/trabajos106/tipos-paralelismo/tipos-paralelismo.shtml