por William Stevenson
Traducido por Paulo N. Lama
La computación en paralelo es aquella idea en
la que uno puede acelerar la ejecución de una aplicación, separando el programa
en segmentos para ser ejecutados simultáneamente, asignándole su propio
procesador a cada uno de estos segmentos. De manera similar, la computación distribuida se refiere a la idea que una
aplicación paralela se puede ejecutar en los ordenadores múltiples (llamados
los "nodos") que es interconectado por redes de comunicaciones, tal
como el Internet. Idealmente, se pensaba que cuando un programa se estaba ejecutado
a través de N procesadores, significaba que se podría ejecutar N veces
más rápido; no obstante, esto pudiera haber sido posible, si y sólo si, se hubiese ejecutado en una máquina de un solo
procesador. Sin embargo, en la práctica ésto no sucede, a pesar de que la computación
en paralelo y la de ambiente
distribuido han contribuido a aumentos monumentales en el funcionamiento de
tareas complejas. Esto es verdaderamente notable en el caso de las aplicaciones
de computo en ambiente distribuido tales como el proyecto de SETI@home (que es presentada en esta edición de ACM Crossroads por
Pragyansmita Paul) y de otros proyectos tales como las competencias del grupo
de distributed.net [3]. La tecnología detrás de computación en
paralelo incluso ha llegado al punto en que cualquier persona adecuadamente
motivada (y también financieramente) podría
instalar su propio grupo, usando el software comúnmente disponible tales como
Beowulf [2] o AppleSeed [1]. Además, las investigaciones hasta el
momento de esta edición, continúan avanzando sobre la cuestión de que hasta qué
punto se puede aprovechar los avances del hardware en conjunto con la potencia
de la distribución del Internet.
Comenzamos nuestra asignación con la
investigación de Tobias Butte en los sistemas distribuidos, diseñados a partir
del paradigma de agentes móviles ( Distributed Systems designed from the
Paradigm of Mobile Agents). Mientras que tal
tecnología todavía está en pañales, lo mas probable es que se usará muy bien en
solucionar los problemas del futuro tales como el mapping, es decir, asociar
detalles de la información en el Internet. Cory Quammen sigue con una
introducción al arte de programar los ordenadores paralelos que estan
configurados para compartir y tambien para distribuir memoria. Quammen saca a
la luz, las diferencias entre estas dos configuraciones y discute el OpenMP
y el MPI, que son los dos estándares para programar estos diversos tipos
de multiprocesadores. Josiah Dykstra toma el asunto por las astas, con una
aplicación para la computación en paralelo - la verificación y la validación
del código de ordenador, probando un teorema de manera automatizada. En
detalle, Dykstra discute el destino que tiene este marco de aplicación para
probar el teorema para hacer escalable el proceso paralelo.
En Crossroads Magazine en Español, gozamos preparar de esta edición para usted, y le invitamos a que visite nuestro sitio en Internet, en http://www.acm.org/crossroads/espanol vea otros interesantes artículos sobre la computación en paralelo y la computación en ambiente distribuido. Volveremos con nuestra edición de verano en donde abordaremos asuntos tales como el software gratuito y todo el movimiento del código fuente.
William Stevenson (billstevenson@acm.org ) es un estudiante pre-graduado en Informática y de Ciencia del Conocimiento de la Universidad de Muhlenberg en Allentown, Pensilvania, Estados Unidos. William tiene planes para ir a la escuela de postgrado para un Doctorado en Informática y pasar su carrera en el área académico. En el ámbito de la investigación, su interés se concentra principalmente en las áreas de los sistemas operativos distribuidos y del análisis numérico. Actualmente es editor en jefe de la revista ACM Crossroads Magazine. En su tiempo libre, él goza el leer acerca de los asuntos científicos, recorrer los bosques, y navegar por Internet en su PowerBook.