Apartamento En Familia

Apartamento En Familia
Apartamento de playa para vacaciones. https://www.booking.com/hotel/es/apartamento-en-familia.ca.html Número registro HUTT-005768

viernes, 26 de febrero de 2010

¿Cuantos CPUs tengo?

Hay diversas maneras de hacerlo. La evidente es mirando el Monitor del sistema:



Pero si lo queremos hacer por comandos se me ocurre una que puede resultar sencilla:

for i in `cat /proc/interrupts | grep CPU`; do a=$(($a+1));done; echo $a; unset a

Si hicieramos simplemente :
cat /proc/interrupts | grep CPU

ya veríamos cuantas, pero no nos pondría el número como con lo del for.

jueves, 25 de febrero de 2010

Firefox en Lucid Lynx vendrá con Yahoo por defecto.


Parece ser que la nueva versión de Ubuntu 10.04 (Lucid Lynx) vendrá con la página de inicio por defecto de Firefox con Yahoo Search. Esto es fácilmente cambiable por cualquier otra página,  pero sorprende el cambio de motor de búsquedas de Google a Yahoo, y más teniendo en cuenta que Microsoft y Yahoo han firmado un acuerdo por el cual el primero podrá usar el motor de búsqueda de Yahoo por un periodo de 10 años.



Si vamos a http://start.ubuntu.com/10.04/ podemos comprobar que efectivamente ya esta todo preparado:

Rick Spencer (responsable del equipo de ingenieros de Ubuntu Desktop) comentó:

“Estoy persiguiendo este cambio porque Canonical negoció un acuerdo para compartir ganancias (de publicidad) con Yahoo! y esto servirá para ayudar a Canonical a proveer desarrolladores y recursos para continuar con el desarrollo abierto de Ubuntu y la Plataforma Ubuntu.”



(Fuente Ubuntu)

martes, 23 de febrero de 2010

Instalar Octave3.2 + Open MPI 1.3.3. + openmpi_ext (HPC Ubuntu)

En este artículo vamos a explicar como montar un sistema HPC (High Performance Computing). El campo de computación de alto rendimiento (High performance o HPC en inglés) es una herramienta muy importante en el desarrollo de simulaciones computacionales a problemas complejos. Para lograr este objetivo, la computación de alto rendimiento se apoya en tecnologías computacionales como los clusters, supercomputadores o mediante el uso de la computación paralela. La mayoría de las ideas actuales de la computación distribuida se han basado en la computación de alto rendimiento. La computación paralela es una técnica de programación en la que muchas instrucciones se ejecutan simultáneamente.Se basa en el principio de que los problemas grandes se pueden dividir en partes más pequeñas que pueden resolverse de forma concurrente ("en paralelo").

(Fuente Wikipedia)




Hasta llegar a poder hacer este artículo, y con el objetivo que el lector pudiera tener una explicación detallada de todas las partes, realicé artículos anteriores en donde se explican detalladamente dichas partes y hacer que éste fuera menos complejo. Así pues, para montar un sistema MPI seria conveniente saber:


Como podréis comprobar, para hacer un Ubuntu Diskless se han de dominar también estos dos artículos:


 

Con todo esto, e instalando los paquetes de Open MPI 1.3.3 y openmpi_ext, podremos obtener un sistema de Alto Rendimiento de Computación para cálculos realizados con Octave3.2.x



A fecha de edición del artículo, los requisitos para instalar openmpi_ext son según Michael Creel, responsable de PelicanHPC de la Universidad Autónoma de Barcelona, los siguientes:

Hola Eduardo,
openmpi_ext no funciona con Octave < 3.2.x, y MPITB no funciona con
Octave > 3.0.x  El problema ès que los tipos internos de Octave
cambien con las versiones. En este momento, yo recomano utilizar
openmpi_ext y Octave 3.2.x (o version de desarollo) ya que Octave
3.2.x tiene muchas mejoras respecto Octave 3.0.x. La desavantaja és
que openmpi_ext no és completo. Pero si tiene las funciones que
necesitas, el rendemiento és muy bueno.
Michael


Pues ya sabiendo todo esto, pongámonos manos a la obra. En nueve sencillos pasos podremos tener instalado todo el sistema.


PASO 1: Instalar Octave3.2 desde el repositorio
En este punto os aconsejo seguir el artículo ya publicado en este blog que se indica más arriba.

PASO 2: Crear carpeta para las fuentes en ~/fuentes
Crearemos una carpeta de fuentes en $HOME en donde bajaremos todo lo necesario para compilar nuestras aplicaciones.


PASO 3: Descargar Open MPI 1.3.3 de la página oficial
Como existen diversas versiones de Open MPI, nos aseguraremos de descargar aquella que funciona correctamente según las especificaciones para openmpi_ext.

cd fuentes
wget http://www.open-mpi.org/software/ompi/v1.3/downloads/openmpi-1.3.3.tar.bz2


PASO 4: Descomprimir Open MPI 1.3.3
Descomprimimos el archivo tar.bz2 del siguiente modo:
tar xfjv openmpi-1.3.3.tar.bz2


PASO 5: Descargar openmpi_ext de SourceForge
Ahora podemos pasar a descargar la extensión de octave openmpi_ext :
wget "http://octave.svn.sourceforge.net/viewvc/octave/trunk/octave-forge/extra/openmpi_ext.tar.gz?view=tar" -O openmpi_ext.tar.gz
Necesitamos estas fuentes ya que son las que hacen que Octave funcione con MPI. Es una toolbox de Octave basada en MPITB desarrollada por Javier Fernández Baldomero.

PASO 6: Descomprimir openmpi_ext
Descomprimimos el archivo tar.gz del siguiente modo:
tar xfzv openmpi_ext.tar.gz


PASO 7: Compilar Open MPI 1.3.3
Llegados a este punto nos ponemos a compilar:

cd openmpi-1.3.3 ; echo "Ahora estamos en : "$(pwd)
make clean
./configure --enable-mpirun-prefix-by-default --prefix=$HOME/openmpi-1.3.3/ --enable-static --enable-orterun-prefix-by-default
make install all

PASO 8: Modificar .bashrc con rutas necesarias
Es necesario que los binarios del Open MPI 1.3.3 que se acaban de compilar estén incluidas en la ruta (PATH) ya que sino no compilará correctamente el openmpi_ext.Esto lo podreis ver en el archivo ~/fuentes/openmpi_ext/doc/README.Modifica el .bashrc de tu $HOME:
 OMPIBIN=`$ompi_info -path     bindir  -parsable | cut -d: -f3`
 OMPILIB=`$ompi_info -path     libdir  -parsable | cut -d: -f3`
 OMPISCD=`$ompi_info -path sysconfdir  -parsable | cut -d: -f3`


export            PATH=$OMPIBIN:$PATH


export LD_LIBRARY_PATH=:$OMPILIB:$LD_LIBRARY_PATH


unset  ompi_info OMPIBIN OMPILIB OMPISCD


Antes de compilar openmpi_ext deberás salir de la shell y volver a entrar para que tomen efecto los cambios (al más estilo MS Windows) o usar el siguiente comando:
source .bashrc
y no hará falta que salgas de tu sesión (al más estilo GNU/Linux)

PASO 9: Compilar openmpi_ext

Antes de continuar con este paso, quiero aprovechar para dar las gracias a Michael Creel y Riccardo Corradini por su ayuda en este paso. Entre los tres encontramos el porque inicialmente no me compilaba correctamente el openmpi_ext dándome este error cuando queria usar el MPI_Init:
 
octave:1> MPI_Init
error: /home/csi/ompi_ext/MPI_Init.oct: undefined symbol: _ZN3MPI3Win4FreeEv


El error lo encontramos en el Makefile del openmpi_ext usaba mpicc en vez de mpiCC, y por tanto, la libreria -lmpi_cxx no se incluía correctamente, faltándole el símbolo_ZN3MPI3Win4FreeEv de arriba. Puedo decir que me siento satisfecho de haber podido ayudar a mejorar el código para su compilación.

Para compilar openmpi_ext haremos:
cd $HOME/fuentes/openmpi_ext/src
make clean
make
Ahora podemos probar si funciona entrado en la carpeta en donde se ha compilado el openmpi_ext y ejecutando el octave. Una vez arrancado hacemos MPI_Init y veremos que nos devuelve 0, es decir, que todo ha ido bien.

ans = 0

Todos estos pasos se pueden automatizar perfectamente. He realizado un script que puede ayudaros. Funciona perfectamente en Ubuntu 9.10, si bien no deberia haber ningún problema para cualquier otra distribución.
Para ejecutar el archivo, descomprimirlo y usad:
source ./instala_hpc.sh. 
El programa os descargará todos los paquetes necesarios, los descomprimirá, compilará y añadirá en los PATHs necesarios. Simplemente hará que todo el proceso sea más fácil. La última prueba realizada realizó exitosamente todos los pasos en 20 minutos.
ans = 0

Se ha tardado en instalar el sistema HPC 1215 segundos.

Para especificar los nodos que deberá usar el master, deberemos editar un archivo de nodos y decirle al entorno (environment) que ese archivo es el que queremos usar por defecto. Sino creamos ningún archivo de nodos deberemos especificar los nodos en cada comando que ejecutemos, ya que sino no sabrá cuales son los nodos de nuestro sistema. Sería una opción, pero vamos a crear el archivo y luego cada cual es libre de usarlo o no. El archivo de configuración de nodos suele ser openmpi-default-hostfile y siguiente el ejemplo de nuestra instalación lo encontraremos en $HOME/openmpi-1.3.3/etc/openmpi-default-hostfile. Este archivo tiene su interior comentado por defecto y seremos nosotros los que añadamos los nodos manualmente, dejándolo en cada caso como corresponda. Por ejemplo:


hpcmaster
hpcnode1
hpcnode2 slots=2
hpcnode3

En el ejemplo vemos que tenemos el master y 3 nodos. El nodo hpcnode2 tiene dos cores, y por ello podremos contar con los dos.
Una vez editado nuestro archivo de nodos le diremos al entorno dónde se ubica dicho archivo:
export OMPI_MCA_orte_default_hostfile=$HOME/openmpi-1.3.3/etc/openmpi-default-hostfile
Para comprobar que lo hemos realizado correctamente podemos hacer:







ompi_info --param all all | grep hostfile

Perfecto. Ahora que ya tenemos el hpcmaster preparado, deberemos instalar los n nodos. Para ello necesitamos instalar exactamente las mismas versiones de Octave, Open MPI y openmpi_ext que en hpcmaster, así que o repetimos la operación anterior (recordad que mediante el script son sólo 20 minutos) o bien lo hacemos a mano o bien copiamos las carpetas ya compiladas en los nodos, ya que las versiones serán las mismas no habrá ningún problema. Lo único que no hará falta es especificar el archivo de nodos en los nodos, ya que los procesos se arrancarán desde el hpcmaster.

Una vez configurados los nodos, podremos hacer pruebas:

mpirun -np 8 uptime

En próximos artículos explicaré como hacer pruebas en donde podremos comprobar como el rendimiento de nuestros cálculos se mejora considerablemente.

Si ahora aplicais lo que vimos en el artículo de  Como hacer un Ubuntu Diskless (funcionando sin HD local) (Publicado el 9 de Febrero de 2010)  pues tendríamos un HPCMaster que haría de servidor de disco en donde los sistemas de archivo de los nodos estarian guardados y N nodos sin disco, pero con CPU, que es lo que nos interesa.

La imagen de un rack de nodos podría ser como esta:

En la imagen se ven los 25 nodos que yo usé para realizar este artículo. Existen algunos conceptos extra como los Power Switch, refrigeración, etc que se pueden tener en cuenta, pero dichos conceptos extra serán explicados en próximos artículos.

Espero que os haya servido de ayuda.

viernes, 19 de febrero de 2010

Mozilla Firefox 3.6.2pre en español

Para poner nuestro Firefox 3.6.2 en castellano (o en catalán, etc) simplemente necesitamos el paquete de lenguaje adecuado.



Así pues en esta URL :

http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-firefox-3.6.x-l10n/firefox-3.6.4pre.es-ES.langpack.xpi


instalaremos el complemento de idioma para castellano.



 

Y después deberemos reiniciar nuestro Firefox


 


Ahora ya lo tenemos en el idioma que deseemos.

jueves, 18 de febrero de 2010

Crear un sistema de cuotas en Ubuntu

Si queremos que los usuarios de nuestro sistema no consuman más recursos de los disponibles resulta indispensable habilitar un límite de ocupación de espacio en el disco duro. Esto es lo que se conoce como cuotas de disco y en unas pocas líneas os voy a explicar cómo es posible configurar un límite de utilización del disco en Ubuntu GNU/Linux


Instalar la característica de control de cuotas
Podemos hacerlo gráficamente o mediante linea de comandos. El paquete que ten
Publicar entrada
emos que instalar es uno llamado quota.

apt-get install quota
Una vez instalado el paquete, ya podremos indicarle al sistema las particiones en las que aplicaremos las cuotas editando /etc/fstab y añadiendo las opciones usrquota,grpquota

#

/dev/hda5 /home ext3 defaults,usrquota,grpquota 0 2

Llegados a este punto podríamos decir que ya tenemos un sistema de cuotas de disco instalado.  Ahora nos faltaría configurarlo de manera adecuada para que cada usuario del sistema tenga las limitaciones que deseemos. Esto se controla mediante unos archivos de control.


touch /home/quota.user /home/quota.group
chmod 600 /home/quota.*
mount -o remount /home
Con las tres lineas anteriores hemos creado los archivos de control y hemos remontado la partición /home para que estos archivos entren en funcionamiento cuando se inicie el control de cuotas. Para iniciarlo deberemos hacer:
quotacheck -avugm


La primera vez obtendremos un aviso del tipo...
quotacheck: WARNING - Quotafile //quota.user was probably truncated. Can't save quota settings... quotacheck: WARNING - Quotafile //quota.group was probably truncated. Can't save quota settings...
no hay que preocuparse.
Ahora el comando

quotaon /home
Activa finalmente la cuota.


Ahora ya tenemos totalmente activo el sistema de cuotas, aunque sin restricción para ningún usuario. Es el momento de editar la cuota de los usuarios. Antes de nada deberíais saber que existen dos tipos de cuota:
  • Cuotas rígidas: no será posible superar el límite y será negado el acceso.
  • Cuotas flexibles: se pueden superar y el usuario sólo recibirá un aviso de límite excedido. Tras un período de gracia - por defecto 7 días, configurable por partición - la cuota se volverá rígida.
Manos a la obra, en teoría sólo root puede hacer esto y el comando es el siguiente:


edquota -u usuario
Con ello se nos motrará un archivo con diferentes campos:
entonces se nos mostrará una serie de registros con los siguientes campos:
  • Filesystem (el sistema de archivos en el que se aplica la cuota)
  • blocks (el número de bloques máximo a ocupar. 0 = ilimitado)
  • soft (el número de KB máximo a ocupar para cuota flexible. 0 = ilimitado)
  • hard (el número de KB máximo a ocupar para quota rígida. 0 = ilimitado)
  • inodes (el número de archivos máximo. 0 = ilimitado)

Editando nuestras preferencias y guardando, las limitaciones para el usuario en cuestión quedan activadas. También podemos tomar como modelo a otro usuario ya existente copiando de uno a otro las mismas restricciones:

edquota -p usuariomodelo usuario
Evidentemente, como en casi toda la administración de un sistema GNU/Linux, luego la imaginación de cada adminitrador hace el resto:
edquota -p user1 `gawk -F: '$3 > 499 {print $1}' /etc/passwd`

 Con esto prácticamente habríamos acabado. Antes de darlo por finalizado, me gustaría hablaros del  /etc/warnquota.conf que nos servirá para automatizar un mensaje de correo electrónico para avisar a los usuarios de que estan infringiendo alguna restricción de cuotas:

  • FROM: Nombre con el cual el usuario recibirá el correo, entrecomillado. Regularmente el nombre del administrador del sistema, o simplemente “Administrador de Sistemas”
  • SUBJECT: Tema con el cual se enviará el correo. Entrecomillado.
  • CC_TO: Dirección de correo a quien enviarle copia del mensaje. Regularmente, al administrador del sistema para que esté informado del evento
  • MESSAGE: Mensaje a enviar. El caractér “|” realiza un retorno de carro, haciendo que el texto quede en una nueva línea del mensaje
  • SIGNATURE: Firma del administrador
  • GROUP_MESSAGE: Mensaje a enviar en caso de cuotas de grupo
  • GROUP_SIGNATURE: Firma del administrador hacia el grupo
 Con todo lo anterior ya tendreis lo necesario para empezar a usar el sistema de cuotas de disco.

That u don't know what you've got 'til it's gone