La función primordial de la web no es reemplazar átomos por bits para que podamos, por ejemplo, comprar en línea. La web ni siquiera está para darle poder a grupos, como los consumidores. En realidad, la web está cambiando nuestro entendimiento de cómo desde un principio se conectan las cosas. Y lo más importante, la web está pegando no sólo páginas sino a nosotros mismos, los seres humanos, de nuevas maneras. Nos estamos conectando de nuevas formas que aún estamos inventando..
DAVID WEINBERGER, 2002.
Un sistema distribuido es aquel en el que la falla de una computadora, que tú ni siquiera sabías que existía, puede inutilizar la tuya..
LESLIE LAMPORT, 1987.
Desde la popularización de la computadora personal en el decenio de los ochenta del siglo pasado, la humanidad ha presenciado enormes avances en el poder de cómputo de estos sistemas, principalmente debido a la creciente capacidad de integración en los microprocesadores: de unos miles de transistores en un chip a miles de millones en el mismo espacio. El desarrollo de este tipo de computadoras las ha llevado a ámbitos en los que antes eran impensables: casas, escuelas y oficinas.
En los últimos años, sin embargo, los principales fabricantes de microprocesadores han dejado de incrementar su velocidad debido al sobrecalentamiento en los chips. En su lugar, la nueva tendencia es agregar varios núcleos o procesadores en el mismo chip, que se comunican entre sí por medio de memorias electrónicas de gran velocidad. Esto agrega poderío a las computadoras, porque se explota el paralelismo: lograr que varios procesadores trabajen en la misma tarea. Estos sistemas son conocidos como multicore.
Los retos para programar y aprovechar el paralelismo de estos nuevos sistemas personales, multicore, así como el de grandes cúmulos de computadoras, llamados grids o clústers y, por supuesto, de las supercomputadoras, son muy variados e involucran una serie de conocimientos y principios que son la base del cómputo distribuido. Éste es, sin lugar a dudas, uno de los retos más interesantes de la computación moderna.
¿Qué tipo de problemas se presentan en el cómputo distribuido? Por ejemplo, los procesadores dentro de un mismo chip tienen que coordinar su acceso a una posición de memoria compartida; en un cúmulo de servidores el reto está en balancear la carga para ofrecer un mejor servicio, etc. En los siguientes apartados veremos estos temas y sus principios básicos, con la ayuda de situaciones cotidianas.