Introducción a la programación en paralelo en C con openMP  

(Ivván Valdez Peña)

Actualmente la mayoría de los equipos de cómputo tienen unidades de procesamiento de dos núcleos (cores) o más. La forma en que se toma ventaja de estos núcleos, en un contexto muy general, es ejecutando una aplicación o programa en cada núcleo. Sin embargo, también podemos tomar ventaja de los equipos con varios núcleos para realizar más rápido una sola tarea y/o realizar varias tareas (dentro de un mismo programa) al mismo tiempo. Para esto se requiere que dicho programa sea codificado con instrucciones que explícitamente indican que las tareas o cálculos se paralelizan, por ejemplo, podríamos calcular la suma de dos vectores, y especificar dentro del código del programa que algunos elementos del vector serán sumados por un proceso (un core) y otros elementos por otro (un segundo core).

OpenMP es una API (interfaz de programación de aplicaciones) que ayuda a escribir programas en paralelo de una forma relativamente sencilla. En el curso explicaremos y utilizaremos  instrucciones básicas (directivas de paralelización) para la programación en paralelo en el lenguaje C, y el consecuente aprovechamiento de todos los núcleos de una computadora para realizar cálculos paralelizables, comenzando desde un "hola mundo", hasta operaciones con arreglos