Distribución de compilación con IceCream

5 Mar

Para agilizar un poco el tiempo de compilación de mis compañeros de trabajo y aprovechar un par de quad-xeons que se me iban a quedar libres, decidí instalar distcc; que es un wrapper de gcc que distribuye la compilación entre varias máquinas sin necesidad de compartir por nfs ni tener complicadas configuraciones.

Sin embargo, antes fuí a ver si encontraba algo al estilo Teambuider pero en libre. Cual fue mi sorpresa cuando encontré IceCream, ¡verdadera cremita!

No solo es capaz de hacer todo lo que hace distcc, sino que además funciona en entornos heterogeneos de una forma simplísima.

Por ejemplo, en mi caso tengo una Suse 9.3 y una Debian Sarge con compiladores de distintas versiones, pues bien, solo tengo que hacer esto :


create-env (esto crea un tar.bz2 que contiene en la expresión mínima el compilador de la maquina actual)
ICECC_VERSION=archivo_que_hemos_creado_antes.tar.bz2
PATH=/opt/icecream/bin:$PATH
make -j 4 (el -j 4 es para paralelizar en 4 hilos el make)

Esto ya se encarga de, en caso de ser necesario, subir este minientorno de compilación, la las diferentes maquinas que componen el cluster.

No solo eso, sino que además tiene un despachador que conoce la carga y potencia de las distintas máquinas que integran el cluster (que además son autodescubiertas por broadcast), y reparte la carga en consecuencia; si por alguna razon alguna máquina no esta, se da cuenta y no le envia trabajos.

No contentos con esto, ademas han desarrollado un estupendo monitor (solo he encontrado esta captura que es del modo mas feo e inutil que tiene).

Lamentablemente, no he encontrado paquetes mas que para SuSE, pero al menos han incluido un debian rules bastante bueno, que crea perfectamente los paquetes para debian o derivados.

Una autentica joya para los que useis gentoo y tengais varias maquinas en casa.

Esto lo usan los chicos de SuSE (de hecho es un desarrollo de ellos) para compilar los desarrollar paquetes de su distribución.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: