ICTS-CESGA: Access programme for 2011

The ICTS-CESGA Access Programme for 2011 is now open. The main aim is to grant access of individual researchers or research groups to ITCS-CESGA to carry out research projects, acquire knowledge or get training in technologies in use at the premises.

There are two types of access:
– Remote access to Finis Terrae Supercomputer.
– Research stays at CESGA.

Access can be requested by predoctoral students, PhDs or researchers with a minimum of three years of research experience.

CESGA invites researchers to submit access proposals for the first call from November 17th to December 16th, 2010. Proposals submitted until the deadline will be reviewed by an External Committee and the results of the selection will be notified in January 2011.

For further information please visit http://icts.cesga.es

Introducción a la probabilidad y estadística usando R

R es un entorno o lenguaje de programación para computación estadística y gráficos que proporciona una amplia variedad de técnicas estadísticas y gráficas. R es libre y se le supone uno de los mejores sustitutos en el mundo libre de programas comerciales como SPSS. Es precisamente su carácter libre lo que permite que la comunidad haya aportado hasta hoy 2632 paquetes que incrementan las funcionalidades de R, añaden nuevas librerías y funciones o resuelven problemas específicos.

R es un entorno diseñado principalmente para su uso mediante línea de comandos, es decir, en una ventana se teclean los diferentes comandos y que se van ejecutando. Como ejemplo muy sencillo, para calcular de forma interactiva el doble del número pi teclearíamos en la ventana de R:

> 2*pi
[1] 6.283185

Este método basado en un lenguaje de programación tiene la ventaja de ser muy flexible y permitir un control absoluto sobre lo que se está haciendo, además de que la creación de programas en el lenguaje de R es dirécta. Tiene el inconveniente de que requiere un conocimiento más profundo de R y la curva de aprendizaje es más larga que con una interfaz gráfica de usuario (típico programa de ventanas). Esto suele desmotivar a los nuevos  usuarios, no obstante, normalmente se consigue una mayor comprensión de los que se hace e incluso de la propia estadística. Desde el punto de vista del HPC los lenguajes de programación permiten  la programación de tareas y cálculos muy complejos. Estos programas se pueden ir modificando para calcular diferentes variantes, parámetros o modelos y su ejecución reiterada se simplifica.

No obstante, en R también se han desarrollado diferentes interfaces gráficas de usuario para R para ayudar a los usuarios principiantes u ocasionales. Sin embargo, si se va a hacer un uso continuado de R su uso por medio de comandos suele producir beneficios a largo plazo.

Introduction to Probability and Statistics Using R

En la página web de R hay numerosa documentación. Sin embargo, ha motivado esta entrada, como DiarioLinux nos contaba hace poco, que G Jay Kern ha publicado recientemente un libro de licencia libre sobre estadística: Introduction to Probability and Statistics Using R. La singular característica de este libro, como su nombre indica, es que al mismo tiempo es un manual de R pues cada una de las lecciones viene acompañada de una sección sobre Cómo hacer esto en R. Además ha creado un plugin, RcmdrPlugin, para poder seguir las lecciones en la interfaz gráfica de R y ha colgado en su página web material complementario como las grabaciones en vídeo de sus clases y otro material. El libro puede descargarse libremente o se puede comprar pagando sólamente los gastos de edición.

Seminarios online de simulaciones fluidodinámicas (CFD)

CD-Adapco relaizará los siguientes seminarios online y gratuitos.

Optimización de las simulaciones fluidodinamicas (CFD) mediante la automatización del proceso

23 de Noviembre de 2010, 11 AM (CET)

Durante esta sesión técnica on-line, se ilustraran las características necesarias para automatizar los procesos mediante la simulación computacional. Se  demostrará como la optimización de las simulaciones permite a los ingenieros dedicar menos tiempo a preparar los modelos manualmente y dedicar más tiempo para analizar los datos del diseño.

Los participantes aprenderán lo fácil que puede ser realizar simulaciones físicas complejas con pocos clics del ratón! Los ejemplos incluirán la limpieza automática de geometría, la generación de mallas de volumen, y la selección de los diferentes modelos físicos.

El webinar será útil tanto a las personas que estén familiarizadas ya con la simulación térmica y fluidodinámica, así como a las personas que desean afinar la integración del cálculo CFD en su actual flujo de trabajo. Los ejemplos presentados serán aplicables a una gama completa de aplicaciones, desde gestión térmica de sistemas electrónicos hasta simulaciones del vano motor de los vehículos o análisis de turbinas de gas.

Los participantes recibirán una licencia de evaluación de STAR-CCM+ de 50 horas para que puedan analizar los modelos presentados durante el webinar (ver condiciones). El Servicio General de Informática Aplicada a la investigación (IZO-SGI) tiene licencias de STAR-CCM+.

Más información en esta página de CD-Adapco.

CFD simulation for the advanced design of nuclear system

19 de Noviembre de 2010, 8:30 AM (CET)

This online webinar will highlight the latest applications of computational fluid dynamics in the industry. Nuclear power engineers and scientist will gain greater insight into the benefits of simulation and when to supplement conventional analysis methods with CFD. Presenters will discuss the following applications:

– Reactor design
– Fuel bundle flow/thermal stress
– Cooling systems.
– Near field Ventilation inside housings
– Far field Ventilation outside of buildings
– Fuel reprocessing and storage
– Transportation

Using STAR-CCM+ will demonstrate the benefits of using a complete, integrated simulation environment. The integrated process will show how engineers can model the performance of these systems with unprecedented levels of acuracy. Trainers will also demonstrate problem setup to produce repeatable calculations that follow proper protocols and meet regulatory compliancy standards.

Más información en esta página de CD-Adapco.

Más información sobre otros seminarios próximamente y pasados.

mv

mv

Regla mnemotécnica

mvMove

El comando mv nos permite mover o renombrar archivos. Lo mejor es ilustrarlo con ejemplos. Renombrar  un archivo

$ mv outfile outfile_copia_seguridad

Mover un archivo en otra carpeta, en este caso en la carpeta viejo.

$ mv outfile viejo/
$ mv outfile viejo/outfile
$ mv outfile viejo/outfile_viejo

Los dos primeros comandos son equivalentes y el tercero lo mueve con otro nombre.

Podemos mover varios ficheros en otra carpeta (viejo) en un sólo comando

$ mv input_file output_file README viejo

También podemos renombar o mover carpetas. Si la carpeta viejo no existe el siguiente comando renombra la carpeta resultados con el nombre viejo

$ mv resultados viejo

y si la carpeta viejo existe moverá  la carpeta resultados dentro de la carpeta viejo.

Hay más modificadores pero no son especialmente interesante o funcionales para un nivel básico.

Computación con programas matemáticos

Existen muchos programas para realizar cálculos matématicos, en el ámbito comercial tenemos Mathematica, Maple, Matlab, SPSS, etc. y como software libre podemos encontrar a Maxima, Axion, Scilab, Octave, FreeMat, SciPy, PSPP, R, etc. En el número 6 de la revista Linux+ se hacía una pequeño análisis de Maxima, Scilab y Octave aunque centrandose sobre todo en usabilidad. En este sentido uno de los factores más atractivos de estos programas es la interfaz gráfica con la que el usuario interactúa y la generación de gráficos que lleva integrada.

No obstante, desde el punto del HPC son más importantes otros aspectos relacionados con el rendimiento y en este artículo vamos a hablar un poco de estos programas pero desde una perspectiva del cálculo científico.

El problema que se plantea es el de un investigador que quiere resolver su un problema lo más eficientemente posible o en el menor tiempo. Este tiempo incluye el necesario para programar más el de ejecución. En el caso de investigadores que requieran programar mucho y calcular menos estos programas son una gran ayuda. Investigadores en cambio que vayan a programar poco pero luego tengan mucho calcular tal vez debería pensar pausadamente si uno de estos programas es una buena solución.

Rendimiento

Para evaluar el rendimiento hemos ejecutado en máquinas Xeon de última generación una serie de programas matemáticos y hemos medido sus tiempos de ejecución obteniendo a partir de ello una puntuación. Mas detalles en el SGI-IZO.

Nosotros vamos a analizar tres programas Matlab, Scilab y Octave (la interfaz gráfica de Octave se llama QtOctave y se instala separadamente). Los tres programas son muy similares y compatibles entre sí. Matlab es comercial y podemos obtener los binarios. Scilab y Octave son programas libres y podemos instalar binarios o descargar el código fuente del programa y compilarlo (hacer un binario) para nuestro ordenador.

La primera pregunta que podemos hacernos es si es mejor instalar el programa o compilar el programa. En el caso de Matlab no hay alternativa pero si para los códigos libres. Para ello en la tabla siguiente podemos ver los tiempos de ejecución de estos programas instalados y compilados (Un valor más grande significa más lento).

Compilado Instalado
Scilab 16 29
Octave 15 40

El proceso de compilación puede volverse tedioso e incluso complicado pero vemos que los programas compilados junto con buenas librerías matemáticas doblan o más en velocidad a los binarios instalados.

Scilab Octave Matlab
Score 16 15 10

En la tabla se observa como matlab en los benchmark que hemos empleado es el más rápido de los tres programas. No obstante, el benchmark consta de 15 programas diferentes y si miramos los detalles vemos que Scilab, Octave y Matlab tienen tiempos muy similares en 14 de los benchmark pero en uno Matlab se ejecuta casi de forma instantánea mientras que Octave y Scilab tarda entorno al minuto. Matlab usa compilación Just-In-Time que aún no ha sido incluida en Octave ni Scilab (si en FreeMat). Esto hace que las ejecuciones de bucles sean especialmente rápida en Matlab mientras que en Octave y Scilab habría que usar otras estrategias como tratar de vectorizar y operar con matrices en vez de bucles para superar este bache. Si eliminamos este benchmark y rehacemos nuestra tabla obtenemos

Scilab Octave Matlab
Score 11 8 10

Como vemos si eliminamos la ejeción masiva de bucles los tres programas tienen rendimientos muy similares.

Conclusión

Un análisis previo nos puede ayudar a decidir la mejor solución a la hora de escoger el programa a usar y ayudarnos a ahorrar mucho tiempo a largo plazo, aunque sea a costa de un esfuerzo inicial. De este modo vemos que desde la instalación estándar de Octave con una puntuación de 40 a la última ejecución con una puntuación de 8 hemos reducido en 5 veces los tiempos de ejecución. También a la vista de las dos últimas tablas donde la diferencia radica en uno de los 15 programas utilizados, nos damos cuenta que el mejor benchamark que podemos hacer es con nuestros propios códigos, dado que según la programación o funciones que se usen el resultado puede decantarse por uno u otro.

Otra cuestión a tener en cuenta es si debemos de programar en un lenguaje de más bajo nivel como C, C++ o Fortran o emplear los lenguajes de más alto nivel de los programas mátemáticos. Los lenguajes de más bajo nivel como C tienen la ventaja de que se pueden compilar y correr en prácticamente cualquier ordenador y de forma muy eficiente dándonos además mucha independencia. Los lenguajes de los programas matemáticos tienen la enorme ventaja de que sus estructuras de datos son más flexibles y los hace mucho más fáciles de programar pero estamos atados a  este tipo de programas, a las máquinas en la que es posible instalarlos (o compilarlos) y su rendimiento ejecutándose.

Seminarios de Otoño de Schrodinger

Schrödinger is a scientific leader in computational software for drug design for pharmaceutical and biotechnology research

Schrodinger se complace en anunciar una nueva serie de 6 seminarios vía
web que cubren diferentes áreas como quimioinformática, herramientas de
visualización y aspectos prácticos de depuración de herramientas
computacionales en un entorno de producción. Las presentaciones
programadas incluyen:

– Schrodinger Scripts: Custom tools for lead generation, presentation,
and data analysis

– MM-GB/SA scoring procedure: A scientific and practical perspective

– Practical problem-solving with Canvas

– Maestro Elements: A standalone visualization and modeling program for
medicinal chemists

– Ligand conformational sampling using the ConfGen algorithm

– Core Hopping and R-group Analysis: Computational tools for rational
modification of molecular scaffolds and decorations

Los webinarios comenzarán el próximo 26 de Octubre y se celebrarán dos por
semana hasta el 11 de Noviembre. Una grabación de los webinarios estará
también disponible para todos los registrados, tanto si han podido
seguirlo vía web como si no les ha sido posible. Las presentaciones tienen
una duración aproximada de una hora e incluyen la posibilidad de
participar en una sesión de preguntas y respuestas al final del evento.

El registro al webinario por adelantado se realiza a través del siguiente
enlace:

http://www.schrodinger.com/Fall2010Webinars.html

Cursos interesantes de Matlab

Bilbao

Técnicas de Programación de MATLAB

Bilbao: 22 septiembre

Técnicas de Programación de MATLAB proporciona experiencia práctica utilizando las características del lenguaje MATLAB para escribir código eficiente, robusto y bien organizado. Estos conceptos son la base para escribir aplicaciones, desarrollar algoritmos y extender las capacidades built-in de MATLAB. Este curso de un día también explora la creación de clases y el uso de objetos. Detalles sobre optimización del rendimiento también se cubren durante el curso, así como herramientas para escritura, depuración y optimización del código (más información). Temas incluidos:

  • Programando correctamente
  • Estructurando datos
  • Estructurando el código
  • Clases y objetos


MATLAB y Simulink para Diseño de Control

Bilbao: 08-09 noviembre

Este es un curso práctico de dos días diseñado para proporcionar una comprensión general de cómo utilizar las herramientas de diseño de sistemas de control de MathWorks para acelerar el diseño de sistemas de control realimentados (más información). Entre los temas incluidos:

  • Visión general del diseño de sistemas de control
  • Modelado de sistemas
  • Análisis de sistemas
  • Diseño de controladores
  • Implementación de controladores

Otras ciudades

Cálculo Paralelo con MATLAB
Madrid: 27-28 octubre

Cálculo Paralelo con MATLAB es un curso de dos días que introduce las herramientas y técnicas para escribir algoritmos paralelos y distribuidos en MATLAB. El curso muestra cómo utilizar Parallel Computing Toolbox™ para incrementar tanto la velocidad como la escala del código ya existente. Los asistentes que trabajen con simulaciones de tiempo de ejecución muy largo o con grandes conjuntos de datos se beneficiarán de las demostraciones prácticas y ejercicios del curso (más información). Temas incluidos:

  • Trabajando con el pool de MATLAB
  • Tareas distribuidas
  • Consideraciones sobre programación distribuida
  • Prototipado de tareas paralelas
  • Consideraciones sobre programación paralela
  • Aumento de escala con múltiples sistemas

Fundamentos de MATLAB
Madrid: 28-30 septiembre; 23-25 noviembre

Fundamentos de MATLAB es un curso de tres días que proporciona una completa introducción al entorno de cálculo técnico de MATLAB. Al finalizar el curso, los asistentes habrán adquirido las habilidades necesarias para ser usuarios productivos con MATLAB. No son necesarios conocimientos previos de MATLAB y el curso está estructurado para la asimilación de los conceptos a través de ejemplos prácticos y ejercicios. De este modo, las competencias con MATLAB se desarrollan de una manera natural, con énfasis en la aplicación práctica. Durante el curso se exploran temas relacionados con análisis de datos, visualización, modelado y programación (más información). Temas incluidos:

  • Interfaz de usuario de MATLAB
  • Ejecución de comandos y creación de variables
  • Análisis sobre vectores y matrices
  • Visualización de vectores y matrices de datos
  • Trabajando con archivos de datos
  • Trabajando con tipos de datos
  • Automatización de comandos con scripts
  • Escritura de programas con estructura lógica y control de flujo
  • Escritura de funciones

Fundamentos de MATLAB para Aplicaciones Financieras
Barcelona: 04-06 octubre
Madrid: 02-04 noviembre

MATLAB para la Optimización de Carteras
Barcelona: 07 octubre

Comodines: ? y *

Los comodines son los caracteres ? y *

. A la hora de hacer referencia a nombres de ficheros sustituyen a cualquier carácter y se pueden usar con cualquier comando.

  • ?: Sustituye a un único carácter.
  • *: Sustituye a una cadena de carácteres.

Ilustrémoslo con unos ejemplos. Si en la carpeta actual listo los ficheros que tengo con el comando ls

$ ls
datos8.txt
datos9.txt
datos10.txt
resultados

Puedo listar por ejemplo sólo los ficheros de datos pidiendo que se listen todos los ficheros que comiencen con datos, es decir:

$ ls datos*
datos8.txt
datos9.txt
datos10.txt

El comando “ls datos*.txt” produce el mismo resultado en este caso. El comodín ? produce un efecto diferente pues solo sustituye un carácter

$ ls datos?.txt

datos8.txt
datos9.txt

Los comodines se pueden usar con cualquier comando. Si por ejemplo queremos mostrar todos los ficheros de datos podemos usar el comando cat con los comodines

$ cat datos*

y si queremos mostrar todos los ficheros podemos hacerlo diciendo que nos muestre todos los ficheros que se llaman “algo”, es decir:

$ cat *

que equivale en este caso a “cat datos8.txt datos9.txt datos10.txt resultados“.

Hands-on workshop on excitations in solids and nano-structures from first-principles

Trieste, 18-22 October 2010

The aim of this hands-on workshop is to introduce advanced concepts of TDDFT, GW and BSE. Short introductory theoretical lectures will be followed by extensive hands-on classes. Participants will have the opportunity of testing on realistic systems the theoretical tools by using several public codes and dedicated tutorials.

More info at Democritos-Nanoexcite2010

tail

tail

Regla mnemotécnica

tail: Tail, final

Un comando sencillo que se también se usa para mostrar en pantalla el contenido de ficheros, pero las últimas líneas. Por defecto tail nos mostrará las 10 últimas líneas pero podemos indicarle cuantas queremos que nos muestre. Para visualizar ficheros muy grandes, que abrirlos con editor puede resultar pesado para el ordenador, si sólo queremos ver el final del fichero este comando es ideal pues responde instantáneamente.

Como ejemplo sencillo, si el fichero direccion contiene la dirección del Campus de Leioa-Erandio podemos ver su contenido con esta orden, como tiene menos de 10 líneas nos lo muestra completamente, luego le pediremos que nos imprima solo las 2 últimas líneas:

$ tail direccion

Sarriena S/N
48940 Leioa
Bizkaia

$ tail -2 direccion

48940 Leioa
Bizkaia

El comando tiene alguna otra posibilidad pero la descrita es la principal.