Archive for enero 2014

Free Lunch? NOT TODAY!


¡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í.

 

¡Que se presente el colado! :P

¡Hola a todos! :D

Esta es mi primera entrada en el blog de Programación Multinúcleo, y ahora que oficialmente ya no soy el colado de la clase, comenzaré dando una breve presentación sobre mi.

* Mi nombre (casi) completo es Edwin A. González (sí, tengo un segundo nombre).
* Al momento de esta entrada tengo 19 años de edad
* Me gusta jugar videojuegos, jugar ultimate frisbee y bailar hip hop
* Algunos de los libros que me gustan son 1984 - Orwell, El Código Da Vinci - Brown, Harry Potter Saga - Rowling, El Extraño Caso del Dr Jekyll y Mr Hyde - Stevenson.
* Casi no veo programas de TV. Las pocas series que veo y me gustan son Criminal Minds, NCIS, The Big Bang Theory, New Girl, The Simpsons.
* Algunas de mis películas favoritas son Despicable Me, Kill Bill (both), Pulp Fiction, V for Vendetta, The Avengers, Rise of the Guardians, Frozen, Wreck It Ralph, Hotel Transylvania, Scary Movies, Iron Man, Sherlock Holmes, Tangled, etcétera.

Del curso de programación multinúcleo, espero aprender acerca de como aprovechar el poder de procesamiento lo mejor posible, obteniendo tiempos de respuesa razonables para problemas que regularmente tomarían una cantidad mayor de tiempo.

Eso es todo por ahora. Espero les haya gustado esta entrada. Si quieren leer un poco más sobre mí, está disponible la sección Sobre el Autor.

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