The State of Parallel Programming

The State of Parallel Programming

Actualmente estamos rodeados de procesadores con más de un núcleo que requieren de programas que puedan hacerse de forma simultánea para realmente aprovechar todo el poder de procesamiento de estos. Pero se han puesto a pensar si realmente estamos preparados para realizar programas que corran en más de un núcleo. En el artículo titulado The State of Parallel Programming se analizan los distintos factores para determinar si se está listo para realizar una transición en la forma de programar, de una forma secuencial a una paralela o concurrente, debido a que a pesar de que los procesadores multi núcleos ya están disponibles hasta en las computadoras personales, aún no se tiene una cambio de paradigma en la manera de programar y realmente son pocos los desarrolladores que se pueden hacer exitosamente un programa en paralelo. De acuerdo con el artículo, existen varias razones por las la programación concurrente todavía es para una elite de programadores.

Una de las razones, y probablemente la más importante, es la falta de herramientas que ayuden al programador a realizar mejor código concurrente y le ayude a identificar qué partes del código pueden realmente hacer más rápida la ejecución. En mi clase que se llama Programación Concurrente y Paralela, hemos visto que para que realmente tener una optimización en el tiempo con un programa en paralelo se debe contar con varias partes que puedan ser hechas en paralelo. Sin embargo pensar en que partes de un programa son paralelizables es muy complicado y se debe considerar varias cosas al momento de programar. Por ejemplo, en un programa donde se va a correr una sección al mismo tiempo por diferentes hilos de procesamiento se debe tomar en cuenta el almacenamiento en memoria, las variables, y de si estas pueden ser modificadas por varios hilos de procesamiento al mismo tiempo.  No obstante, actualmente no se cuentan con muchas herramientas que aconsejen a los desarrolladores o que hagan la programación más directa, solo pensar en la lógica del programa y no en los problemas en el manejo de la memoria, por lo que todavía no se adopta este tiempo de programación.

Referencias:

[1] Dr. Dobb. (2012). The State of Parallel Programming. UBM TechWeb.


Comments