The Free Lunch Is Over

Éste artículo nos habla de lo difícil y de lo poco trivial que muchas veces puede ser hacer algo "mejor", aunque para el cliente o el usuario final, muchas veces ésto pudiera parecer algo trivial. Intel, que durante tanto tiempo ha controlado el negocio de los microprocesadores, aún con sus años de experiencia y miles de dólares invertidos en investigación, se han dado cuenta que éstamos llegando a un punto en el que las cosas ya no se pueden hacer más pequeñas. Aquí es dónde entra la idea del lunch gratis. En un pasado, la mejora de un producto muchas veces requería solamente esperar a que éstos fabricantes sacaran mejores procesadores, con mayor capacidad de procesamiento y mejores capacidades de tiempo de reloj, de éste modo, haciendo las aplicaciones inevitablemente más rápidas.

Hoy en día la jugada es muy distinta. Gracias a los descubrimientos de miles de desarrolladores e investigadores, se dieron cuenta que éstas capacidades están próximas a llegar a un límite físico, más que un límite intelectual, por lo tanto, éstos investigadores han empezado a voltear en diferentes direcciones. Afrontémoslo, es parte del comportamiento humano querer romper barreras, y ésta es del tipo que cambia la historia de la humanidad.

En éste artículo en específico se plantea la posiblida de, en vez de explotar un procesador con mucha capacidad, quizás sería mejor idea explotar muchos procesadores con mucha capacidad. Así de fácil suena, y así de dificíl es hacerlo realidad. En un pasado, desde el nacimiento de tecnologías como C y Unix y la protabilidad que éstos ofrecían, el desarrollador podía completamente olvidarse del hardware donde fuera a correr su aplicación, o al menos, sólo limitandose a pedir un poco más de capacidad de procesamiento o quizás un poco más de memoria, pero relamente no le interesaba si fuera una máquina Windows, Linux, MacOS... y lo más importante: no tenía que saber los detallles de los diferentes procesadores y como explotarlos a su favor. Hoy en día, el lunch gratis se acabó. Ahora el desarrollador que quiere realmente impactar en el performance de su aplicativo, debe conocer las infraestructuras, como de cloud computing, donde correrá su aplicación. Debe explotar cada uno de los recursos que su aplicación puede absorber para relamente ser un servicio de calidad. Uno de éstos recursos es la capacidad de multiprocesamiento.


El problema recae que no es simplemente tan transparente como quisieramos que fuera. No es algo que el sistema operativo host haga automáticamente... o incluso las diferentes máquinas virtuales en dónde corren algunos de los lenguajes más utilizados actualmente, como la JVM de Java. Sí, es verdad que el mundo de los compiladores ha peleado para mantenerse al día, y quizás algún día sea así de fácil, como que tu compilador lo haga concurrente por sí solo, pero hoy en día simplemente no es así. Ésto expone un grado de dificultad y un reto completamente nuevo que nosotros como desarrolladores debemos afronta.


Fuentes:

http://www.gotw.ca/publications/concurrency-ddj.htm

Comentarios

Entradas populares