Archive

Archive for October, 2010

Computación con programas matemáticos

October 29th, 2010

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.

General

Seminarios de Otoño de Schrodinger

October 21st, 2010

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

Anuncios