Arquitectura de Computadores: Paralelismo

Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 8,38 KB

Paralelismo: o procesamiento paralelo es una forma eficaz de explotar los sucesos concurrentes en el proceso de computación.
Sucesos paralelos: pueden darse en dif. recursos durante el mismo intervalo de tiempo.
Sucesos simultaneos: aquellos que se producen en el mismo instante de tiempo.
Sucesos solapados: los que se producen en intervalos de tiempo superpuestos
Granularidad: tamaño de tarea computable
Planificación: asignación de recursos a las tareas
Comunicación: sincronización de tareas dependientes.

Paralelismo de grano grueso: programa o trabajo y modulo proceso (menos paralelismo)
Paralelismo de grano medio: modulo proceso y task
Paralelismo de grano fino: bucle e Instruccion sentencia (más paralelismo)

Paralelismo a nivel de procesador: segmentación, división funcional, procesadores vectoriales
Paralelismo en multiprocesadores: memoria compartida, memoria distribuida
Paralelismo em multicomputadores: clusters, sistemas distribuidos

Clasificacion de sistemas paralelos:
-Flujo de control: las instrucciones se van ejecutando segun el orden en el que se encuentran en memoria
-Flujo de datos: el flujo de ejecucion 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 instruccion será ejecutada cuando otra necesite sus resultados. Son una clase de las de flujo de datos.
SISD: arquitectura de simple construcción sobre simple dato. Serie en datos e instrucciones, arquitectura von neumann
SIMD; un solo flujo de instrucciones y multiples en datos. Computadores matriciales. Una unidad de control que gobierna varias unidades aritmetico-logicas.
MISD: varios flujos de instrucciones y uno solo de datos. Arquitecura no implementada, consecuencia teórica de la clasificación. Superestructura pipeline, varios conjuntos de unidad de control más unidad aritmético logica realizan partes de una operacion sobre un flujo de datos.
MIMD; arquitecura 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..
Tipos de paralelismo:
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 codigo secuencial. Ej: segmentacióin(pipeline) de funciones, division func.(proc. vectoriales)
Externo o explícito: se usan dialectos paralelos de programación. Queda visible al usuario. Mejor aprovechamiento a las posibilidades de la maquina, más trabajo para el programador, SIMD(computadores matriciales), MISD, MIMD.
Paralelismo segun SW:
Depende del entorno de programación en dos facetas: herramientas de programación, S.O
MPMD(multiple 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 multiples procesadores y se ejecuta sobre conjuntos de datos distintos

Segmentación: encauzamiento o pipeline es una técnica para explotar concurrencia en sistemas monoprocesador.
Consiste en dividir una funcion en subfunciones independientes que pueden realizarse de manera concurrente(solapados)
En un instante de tiempo determinado se esta trabajando a la vez sobre un numero de elementos igual al numero de etapas.
Es una estructura segmentada si cada unidad independiente procesa una subfuncion en un periodo T/n, en el tiempo T se habrán podido procesar n funciones
La segmentación se puede aplicar a cualquier op compleja concretamente en la unidad de control y en la ALU
cauce de procesamiento: cuantas subfuciones o elementos de procesamiento se están procesando a la vez.
Condiciones que permiten segmentar una función: debe admitir su descomposicion en etapas. Es necesario que las entradas de una etapa estén determinadas unicamente por la salida de la anterior. Cada etapa debe poder ser realizada por un circuito específico de forma más rápida que el conjunto de proceso.
Los tiempos de ejecución de cada etapa deben ser parecidos.
Tipos de cauce;
-Operadores aritméticos segmentados: ejecutan una o varias op. de la ALU y pueden ser lineales o no lineales (cíclicos: procesamiento iterativos)
Cauces para el flujo de instrucciones: Son lineales y algunas de sus fases puede subsegmentarse. Caso común; ejecución



Procesadores vectoriales: maquinas segmentadas con unidades de ejecución vectoriales(especialmente diseñadas para optimizar las operaciones con estructuras vectoriales)
-Vector: conjunto de escalares del mismo tipo almacenados en memoria
-Procesamiento vectorial: aplicaciones de procesos sobre vectores
-Op. vectoriales: repetición de la misma op. sobre un conjunto de datos. Se especifican mediante:
Cod. op. que selecciona la unidad funcional o reconfigura el cauce dinámico para la op. seleccionada
Direccion base de los op. fuente y destino o los registros vectoriales implicados en la operación.
Incrementos de dirección entre elementos
Longitud de los vectores con los que se va a operar
2 maneras de generar código vectorial:
Paralelismo explícito: pocos lenguajes. Sin norma
Paralelismo implícito: uso de compiladores capaces de vectorizar; la programación se realiza en un lenguaje de programación secuencial y es el compilador el que se encarga de generar código paralelo para aquellas partes del programa que pueden ser vectorizadas.
Reg vec-->| CAUCE |-->Reg vec.Reg Escalar -->| CAUCE |-->Reg vec.
Reg vec-->|X |Reg Vectorial-->| X |
Arquit. básica: registros vectoriales, registros escalares, unidades de ejecución(ops)
registros vectoriales: contienen los ops. vectoriales en maq. de registros. No existen si es una maquina M-M. Al menos 2 puertos R/W
unidades funcionales vectoriales: ejecutan ops vectoriales, están segmentadas y suelen tener latencia 1, una unidad de control vigila las dependencias
unidad de carga y almacenamiento: gestiona transferencias de vectores desde/a memoria, puede estar segmentada y también puede ocuparse de los datos escalares
registros escalares; contienen datos escalares, se usan en ops vectoriales y para calcular direcciones, se necesitan varios puertos de R/W
unidades funcionales escalares: pueden existir para ops específicamente escalares, pueden no existir si para ops escalares se usan las unidades vectoriales.
Ventajas:
-proporcionan gran aprovechamiento del paralelismo(de datos) con control sencillo
-una única instrucción especifica una gran cantidad de trabajo, reduciendo la necesidad de ancho de banda de instrucciones.
-optimizan el uso de la memoria con accesos predecibles que se pueden solapar

Procesadores superescalares: Incrementar el numero de ops. simultáneas por ciclo.
Cauce a mayor frecuencia (más etapas)
-Lanzamiento de multiples instrucciones por ciclo (respetando las dependencias).
-Instrucciones más grandes.
CPI < 1
grado superescalar: num. de instrucciones que se pueden lanzar se denomina grado superescalar
profundidad de cauce: numero de etapas.

Sistemas multiprocesadores.
Contiene dos o más unidades de procesamiento que comparten acceso a módulos comunes de memoria de E/S y otros dispositivos periféricos.
-Estrechamente acoplados. Los procesadores se comunican entre sí a través de una MP compartida.
-Ligeramente acoplados. Cada procesador posee un conjunto de sistemas de E/S y una gran memoria local propia. Los procesadores se comunican por medio de del paso de mensajes.
-Maestro esclavo
Sistemas multicomputador. Conjunto de computadores independientes(Con sus propios recursos que se comunican entre sí a traves del paso del mensajes a través de la red de interconexion.


Entradas relacionadas: