El Procesamiento en Paralelo
El Procesamiento en Paralelo
El Procesamiento en Paralelo
Adems de las dependencias directas, puede existir un conflicto de recursos, esto es una
pugna entre varias instrucciones por escribir en una memoria (principal, registro o
cach), por usar el bus o la ALU. Para evitar esto, el diseador de procesadores hace
uso de la multiplicidad de recursos, esto es, en lugar de tener una ALU se fabrica el chip
con dos o ms de ser necesario.
Estos avances tecnolgicos, tienen tambin un lmite, ya que implican la fabricacin de
circuitos muy complejos que consumen niveles considerables de energa. Por lo cual se
implementan soluciones de software que aprovechan de manera ms eficiente el
paralelismo de instrucciones logrado en hardware, para llevarlo a un nivel superior, el
paralelismo de hilos (threads). La divisin de un proceso, programa o aplicativo en
numerosos hilos (segmentos de cdigo que ejecutan tareas simples) que pueden ser
ejecutados de manera independiente, es una aplicacin del concepto de dividir una tarea
compleja en tareas mas sencillas para lograr su ejecucin. Un hilo es un conjunto de
instrucciones a las cuales se les dedican recursos (procesador y memoria), para su
ejecucin gracias a la duplicidad de recursos muchos hilos pueden correrse en
simultnea con lo que la ejecucin de un programa puede hacerse de una manera ms
rpida y as los tiempos de ejecucin se reducen notablemente.
En resumen, la ejecucin en paralelo a nivel de instrucciones, consiste en partir de un
programa con una secuencia lineal, el cual se transforma en un flujo dinmico que luego
de evaluar dependencias y predecir saltos, permitir crear ventanas de ejecucin, en
donde las instrucciones decodificadas estarn listas para ejecutarse tan rpido como sus
operandos sean captados de la memoria o del usuario. Se ejecutan en forma
desordenada, con resultados que pueden replicarse en diferentes variables para asegurar
la consistencia de la informacin, finalmente lo resultados se almacenarn en forma
ordenada garantizando que el algoritmo sea ejecutado siendo fiel a su versin original.
Lo anterior se puede aplicar a un procesador que lee instrucciones y datos de una nica
memoria (SISD - Single Instruction Single Data) un ejemplo de esta arquitectura son los
monoprocesadores. No obstante, se ha propuesto una arquitectura que no slo duplique
los recursos, sino que implique mltiples procesadores accediendo a mltiples conjuntos
de datos (MIMD - Multiple Intructions Multiple Data), esta arquitectura es la
implementada en los dispositivos ms conocidos como multi-core.
Un ejemplo de esta ltima arquitectura son los SMP (Simetric Multiprocessing), esta
arquitectura consiste en el uso de mltiples procesadores, trabajando en forma
simultnea y comunicndose a travs de una memoria compartida, asegurando que el
tiempo de acceso a memoria para cada procesador es aproximadamente el mismo.
Los SMP generalmente se conforman de dos procesadores superescalares que tienen una
memoria cach de tipo L1 de 256 kBytes, otra de tipo L2 de 32 MBytes con la
posibilidad de expansin hasta 256 GBytes que a su vez se comunica a travs de un bus
directo con los perifricos. En el SMP por lo general, cada procesador tiene su propia
ALU.
Dentro de las ventajas que tiene el SMP, estn: mayor velocidad de ejecucin, puesto
que adems del paralelismo de instrucciones, tambin se pueden procesar programas
enteros en paralelo; disponibilidad, hay procesadores de contingencia que evitan que el
sistema deje de funcionar en caso de daarse uno de los procesadores. El sistema puede
mejorarse aadiendo ms procesadores, el usuario puede determinar cuantos
procesadores adquirir en funcin de la relacin costo beneficio y en dependencia de los
recursos econmicos con los que cuente.