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