Procesamiento Paralelo, 2do episodio

Hacer varias cosas a la vez , este es un sueño humano que tiene los más diversos escenarios :bailar y conversar, estudiar y oir música, comer y leer, atender a clases y copiar simultáneamente lo que dice el profesor…en fin, creo todos hemos pasado por ahí. Y en verdad puede ser muy efectivo el desarrollar habilidades que nos permitan, transcurrido un cierto tiempo, haber realizado varias tareas exitosamente.
Pero, y siempre hay un pero, también esta intensión de simultanear varias acciones tiene sus riesgos, cuando debemos atender por igual a varios frentes de acción, y tal vez alguno salga maltrecho, al producirse un resultado por acciones no controladas del todo. De aquí las acertadas observaciones de -por ejemplo- no conducir un automóvil mientras conversamos por el teléfono móvil.
A este asunto de hacer varias cosas a la vez –chiflar y sacar la lengua dice el refrán popular- vamos a dedicar el comentario de hoy.
Los humanos encargados de crear y desarrollar las nuevas herramientas informáticas no han estado ajenos a esta frecuente intención de simultanear acciones , y han realizado esfuerzos en la dirección de obtener nuevas computadoras que puedan ocuparse de más de una tarea a la vez.
Y lo han logrado. Actualmente existen diversos modelos de computadoras personales capaces ya no solo de simular el procesamiento paralelo, si no de desarrollarlo realmente. Sin embargo…esto no se ha instaurado del todo, aún cuando -como estrategia de trabajo- puede superar con creces todos los rendimientos conocidos.
El desarrollo de la herramienta informática, las computadoras, ha tenido apoyo de los más diversos campos del quehacer humano, desde épocas en que nadie soñaba hasta donde podríamos llegar. Por citar solo 3 casos de los innumerables aportes existentes, podemos nombrar:
Un poeta indio conocido como Pingala, 500 años antes de nuestra era, presentó la primera versión -conocida- de un sistema numérico binario, vinculado a la escritura en sanscrito, lengua: Charles Babbage (1791-1871)  inventor y matemático británico diseñó y construyó máquinas mecánicas de cálculo, y por último el matemático húngaro nacionalizado estadounidense John Von Neumann  (1903-1957), desarrolló un concepto teórico conocido como máquina de von Neuman, que permitía a una computadora ejecutar un programa almacenado en ella misma.
En particular este último creador, Von Neuman, esbozó su estrategia de trabajo como esencialmente secuencial : sus máquinas de cálculo debían realizar una tarea, y solo después de terminarla, otra, de forma secuencial.
De esta forma transcurrió la historia de los principales procesadores de la línea computadora personal : los INTEL 8088, 8086, 80286, 386, 486….y entonces apareció el PENTIUM, y todo cambió. Con el modelo Pentium surgió en el mercado de las computadoras personales un procesador que podía
-físicamente hablando- realizar dos operaciones a la vez, verdaderamente simultáneas en el tiempo.
Y también, con este avance, vino un nuevo problema : para usar esta flamante potencialidad, los especialistas informáticos, en sus programas, debían tomarla en cuenta y explotarla, pero esto, en verdad, era algo nuevo, casi nadie pensaba así en el mundo de la informática general, Von Neuman nos había colonizado con su estrategia secuencial: una cosa primero y otra después, nunca dos a la vez.
Por supuesto, el mercado de programas estaba desarrollado sobre esta misma base secuencial, habían instaladas cientos de miles de computadoras basadas en ella, y el desarrollo de nuevas estrategias de pensamiento -y por ende de programas- se encontró con su primera traba.
Aunque estaba fehacientemente demostrado que el procesamiento de múltiples acciones a la vez era superior al secuencial, el mercado impuso el mantener la compatibilidad con todo lo vendido hasta el momento. En fin, como diríamos en un juego de baseball, ¡quieto en base! No obstante, las necesidades siempre crecientes de la sociedad humana se han ido imponiendo, y las propuestas de soluciones han ido apareciendo, tímidamente al principio, yendo desde duplicar físicamente las plataformas de trabajo, hasta el compartir las potencialidades de máquinas ociosas.
Las estrategias planteadas han sido varias, muchas de ellas muestras verdaderamente ingeniosas de lo que la humanidad logra cuando coordina esfuerzos en un mismo sentido. En particular se reconoce la participación de  Gene Amdahl de IBM, quien en 1967 planteó las bases para el desarrollo del procesamiento paralelo.  De esta forma han surgido algunas propuestas concretas :
La primera, una misma computadora que cuenta con más de un procesador local (esto es conocido como banco de procesadores).
La segunda, un mismo procesador está compuesto -realmente y valga la redundancia- por más de un procesador, siendo hasta ahora (primera mitad de 2010) la mejor oferta comercial 4 en una misma empaquetadura .
Y la tercera, donde varias computadoras se conectan entre sí a través de una red, conformando un cluster (del inglés conglomerado).  Esta última variante puede utilizar la potencialidad de cálculo ociosa de máquinas conectadas en red y que no se estén usando en un momento determinado (horario de almuerzo, nocturno, fin de semana). Esta variante es estratégicamente importante.
Sin embargo, aun cuando la plataforma “electrónica” está lista, los avances en el campo de los programas no han estado a un nivel que permita satisfacer las demandas de los usuarios. Y esto, ¿por qué?. Es simple de entender aunque tiene varias aristas distintas este ¿por qué? :
En primer lugar, programar una secuencia de órdenes para que varias de ellas se ejecuten simultáneamente es bastante más complejo que concebirlas para que se ejecuten una detrás de la otra.
En segundo lugar, una gran parte de las computadoras personales instaladas actualmente aún no cuentan con capacidades para atender al procesamiento paralelo, o si lo tienen, el sistema operativo que utilizan no está preparado para esto.
En resumen, puede usted comprar una flamante computadora, con el reluciente procesador INTEL Core i7, con la microarquitectura Nehalem, desarrollado desde hace más de 2 años por un equipo de 80 especialistas costarricenses, y si no utiliza programas adecuadamente concebidos para esta maravilla, estará subutilizando la enorme capacidad de sus 4 núcleos y su gran cantidad de memoria. O lo que es lo mismo, pudo haberse contentado con un humilde Pentium 4.
Por tanto, hemos de esperar a que los creadores de programas Y EL MERCADO se ajusten a estos nuevos artilugios, aunque ya existen pasos concretos en dos campos : un grupo de creadores, los  de los juegos informáticos y los gráficos en general están comenzando a explotar estas maravillas, y por otro lado los especialistas de redes están desarrollando el ambicioso proyecto conocido como Computación en la Nube, y todo esto permitirá, a la larga, avanzar hacia un nuevo estado de la humanidad, la llamada Sociedad Red. ¿Y esto…que significa?
Ya veremos….

No hay comentarios: