Lo mas importante es un buen numero de equipos, pueden ser cualquier
cosa que funcione y no sea inferior a un 386 con 4 Mb de ram, ni siquiera
tienen que tener tarjeta grafica (si la placa base lo permite), ni teclado,
ni pantalla e incluso ni dusco duro (arranque remoto).
Despues de los equipos necesitaremos unas tarjetas de red (no
son necesarias pero si recomendables), aunque podemos comunicar los equipos
por puerto paralelo/serie, este sistema sera mas lento que con unas tarjetas
de red, asi que en principio conseguiremos unas tarjetas de red ethernet
normalitas de 10 Mb/s con esto se ria suficiente para empezar (el que tenga
muchas pelas que se compre unas tarjetas Hippy de 1,5Gb/s pa cagase :))
). Tambien necesitaremos cable coaxial ethernet fino, conectores BNC y
varios conectores en T (suelen venir con las tarjetas de red).
En cuanto al software yo he utilizado Debian Linux 2.0 y Red Hat 5.2
como operativos y pvm 3.4Beta6 como software deprocesamiento en paralelo
.
En concreto Avalon es un cluster de 5 equipos:
1.-AMD K6-2 350Mhz, 64Mb Ram, 4,3Gb HD
2-.Intel 486DX4 100Mhz (overclocking), 20Mb Ram, 540Mb HD
3-.Intel 486DX4 120Mhz (overclocking) 20Mb Ram,
4-.Intel 486SX 25Mhz, 8Mb Ram
5-.Cyrix 486DLC 40Mhz, 8Mb Ram(un 486 con patillaje de 386), 40Mb HD
6-.AMD 386DX 25Mhz, 4M Ram
#directorio donde esta instalado pvm
export PVM_ROOT=/usr/lib/pvm3
#directorio donde esta el demonio pvmd
export PVM_DPATH=$PVM_ROOT/lib/pvmd
#arquitectura del equipo
export PVM_ARCH=LINUX
estas bariables es recomendable añadirlas a nuestro .bash_profile
(suponiendo que nuestro shell es el bash)o al /etc/profile .
Ahora hay que configurar la red , lo primero de todo sera recompilar
el kernel con soporte para nuestra tarjeta de red o compilar el modulo
especifico para nuestra tarjeta de red y cargarlo. El mejor de los dos
casos es recompilar el kernel con soporte para nuestra tarjeta de red una
vez hecho el kernel al arrancar detectara la tarjeta y su confuguracion
de IO Base y IRQ (al menos en las que yo tengo que son unas ISA compatibles
NE2000 y Una PCI conpatible NE2000) si optamos por los modulos tendremos
que cargar el modulo en el archivo /etc/conf.modules especificando
la confuguracion de la tarjeta. Tras configurar la tarjeta hay que configuarar
la red para ello nos vamos a /etc/init.d/network en debian y añadimos
una lineas:
ifconfig eth0 192.168.0.1 netmask 255.255.255.0
route add -net 182.128.0.0 netmask 255.255.255.0 dev eth0
donde eth0 es el dispositivo de red (sera eth0 siempre por defecto)
192.168.0.1 es la direccion ip que le daremos ala maquina (para cada maquina
los 3 primeros digitos seran iguales y el ultimo diferente es decir 192.168.0.X)
y 255.255.255.0 es la mascara de red.
Para red hat es mas sencillo basta con entrar en el entorno X-window
y ejecutar el netcfg, una vez en el basta con añadir un interfaz
nuevo con los datos de antes direccion Ip y mascara de red.
Ahora una vez tenemos la red configurada hacemos los cables de red
para ello o bien los compramos hechos o con un engastador y un poco de
maña nos los hacemos. Son sencillos de hacer, los conectores tienen
tres elemento un nucleo de cobre (o almenos dorado) un pequeño tubo
y el conector el si, el cable consta de cuatro capas la cubierta
externa de plastico, la maya aislante (sueleser de alumunio o cobre y es
muy similar a la de los cables de television) una cubierta de plastico
interna y un nucleo de cobre cubierto por esta capa de plastico (este nucleo
aveces es una especie de cable de varios hilos en vez de un unico hilo),
para hacer el cable basta con cortar la cubierta de plastico del cable
coaxial aproximadamente 1,5 cm desde el borde insertamos en el cable
la arandela de metal del conector retirar la cubierta de plastico
y echar hacia atras la maya cortar la cubierta de plastico interna hacia
0,5 cm del borde (enrollar el nucleo si son varios hilis para que sea compacto)
insertar el nucleo del cable en el nucleo del conector, engastarlo
conun engastador o la modalidad cutre es hechar una gota de estaño
en el nucleo del conector calentar este e insertar el nucleo del cable,
al secar el estaño impide que se suelten (esto es como se hacia
hace años pero ahora hay herramientas que evitan el tener que soldar)
se inserta el cabel en el conector, se enrolla la maya en el conector
y se cubre con el buto de metal, una vez engastado el conector estara hecho,
se repite la misma operacion en el otro extremo del cable y cabel hecho.
Para comprobar que el cable este bien hecho es recomandable utilizar un
polimetro, poniendo este en medicion de resistencia, con las cdos barillas
se toca el nucleo y el exterior de un conector la medicion en el polimetro
ha de ser 1, luego lo mismo pero con el exterior de ambos conectores la
medicion ha de ser 0 y por fin con el nucleo de anbos conectores
la medicion ha de ser 0, si todo esta asi el cable funcionara.
La red que bamos a montar tendra una disposicion fisica/logica en bus
es decir que el medio de red sera continuo y unico para todos los equipos,
esto se tarduce en que el primer equipo del bus tendra conectado un terminador
en T a su tarjeta de red, a uno de sus extremos ira un terminador de 50
ohmnios y al otro el primer conector BNC de un cable de red, el otro conector
BNC de ese cable de red ira a otro conector en T que estara conectada a
la tarjeta de red de otro equipo, este conector en T tendra a su otro la
do otro BNC de otro cable o un terminador de 50 ohmnios si es el equipo
que termina el bus, osea:
----- cable de red
B conector BNC
T conector en T
* Terminador de 50 ohmnios
# Ordenador
*TB----BTB----BTB----BTB----BT*
#
#
#
#
#
Una vez tengamos hecho el cableado probaremos la red enviando paquetes
entre dos maquinas por ejemplo entre la que estoy y 192.168.0.3 (suponiendo
que la direccion ip de la maquina en la que estoy no sea esa) para ello
utilizamos ping:
ping 192.168.0.3
Si todo esta bien configurado y el cable esta bien hecho nos dira que
los paquetes esta llegando bien para parar el ping pulsamos CTRL+C.
Una vez hecho esto tendremos que añadir a nuestro fichero hosts
todas las maquinas que tenemos para poder acceder a ellas por su
nombre y no pr su direccion ip (no es necesario pero si aconsejable) para
ello modificamos el fichero /etc/hosts :
192.168.0.1 nexus11
192.168.0.2 avalon0
192.168.0.3 avalon1
192.168.0.4 avalon2
192.168.0.5 avalon3
El nombre de cada maquina esta especificado en el fichero /etc/hotsname
.
Ahora necesitamos poder ejecutar un rsh (shell restringido) en la maquina
remota asi que tenemos que modificar nuestro archovo $HOME/.rhosts o bien
el /etc/hosts.equiv el primero solo modificaria la configuracion para el
usuario el cuestion y la segunda lo haria para cualquiera (esto crea agujeros
de seguridad no es recomandable hacerlo amenos que las maquinas no esten
conectadas a ningun sitio):
nexus11
avalon0
avalon1
avalon2
avalon3
NOTA: en debian hay que modificar tambien el archivo hosts.allow y quitar
la linea ALL: PARANOID que impide todo tipo de accesos de este tipo a la
maquina.
Asi seria el fichero si hemos modificado el archivo hosts, sino en
vez de los nombres irian las direcciones ip. Para comprobar que todo va
bien es bueno probar si podemos habrir un shell remoto para ello:
rsh avalon0 dir
donde rsh es el shell remoto avalon0 la maquina y dir el comando para
probar si todo esta bien veremos una lista de ficheros y directorios. Estos
pasos hay que repetirlos en todos los equipos que tengan disco duro (el
arranque remoto se trata mas adelante).
Una vez tenemos todo esto hecho podemos empezar a jugar con el procesamiento en paralelo para ello basta con ejecutar pvm y se arrancara la consola de pvm. Si ponemos help (? si esta puesto el alias) vemos los comandos que podemos utilizar, el primero de utilizaremos el add, este comando nos permite añadir maquinas que esten en la red:
add avalon0
añadiria la maquina avalon0 a nuestro cluster (si esta encendida
y configurada). Otro comando util es stat que nos da las maquinas que estan
funcionando en paralelo.
spawn: nos permite lanzar tareas para que se ejecuten en el cluster.
quit: termina la ejecucion de la consola de pvm, pero no la de pvmd
que sigue con los trabajos que estubiera haciendo el cluster.
halt: termina la ejecucion de la consola y de pvmd termina todos los
trabajos del cluster.
Los ejecutables de los programas que queramos arrancar en pvm an de
estar en el directorio $PVM_ROOT/bin/$PVM_ARCH si estan en otro directorio
no sera capaz de encontrarlos. Es de destacar que estos programas para
que aprovechen el cluster han de estar echos con la API de pvm y compilados
con aimk (prograa que trae el paquete pvm-dev).
esta es una imagen hecha con blender de como sera Avalon
Aqui eta el fuente para blender
Plano de construccion en forato eps se
puede ver e imprimir con el ghostview, GV, Gimp y cualquier otra utilidad
que lea postscript encapsulados, aun no estan del todo terminados falta
el plano de montaje con el ensamblaje de las piezas y la colocacion de
ventiladores fuentes y demas historias.
De momento aqui estan los fuentes 500Kb comprimidos con bz2 version 1.5b
Bugs muchos al gunos que se que hay son:
- Algunos paterns no admiten ciertos maps
Los que escuentres me los mandas que se agradece.
