La programación paralela es una forma de computación donde varios cálculos son efectuados de manera simultánea, bajo el principio de que cada problema puede ser separado en partes para su tratamiento. Este tiempo de programación es válido para equipos que tienen procesadores con varios núcleos (multicore) y computadoras con varios procesadores de memoria compartida. Sin embargo, se ha agregado un nuevo nivel de dificultad a la programación, donde las sincronización entre las subtareas y las condiciones de carreras introducen nuevos tipos de errores en los programas y nuevos retos para realmente obtener buenos resultados en ciertos problemas. También es importante considerar la llamada ley de Amdahl donde se plantea que los programas paralelos tienen un l´ımite de mejoramiento marcado por las partes del mismo que no pueden ser paralelizados. Para implementar este tipo de programación se ha implementado librerías que facilitan el trabajo paralelo, como son POSIX Threads, OpenMP y MPI (Message Passing Interface). Sin embargo, también existen lenguajes de programación que implementan de manera automática la paralelización, pero con resultados limitados. Ejemplos de estos lenguajes de paralelizado implícito es Parallel Haskell. En este breve texto, trataremos el lenguaje de programación C con la librería de OpenMP. Presentaremos el API de OpenMP, así como ejemplos sencillos para que el lector pueda acercase a la programación paralela. Con ejemplos dos ejemplos más complejos presentamos también aplicaciones reales de la programación en paralelo para el mejoramiento de algoritmos conocidos. Para una introducción más detallada puedes consultar: Primeros pasos en multicore y programación paralela.

El tutorial puede ser de su agrado en PDF desde este link. Es totalmente gratis y puede ser distribuido de la manera que más les agrade. http://code.kiutz.com/paral/docu.pdf Espero sea de su agrado. 

Si van a usarlo en algún trabajo, les agradecería que lo citaran con la siguiente especificación:

  • Jesús Manuel Mager Hois. Programación Paralela.  FES Cuautitlán-UNAM, Cuautitlán México, marzo del 2013.

 

Share This