Programación Paralela
Programación Paralela
Programación Paralela
Introducción.
Gracias a las progresivas mejoras tecnológicas desarrolladas durante las décadas
pasadas, la capacidad de procesamiento de los ordenadores ha aumentado cada
vez más. De todas formas, estas mejoras tecnológicas -integación VLSI, aumento
de la frecuencia de reloj en los procesadores, etc. tienen un límite físico, por lo
cual el aumento de capacidad de procesamiento no es ilimitado. Hay una serie de
problemas que no se pueden resolver con este tipo de ordenadores: la circulación
atmosférica y el tiempo, la evolución de las galaxias, problemas de sistemas
expertos e inteligencia artificial, etc. Para la resolución de estos problemas se está
investigando intensamente desde hace dos décadas en el procesamiento paralelo.
Hoy en día ya tenemos ordenadores comerciales que trabajan en paralelo, y esta
parece ser la principal línea de investigación para mejorar la potencia de los
ordenadores. De hecho, esta técnica ya ha llegado a los ordenadores personales
gracias a la posibilidad de añadir placas que contienen varios procesadores más.
Desarrollo.
Esta línea de investigación ha dado lugar a los multiprocesadores y los
multicomputadores. Sin embargo, que un ordenador tenga una mayor capacidad
de procesamiento no se consigue simplemente colocando un número mayor de
procesadores, sino que supone una gran complejidad, tanto en el hardware como
en el software. Vamos a describir brevemente esta complejidad, centrándonos en
los aspectos de programación.
En primer lugar, no todo problema puede ser paralelizado. Hay problemas que son
inherentemente secuenciales y por lo tanto es difícil conseguir su ejecución en
paralelo. De todas formas, la mayoría de los problemas científicos descritos
anteriormente se pueden describir fácilmente en paralelo.
En segundo lugar, necesitamos una arquitectura paralela que permita ejecutar una
determinada aplicación, pero también un lenguaje adecuado que permita expresar
el paralelismo del problema. Este punto ha dado lugar a diversas líneas de trabajo
e investigación que vamos a describir a continuación:
Conclusión.
Se ha presentado el estado actual de las herramientas para programación paralela
para el caso de multicomputadores. Se han presentado las dos tendencias que
hay en el desarrollo de facilidades de programación: la paralelización automática
de código a partir de un programa secuencial y el uso de entornos de
programación que permiten la simulación de un programa paralelo, permitiendo de
esta forma que el programador se acostumbre a pensar en paralelo.
Todo esto se están desarrollando de una forma algo lenta quizá, pues la
arquitectura paralela ya es una realidad en nuestros días, ahora el reto se
presenta a los programadores que deseen enfocarse al paradigma del cómputo
paralelo pues ahora la necesidad recae en tener unos buenos programadores de
computadoras paralelas y como logramos ver ya es posible, pues contamos con
algunos cuantos lenguajes paralelos, así como con sus compiladores.