domingo, mayo 15, 2005

Computacion y graficos

"Yo tengo un Pentium IV a 4 Ghz con un giga de memoria"

Esta frase me hizo reir bastante hace un par de semanas. Pregunté al sujeto en cuestión: ¿y para qué los quieres?. La respuesta es evidente, para jugar. Patético, simplemente patético. ¿Para eso queremos un ordenador? ¿Para jugar? ¿No sería más barata (y potente) una consola?

La fiebre de los Mhz nos invade y las nuevas generaciones son demasiado susceptibles a estas cosas. Respeto a la gente que usa el ordenador para jugar, pero no lo comparto. Tenemos una visión totalmente sesgada de la realidad. NO, la velocidad no es lo más importante, al igual que tampoco es determinante si el ordenador es de 32 o 64 bits. Señores, el futuro de la computación está en el paralelismo. Por muy veloz que un procesador sea, dos de velocidad inferior harían las tareas en menor tiempo.

La distribución de recursos es algo fundamental en nuestro tiempo, y en un futuro lo será aún más. Hay que reutilizar el hardware antiguo (esos Pentium III o K6 a 500 Mhz pueden ser MUY útiles). Hablemos desde el punto de vista empresarial. Disponemos de una empresa con 50 ordenadores. El coste de renovarlos cada 2 años es excesivo y los presupuestos normalmente no dan para tanto. ¿Solución? La reutilización de componentes. ¿Cómo? Fácil, para eso se diseñó la arquitectura cliente-servidor y como evolución de ésta, los Web-Services. El objetivo de este paradigma es ejecutar la aplicación directamente en un servidor (que sí debe de ser potente) y los clientes actuan como simples parásitos que se aprovechan de los recursos del servidor. Ya no son 50 ordenadores, sino 1, que a lo sumo, puede costar como 4. El ahorro es considerable.

Pero ojo, ésta es la computación distribuida, la verdadera guerra a los Mhz la declara la computación paralela. Frente a la computación distribuida, en la que hay un sólo servidor que sirve a los demás, en la computación todos los nodos (forma de llamar a cada uno de los ordenadores que componen la red) trabajan a la vez en tareas repartidas equitativamente. La idea más importante es que el conjunto global de nodos es visto como un único computador, por lo que el software destinado a gestionar los nodos debe de hacernos creer que estamos trabajando frente a una sóla máquina.

Este concepto es fácil en la teoría pero no tan simple en la práctica. Existen diversas formas de llevarlo a cabo, siendo dos las que destacan sobre el resto, los clusters y los (o las, no sé el género) grid. La gran diferencia entre ambos es que en los clusters, debe de haber un nodo central desde el que se ejecuta el software de gestión y que es el encargado de repartir la carga equitativamente entre los distintos nodos, mientras que en un (o una) grid, los propios nodos disponen del software gestor y se reparten la tarea equitativamente. Se puede comparar en cierto modo a las redes P2P (Peer to Peer), en las que cada nodo actua como servidor y como cliente a la vez.

El límite físico de la separación entre transistores está muy cerca, y hay que ir pensando en alternativas. No sé ustedes, pero yo opto por grid.

No hay comentarios: