jueves, 22 de mayo de 2008

van 32 vueltas alrededor del sol...


Bueno ya son 32... pero no quiero sentir ke se me vienen los años encima. "La vieja ali".... Que lastima se me fue la luz hombe y perdi todo el texto que llevaba hasta ese momento.... mi madre adorada me contaba esta mañana que habia llegado a este mundo pasadas las 7am de aquel 22 de mayo de 1976.... será que le di buena "lidiada" toda esa madrugada antes de nacer. Me cuenta ella ke tenia buen peso y con las "patas largas" jaja. Gracias a mi Dios por pemitirme compartir este dia especial en mi vida, donde bueno le pido mucho por mi salud ante todo y la de mis familiares que les proteja y bendiga a diario. Igualmente espero seguir manteniendome con esa alegria, sencillez y humildad que me caracteriza expresandolo con mi espontaneidad y calor humano presentes en mi diario vivir. Que me haga olvidar los recuerdos que me perturban y que algunas veces afectan mi autoestima. Algo que me agradó muchisimo despues de las felicitaciones de mi madre, padre y hermanos es que recibi un par de llamadas de dos personas muy agradables e importantes para mi. En 1era instancia una de ellas no pude contestar pero bueno igual me senti muy agradado por ese gesto de esa persona. La otra fue internacional, de una mujer maravillosa y buena que me ha acompañado en una amistad muy transparente y bonita en la cual hemos compartido casi dos años de contactos y de un gran cariño, amor y amistad.

miércoles, 14 de mayo de 2008

Implementación cluster de alto rendimiento para DIMAR-CIOH


El año pasado se presentó la oportunidad estelar de poder ensamblar y configurar un supercomputador para el Centro de Investigaciones Oceanográficas e Hidrográficas (CIOH) basado en cluster de alto rendimiento que permitiera avanzar y darle a la institución en el tema de modelación capacidades de computo nunca antes obtenidas que nos arrojaran resultados con alta resolución y calidad a la mayor brevedad.

Debido a la necesidad urgente de mejorar las capacidades de cómputo actuales en el CIOH, y al ser propuesto su implementación dentro del proyecto SPOA como novedad tecnológica, el pasado mes de junio del año 2007 se implementó por primera vez un supercomputador escalable de alto rendimiento diseñado a partir de nodos de computadoras interconectados entre sí con el fin de utilizar sus procesadores y memoria en tareas comunes y distribuidas entre ellos. De esta manera colaborativa y utilizando modelos numéricos adaptados a esa tecnología se alcanzaban rendimientos de computo realmente importantes frente a la ejecución serializada tradicional de un proceso, que lógicamente dependería acorde a las características técnicas del procesador o en su defecto el conjunto de procesadores dispuestos para tal proceso.

Dos años atrás, el Area de Oceanografía poseía diversos modelos numéricos con distintos fines cuyos resultados se obtenían en tiempos muy largos o extensos y que significaban demora en la entrega de sus productos o en caso tal que servían para cumplir el objetivo principal de la “conservación y preservación de la vida humana en el mar” y cuyos resultados carecían de eficiencia en su obtención al tener carácter urgente. De esta necesidad se concibe la idea de desarrollar un sistema computacional de altas prestaciones y que fuese escalable para poder facilitar mejoras en el tiempo y poder obtener capacidades de calculo acorde a las necesidades requeridas.

El cluster de alto rendimiento CIOH está basado en el proyecto Beowulf [1], el cual fue presentado por el Dr. Donald Becker en 1994 trabajando para CESDIS [2] (Entidad adscrita a la NASA) como un proyecto de investigación utilizando computadores comunes a bajo costo (COTS) con el auspicio gubernamental y que fuesen una alternativa viable frente a los computadores propietarios y costosos, de alto rendimiento de esa época.

Características Técnicas

El sistema consta actualmente de cinco (5) nodos HP DL360G5 con procesadores Intel Xeon Quadcore corriendo cada uno a 1.8 Gigahertz con un rendimiento total de cálculo aproximado de 57 GigaFLOPS acorde al resultado obtenido por la prueba HPL[3] o “High Performance Linpack, 20 Gigabytes de memoria en el conjunto de nodos. La estructura básicamente consiste en un nodo principal o master quien contiene el sistema operativo de código abierto “GNU/Linux”, distribución Gentoo [4] para arquitectura x86_64. Los demás nodos acceden por red al sistema operativo central servido por el nodo master quien posee (4) cuatro discos duros de 146GB unidos lógicamente bajo configuración RAID en nivel 1+0 al cual cada uno de ellos acceden a ellos gracias a la implementación del esquema de nodos diskless [5] o sin disco haciéndolo más fácil de administrar y manipular. En almacenamiento se tiene un servidor de arreglo de discos MSA60 con dos discos de 300GB bajo RAID 0, pero espera migrarse en la proxima actualización a nivel de RAID5 con redundancia distribuida. . La interconexión es llevada a cabo a través de dos (2) switches 3Com Gigabit Ethernet los cuales manejan dos tráficos, uno administrativo y el otro sólo para el intercambio de mensajes MPI entre los nodos.


Software implementado:

Modelos numéricos (hasta este momento): NedWAM_III, SWAN, WRF.
compiladores: GCC 4.x [6], GCC 3.x, Portland Group Inc. (PGI 7.1.5) ambos con soporte C,C++,Fortran 77 y 90,
Librería distribuida MPICH2 [7], pdsh [8] el cual permite la ejecución de comandos shell en paralelo. Sistema de archivos distribuido, escalable y con redundancia PVFSv2 [9] para distribuir el almacenamiento de los discos e integrarlo con el esquema de SAN1 HP próxima a implementarse.
Monitoreo del sistema con Ganglia [10]
Lenguaje Scripting: PERL 5.8 [11], Python 2.5.x [12], Ruby 1.8.x [13]

Mejoras en un futuro:

Se proyecta que más adelante se cuenten con mejores capacidades de cómputo entre las cuales se actualicen los switches Gigabit Ethernet por interconexiones Infiniband [14] con una latencia muy inferior a la ofrecida por la tecnología Ethernet, y acorde a las necesidades presentadas actualizar y/o incrementar el conjunto de nodos. Igualmente se espera tener la base para incursionar en computación Grid [15], como la evolución de los clusters, pero con características lógicas y tecnológicas mas robustas y actualizadas.

La implementación de este sistema computacional con herramientas basadas en su gran mayoría en software libre, ha colocado al CIOH a la vanguardia en los avances tecnológicos que permitan un mejor aprovechamiento de los recursos disponibles para el procesamiento masivo de información en alta calidad y que conlleven a mejorar la calidad en los productos ofrecidos actualmente y que optimicen en el tiempo aquellos productos existentes previamente, siendo esta tecnología con características de alto nivel científico e investigativo que servirá no sólo al CIOH sino a otras unidades de la DIMAR u Armada Nacional.

Referencias:

[1] http://www.beowulf.org/overview/index.html
[2]
http://ct.gsfc.nasa.gov/annual.reports/ess97/basic/cesdis.html
[3]
http://www.netlib.org/benchmark/hpl/
[4]
http://www.gentoo.org
[5]
http://www.gentoo.org/doc/en/diskless-howto.xml
[6]
http://gcc.gnu.org/
[7]
http://www.mcs.anl.gov/research/projects/mpich2/
[8]
http://sourceforge.net/projects/pdsh/
[9]
http://www.pvfs.org
[10]
http://ganglia.info
[11]
http://www.perl.org
[12]
http://www.python.org
[13]
http://www.ruby-lang.org
[14]
http://en.wikipedia.org/wiki/Infiniband
[15]
http://es.wikipedia.org/wiki/Grid_computing

lunes, 12 de mayo de 2008

Poniendo a andar WinXP bajo entorno QEMU en FreeBSD 7.0


Debido a que no habia podido conseguir instalar IE4Linux bajo FreeBSD 7.0, me tome a la tarea de buscar la manera de poder correrlo y opte por la ultima instancia que era emularlo o virtualizarlo. Como sigo la metodologia de ports, instale y utilice QEMU para poder virtualizar una instancia de WinXP y poder asi correr Internet Explorer 7 bajo esa instancia.
Estos fueron los pasos para la creacion de la imagen, instalacion y arranque de l sistema operativo. Es imprescindible que qemu soporte aceleracion instalando el modulo kqemu. Por lo pronto lo cargamos con: kldload aio
Si el port de qemu no soporta la aceleracion kqemu entonces realice:
# cd /usr/ports/emulator/qemu
# make -DWITH_KQEMU
# kldload aio
# make install clean
o
# make deinstall
# make reinstall clean (si estaba instalado previamente)


1. crear carpeta local ~/windows y acceder a ella (cd ~/windows)
2.
$ qemu-img create -f qcow2 c.qcow 4G
Es importante utilizar el formato de archivo qcow2 (version 2) ya ke el formato qcow legacy no lo soporta y puede aparecer un error como este al intentar iniciar qemu para instalar XP en este caso desde un cd-rom:
$ qemu -cdrom /dev/acd0 -hda c.qcow -m 256 -boot d
qemu: could not open disk image /dev/acd0
aparentemente no reconoce la imagen del archivo generado por qemu-img.

3. Habilitacion manual del modo bridge para interfaces de red en FreeBSD 7.x:
# ifconfig tap create
# ifconfig bridge create
# ifconfig bridge0 addm tap0 addm rl0 up

donde en este caso, rl0 seria la interfaz por la cual fisicamente esta conectada a internet.

4. Instalacion de WinXP bajo qemu desde cdrom:
# qemu -cdrom /dev/acd0 -hda c.qcow -m 256 -net nic -net tap -boot d
La ruta correspondiente al cdrom es relativo a la ruta asignada en el inicio del nucleo.

5. Suspender la maquina virtual y ...:
crear el fichero /etc/qemu-ifup con lo siguiente:
#!/bin/sh
ifconfig ${1} 0.0.0.0

aplicarle atributos:
# chmod 755 /etc/qemu-ifup

6. Definir permiso al dispositivo default que genera qemu cuando se invoca el bridge con el parametro -net nic -net tap

Para esto, hay que agregar en /etc/devfs.conf:
own     tap9    user:group
Esto hara que en modo de arranque del sistema el dispositivo se configure de esta manera para que qemu pueda utilizarlo.

7. Proceso de arranque para que QEMU pueda ejecutar en la maquina virtual, la version de WinXP que se instalo con soporte al menos de la NIC ya virtualizada enlazandose al bridge

a. en /boot/loader.conf agregar:

aio_load="YES" #needed for qemu
kqemu_load="YES" #needed for qemu
if_bridge_load="YES" #needed for qemu
if_tap_load="YES" #needed for qemu
kern.hz="1024" #needed for qemu


b. en /etc/rc.conf agregar:

cloned_interfaces="bridge0"
ifconfig_rl0="up promisc -rxcsum -txcsum"
ifconfig_bridge0="addm rl0 up"
autobridge_interfaces="bridge0"
autobridge_bridge0="tap*"


8. Reiniciar maquina.

9. Si todo sale bien sin contratiempos ejecutar:
qemu -localtime -hda c.qcow -m 512 -net nic,vlan=0\
tap,vlan=0,ifname=tap9,script=/etc/./qemu-ifup -boot c
Gracias a la recopilacion que realice mas organizada de algunos comos en la red, toco contemplar y empezar a verificar como sería la manera de que la linea de comando me permitiera ejecutar el sistema operativo y ke al menos por ahora me reconociese el controlador de red generico en XP.

Referencias:
http://people.freebsd.org/~maho/qemu/qemu.html
http://blog.xwings.net/?p=48