[Ayuda] Compiladores paralelos

Arturo Espinosa Aldama arturo en ximian.com
Jue Mar 21 12:41:49 CST 2002


On 21 Mar 2002, j0rd1 Adame wrote:

> Viendolo así, los dos me serían útiles

OK, lo que sucede es que compilar en paralelo puede que no tenga sentido
en un cluster, ya que normalmente el cuello de botella en una compilación
es el IO, y si pasas los datos por NFS, va a ser mucho más lento que lo
que podría ser por disco local, con una computadora de múltiples
procesadores.  Esto quiere decir que necesitarías muchos nodos y una red
super-rápida para obtener resultados favorables. NFS es normalmente dos
órdenes de magnitud más lento que el IO de bus local.

Ahora, el proceso de compilación es a la vez muy paralelizable, y con
ayuda de make tienes ya la parte que distribuye la carga. Lo único que te
faltaría sería poner el mismo ambiente de compilación (léase fuente,
headers y versión del compilador) y un wrapper al compilador en la
"cabeza" del closter que corra remótamente en round-robin entre todos los
nodos los comando del compilador que vaya pidiendo make.

Lo más transparente sería compartir fuentes, headers y el directorio donde
quedan los objetos (normalmente el mismo que los fuentes) por NFS.

Finalmente, lo ideal sería que el cluster fuera homogéneo. De otra manera,
el wrapper tendrá que tener la información de la arquitectura de cada nodo
y correr un compilador cruzado en cada uno.

Otra opción es usar un kernel Mosix.

En cuanto a generar código paralelizable, no creo que C tenga suficiente
información en el código para realizar paralelización automática. Para eso
usa Fortran, pon tu propio código MPI o PVM en el fuente, o usa Mosix.

Saludos,
Arturo


_______________________________________________
Ayuda mailing list
Ayuda en linux.org.mx



Más información sobre la lista de distribución Ayuda