>Esto debe ser hací?, entonces los programas existentes deberían >reprogramarce para aprovechar un cluster?.
En general si, hay que programar explicitamente un programa para hacer que corra en varios procesadores. No es para nada una tarea simple y en general involucra modificar el algoritmo en que esta basado el programa, ya que no siempre es posible en un programa realizar de manera simultanea varias tareas. O a veces un algoritmo muy eficiente en un codigo serial no lo es tanto cuando tiene que correr en paralelo. Respecto a dejar esa tarea al compilador, a mi entender los unicos que han logrado un compilador paralelizante para una maquina de memoria distribuida son Cray, y estamos hablando de maquinas con redes con latencias mucho mas bajas de las que consigues para un cluster. En memoria compartida los compiladores que paralelizan necesitas directivas sobre que como paralelizar y solo hacen cosas simples, como dividir la ejecucion de un loop entre procesadores. En el fondo la real dificultad de la computacion paralela es el dise~no de las aplicaciones y no tanto el dise~no de las maquinas. Xavier

