Informática Aplicada a la Investigación Rotating Header Image

septiembre, 2009:

Servicios

El Servicio General dispone de hardware propio, que está disponible para el uso de la comunidad científica. Campos y aplicaciones posibles en las que estos recursos pueden ser de utilidad son:

  • Simulación.
    • Simulación de materiales y moléculas a nivel atómico con dinámica molecular.
    • Quantum montecarlo.
    • Métodos de estructura electrónica en general.
    • Modelización de biopolímeros (proteinas, DNA …) a nivel estructural y/o dinámica molecular.
    • Simulación de materiales a nivel macroscópico difusión de calor, resistencia al esfuerzo,…
    • Simulaciones metereológicas y de fluidos.
  • Aplicaciones de Bioinformática.
  • Renderizado de imágenes.
  • Tratamiento de bases de datos.
  • Cálculos que por sus características se necesite o recomiende un ordenador de potencia superior, o que sin tal necesidad, sea conveniente que residan en servidores.
  • Simulación de mercados bursátiles, gestión de empresas,…
  • Cálculo paralelo.

Como Mandar Wien2k

Wien2k requiere de un fichero especial. Los scripts se envían al sistema de colas con el comando

qsub script_file

script_wien de script que ejecuta el programa run_lapw en paralelo es

#!/bin/bash
#PBS -l nodes=[val]:ppn=[val]
#PBS -l walltime=[val]
#PBS -l mem=[val]

# Vamos a nuestro home
cd $PBS_O_WORKDIR

#Creamos el fichero .machines
cat $PBS_NODEFILE |cut -c1-6 >.machines_current
aa=$(wc -l .machines_current |cut -d " " -f 1)
echo '#' > .machines

i=1
while [ $i -le $aa ];do
echo -n '1:' >>.machines
head -$i .machines_current |tail -1 >> .machines
let i=i+1
done
echo 'granularity:1' >>.machines
echo 'extrafine:1' >>.machines

#Nuestro directorio de scratch
scrt=/scratch/$USER/$(echo $PBS_O_WORKDIR |xargs basename)
outdir=bukatuta_$PBS_JOBID
export SCRATCH=$scrt/scratch

#Creamos el directorio
mkdir $scrt
mkdir $scrt/scratch

#Copiamos los archivos al directorio scratch
#Usaremos cp -r $scrt para copiar también subdirectorios.
cp $PBS_O_WORKDIR/* $scrt
cp .machines $scrt

#Nos movemos de directorio
cd $scrt

#Ejecutamos WIEN2k en paralelo
run_lapw -p
#Movemos los archivos finales
mkdir  $PBS_O_WORKDIR/$outdir
mv -f $scrt/* $PBS_O_WORKDIR/$outdir
mv -f $scrt/.machines $PBS_O_WORKDIR/$outdir

#Borramos el directorio
rmdir $scrt
rm .??*

Las líneas que comienzan con #PBS son órdenes para el gestor de colas que seleccionan:

nodes: Número de nodos en los que se va a ejecutar el programa (ejemplo [val]=2).

ppn: Número de microprocesadores por nodo que va a usar el programa (ejemplo [val]=4).

mem: Memoria RAM reservada para el cálculo, medida en mb o gb (ejemplo: [val]=100mb).

walltime: Tiempo de microprocesador reservado en formato hh:mm:ss (ejemplo: [val]=24:00:00).

En el script la variable $USER devuelve el nombre del usuario, $PBS_O_WORKDIR el directorio de trabajo desde donde se ejecuta el comando qsub$PBS_JOBID el número de identificación del trabajo.