- Back to Home »
- Free Lunch? NOT TODAY!
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.
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í.
Esto es todo por ahora, espero esta entrada sea de su agrado. Si es de su interés, pueden encontrar el artículo aquí.