domingo, 6 de septiembre de 2015

La jungla: hogar de transistores, condensadores y procesadores salvajes que quieren devorarnos.


Como menciona Herb Sutter en su artículo de “Bienvenidos a la jungla”, el desarrollo del hardware ha sido de gran relevancia para la ciencia computacional en todos los campos. No solo es importante para alguien que utilice una computadora (ya sea un usuario común o un desarrollador reconocido) la velocidad con la que se desempeña el sistema, sino también que se puedan realizar diversas tareas al mismo tiempo. Esto se ha logrado por las dos vías principales: el aumento de la velocidad de procesamiento de un núcleo, y la capacidad de este para trabajar “en equipo” con otros núcleos.

El expresión “la unión hace la fuerza” adquiere relevacia en este rubro, tras la aparición de los procesadores multinúcleo; y su significado se vuelve definitivo con el desarrollo de los clusters, o servidores de nube. No sólo hay computadoras con más de un núcleo trabajando en tareas específicas, sino que hay muchas computadoras y dispositivos embebidos, comunicados entre sí a través de diferentes protocolos de comunicación (por hardware: Ethernet, WiFi, Bluetooth, Serial, I²C, SPI, entre muchos otros; y por software: Sockets, DNS, HTTP, FTP, OpenMP, MPI, entre otros).

Resaltando lo que mencionó Herb Sutter, y en lo que en particular estoy de acuerdo, la ciencia de la computación actual no puede quedarse estacionada en la programación secuencial; hay llegado su momento de evolucionar (irremediablemente), caer en la cuenta y adaptarse a su futuro: el paralelismo. El paralelismo actual, sin lugar a dudas, es un poco primitivo, ya que no se ha aprovechado el 100% de las capacidades que los ordenadores tienen hoy en día. Y mucho menos con la aparición de la tecnología contemporánea más importante de la era de la comunicación: la Internet. Con Internet, podemos realizar un sin fin de aplicaciones paralelas. Además, cuando guardamos archivos en la nube, los archivos no están estrictamente almacenados siquiera en el mismo disco duro. Pueden estar en más de uno. Con esto, se puede enfatizar el hecho de que el paralelismo no solo golpea al procesamiento en sí, sino también al almacenamiento de información.

Con el paralelismo aplicado 2 de los módulos principales de una computadora; el procesamiento y el almacenamiento de información; el hardware ya tiene la capacidad de realizar muchas cosas diferentes, y nos da nuevas posibilidades. Situación que no hubieramos alcanzado con el procesamiento tradicional de von Neumann. Es momento de aprender a programar de manera concurrente, y aprovechar lo que el hardware nos está brindando hoy en día. Aunque no lo parezca, si no nos forzamos como ingenieros en software a aprovechar esta oportunidad, no nos daríamos oportunidad como ingenieros en hardware a ver un nuevo reto y mejorar las arquitecturas con el paso del tiempo, ya que “un mejor desempeño que el actual” no va a ser requerido.

No hay comentarios.:

Publicar un comentario