GNU Octave

De MateWiki
Saltar a: navegación, buscar

GNU Octave es un intérprete del lenguaje M que se distribuye como software libre. Está disponible como una aplicación en línea de comandos, aunque en futuras versiones es probable que se distribuya también con una interfaz gráfica, similar a la que tiene Octave UPM.

1 Historia

GNU Octave surgió en 1988 como un proyecto de John W. Eaton[1] para proporcionar un software de cálculo para un curso de diseño de reactores químicos en Oregon State University. De hecho, el nombre del entorno hace referencia a Octave Levenspiel[2], un famoso profesor de Ingeniería de Reactores Químicos del que Eaton fue alumno.

El proyecto fue ganando atención por parte de la comunidad de desarrolladores de software libre, y en la actualidad es un proyecto oficial auspiciado por la Free Software Foundation[3].

2 Proyecto de software libre

GNU Octave se distribuye bajo una Licencia Pública General de GNU v3. Esta licencia otorga los siguientes permisos a los usuarios del programa:

  • Libertad para usar el programa con cualquier fin, en cualquier ordenador, sin ninguna restricción.
  • Libertad para redistribuir el programa, incluso cobrando por ello.
  • Libertad para estudiar y modificar el programa, gracias a que el código fuente está disponible.
  • Libertad para redistribuir las versiones modificadas, siempre y cuando sea bajo la misma licencia que GNU Octave

Este último punto es el que hace posible que se haya creado Octave UPM como una versión derivada, y que se pueda redistribuir.

El proyecto está abierto a la participación de cualquier persona[4], en cualquier tipo de tarea (programación, redactando documentación, realizando traducciones). También acepta donativos para apoyar el desarrollo del programa[5].

Además, GNU Octave acepta la participación de estudiantes bajo los programas Google Summer of Code[6] y SOCIS de la Agencia Espacial Europea[7].

3 Dónde encontrarlo

GNU Octave se distribuye normalmente a través de los repositorios de las distribuciones de GNU/Linux[8] y de otros sistemas Unix. También están disponibles las fuentes para compilar el programa directamente, pero este proceso requiere alguna experiencia previa compilando aplicaciones para sistemas Unix, ya que el programa es bastante complejo (está desarrollado en C, C++ y FORTRAN).

Para sistemas Windows, hay un proyecto en SourceForge.net que distribuye algunos paquetes de instalación[9]. Sin embargo, el medio recomendado para instalar GNU Octave en Windows es instalar Octave UPM. En el menú Programas, Octave UPM instala una opción para acceder al intérprete original de GNU Octave, en vez de usar el entorno Octave UPM. Además, incluye muchos paquetes adicionales que son difíciles de instalar de otra manera en Windows, ya que requieren tener configurado un entorno de compilación.

4 Críticas a GNU Octave

Las críticas principales a GNU Octave como alternativa a MATLAB son dos:

  • No dispone de una interfaz gráfica
  • El intérprete es más lento que el de MATLAB

La primera crítica es historia, primero gracias al proyecto Octave UPM, y segundo porque en próximas versiones GNU Octave dispondrá también de una interfaz gráfica.

Comparación del tiempo de ejecución entre Octave con MKL, Octave con LAPACK y MATLAB

La segunda crítica en realidad no tiene que ver ni con GNU Octave ni con MATLAB. En ambos programas, muchos de los métodos numéricos para realizar operaciones con matrices no están implementados directamente, sino que hacen uso de bibliotecas de terceros optimizadas para estos fines. GNU Octave se distribuye normalmente compilado con LAPACK[10], una biblioteca que se distribuye como sofwtare libre. En cambio, MATLAB hace uso de la biblioteca MKL, desarrollada por Intel, y altamente optimizada para procesadores Intel. Esta biblioteca está disponible para diferentes sistemas bajo licencias comerciales con un alto precio. Sin embargo, existe una versión gratuita para uso personal en sistemas GNU/Linux, que permite recompilar GNU Octave y Octave UPM usando esta biblioteca. Las pruebas muestran que cuando se usa GNU Octave u Octave UPM con esta biblioteca se pueden obtener incluso rendimientos mayores con Octave que con MATLAB. En la imagen de la derecha se muestran los tiempos de ejecución de GNU Octave (curva roja), Octave UPM compilado con MKL (curva azul) y MATLAB (curva verde) para resolver sistemas lineales de orden creciente. Como se puede observar, MATLAB es ligeramente más lento que Octave UPM usando la biblioteca MKL, aunque las diferencias sean probablemente despreciables.

La licencia privativa de MKL, incluso en su versión gratuita para GNU/Linux, hace imposible la redistribución de programas compilados con esta biblioteca a menos que se pague un royalty a Intel.

5 Referencias

  1. Página personal de John W. Eaton
  2. Octave Levenspiel (Wikipedia EN)
  3. FSF Directory: Octave
  4. Octave: Get involved
  5. Octave: Donate to the project
  6. Octave: Summer of Code projects
  7. ESA Summer of code in space 2012
  8. Download GNU Octave
  9. GNU Octave Windows binaries
  10. LAPACK (Wikipedia EN)