Como hemos visto desde que empezó el semestre, el
paralelismo en el cómputo se ha vuelto algo más que útil, necesario. Esto
debido al incremento de potencia que se necesita en las computadoras para
resolver los problemas que se presentan hoy en día, y más en específico a la
cantidad de información que se tiene que procesar para generar resultados.
Hemos visto en los últimos años que las computadoras se han optimizado en
cuanto al hardware, vemos procesadores que salen con mayores núcleos físicos y
lógicos, con mayor velocidad del reloj, incrementando el caché, etc. Sin
embargo, es poco el uso que realmente se le da a esta capacidad de los
procesadores debido a que la mayoría de los programas y aplicaciones están
escritas en código secuencial y no aprovechan los multinúcleos.
Creo que las directivas
del modelo de programación OpenMP serían bastante útiles para tratar de
convertir programas secuenciales en programas que usen multithreading; sin
embargo, al menos con la explicación del artículo, no me parece especialmente útil
para generar programas muy complejos y que requieran, además del
multithreading, utilizar distintos dispositivos para procesamiento. Pues la
sincronización de los dispositivos y la memoria a la que se accede corre por
cuenta del programador, por lo que el modelo OpenMP no sería de mucha ayuda en
estos casos.
Ahora bien, si bien
es cierto que pensar en un paradigma de programación concurrente es bastante
más complejo que pensar en uno secuencial, se está volviendo una necesidad para
los desarrolladores hoy en día. Por tanto, me parece de suma importancia que
desarrollemos esta habilidad haciendo uso de las herramientas que tenemos hoy
en día, pero sobre todo tomando en cuenta que en el futuro el multithreading
será obligatorio y por tanto deberemos saber aprovecharlo al máximo. Este será
un diferenciador en la calidad y rendimiento de las aplicaciones que se desarrollen
después, y será un pilar en el desarrollo de los nuevos desarrolladores.
No hay comentarios:
Publicar un comentario