Paralelismo _Arquitectura de Computadoras IS603
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.
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
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.
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
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.
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.
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.
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