Posted by : Unknown viernes, enero 24, 2014


¡Hola!

En esta ocasión, escribiré acerca del artículo titulado: “The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software”, escrito por Herb Sutter para la revista Dr. Dobb's Journal de marzo del 2005. Durante esta entrada, tocaré algunos temas de interés como lo son ley de Moore, arquitecturas de varios núcleos/hyper-threading y la respuesta de los desarrolladores de software.

Durante muchos años, la ley de Moore se cumplió de manera casi religiosa, dejando la impresión equivocada de que así sería por mucho tiempo. Por desgracia, no se tuvo en consideración que, como cualquier teoría que se cumplía de manera exponencial, llegaría hasta un punto donde se estancaría. En tiempos recientes, hemos visto como la velocidad de los procesadores no va más allá de los 5 GHz (viéndonos sumamente generosos). Ahora, es importante tocar varios puntos al respecto.

Primero que nada, hay que discutir las expectativas que se tenían para tiempos actuales. Al paso que la velocidad del procesador iba evolucionando, era completamente comprensible que para estos años se esperaran velocidades de entre 10 y 20 GHz. Por desgracia, esto no se cumplió por distintas razones (como el exceso de calor y la dificultad para disiparlo, por ejemplo). Hay que recordar que aunque la ley de Moore no se cumplió para los ciclos de reloj, seguía siendo válida para el número de transistores en un procesador.

Ahora, si sabemos que las expectativas no se cumplieron, debemos preguntarnos ¿cuál fue la solución alternativa? Es aquí donde entran los modelos de procesadores com varios núcleos y técnicas como el hyper-threading. Si bien son técnicas aceptables, hay que tener en cuenta que no es lo mismo tener un procesador de x Hz a tener n procesadores con x/n Hz (el modelo con varios procesadores tendrá un peor desempeño por razones explicadas más adelante).

La parte importante viene ahora. ¿Qué se ha hecho en el ámbito de programación para adapatarse a este cambio? Aunque no sea apreciable a simple vista, el cambio de un solo procesador a estos modelos representa cambios importantes para el desarollo de software. En principio, los programadores desarrollaban software con el pensamiento de que en un futuro cercano existiría un procesador que fuera capaz de correr adecuadamente la aplicación desarrollada. Al cambiar a un paradigma de varios núcleos, es importante tener en cuenta que éstos podrían no aprovecharse al máximo. Es por ello que se debe pensar en posibilidades de hacer los programas de manera paralela. De esta manera, podemos evaluar si paralelizar es una buena solución o es preferible dejar la solución serial.

Esto es todo por ahora, espero esta entrada sea de su agrado. Si es de su interés, pueden encontrar el artículo aquí.

 

Leave a Reply

Subscribe to Posts | Subscribe to Comments

- Copyright © Programación Multinúcleo - Hatsune Miku - Powered by Blogger - Designed by Johanes Djogan -