Archivo de la categoría: Maths

R, RCommander and RStudio

General information

R 3.3.3 is a freely available language and environment for statistical computing and graphics which provides a wide variety of statistical and graphical techniques: linear and nonlinear modelling, statistical tests, time series analysis, classification, clustering, etc. Please consult the R project homepage for further information.

RStudio an RCommander are a graphical front ends for R.

Installed packages

abind, ape, biomformat, cummeRbund, DCGL, DESeq2, DEXSeq, e1071, edgeR, FactoMineR, GEOquery, lavaan, metagenomeSeq, mnormt, optparse, psych, randomForest, Rcmdr, RColorBrewer, ReactomePA, RUVSeq, vegan, WGCNA, xlsx.

Please, ask if you need any more.

How to use it

To use R in the queue scripts execute:

/software/bin/R CMD BATCH  R-input-file.R

to execute RStudio you must connect to Txinparta or Katramila with X2Go and execute

rstudio

to execute RCommander you must connect to Txinparta or Katramila with X2Go and execute R. Then inside R load

library(Rcmdr)

More information

R web page.

rstudio web page.

R-3.2

Información general

R is ‘GNU S’, a freely available language and environment for statistical computing and graphics which provides a wide variety of statistical and graphical techniques: linear and nonlinear modelling, statistical tests, time series analysis, classification, clustering, etc. Please consult the R project homepage for further information.

Paquetes Instalados

lavaan, mnormt, psych, Rcmdr, abind, e1071, xlsx, biocLite(),FactoMineR

Si se requiere alguno más, por favor, haznoslo saber.

Cómo usar

Para usar R-3.2  ejecutar:

/software/R-3.2.0/bin/R CMD BATCH input.R

Más información

http://cran.r-project.org/

CPLEX

Información general

CPLEX proporciona algoritmos matemáticos robustos, permite resolver problemas con millones de variables y restricciones. Versión 12.6.3.

Características

  • Automatic and dynamic algorithm parameter control
    IBM ILOG CPLEX Optimizer automatically determines «smart» settings for a wide range of algorithm parameters, usually resulting in optimal linear programming solution performance. However, for a more hands-on approach, dozens of parameters may be manually adjusted, including algorithmic strategy controls, output information controls, optimization duration limits, and numerical tolerances.
  • Fast, automatic restarts from an advanced basis
    Large problems can be modified, and then solved again in a fraction of the original solution time.
  • A variety of problem modification options, such as:
    – The ability to add and delete variables
    – The ability to add and delete constraints
    – The ability to modify objective, right-hand side, bound and matrix coefficients
    – The ability to change constraint types
  • A wide variety of input/output options, such as:
    – Problem files: read/write MPS files, IBM ILOG CPLEX Optimizer LP files, MPS basis and revise files, binary problem/basis files
    – Log files: session information and various solution reports
    – Solution files: ASCII and binary solution files
    – IBM ILOG CPLEX Optimizer messages: Each message type (such as RESULTS, WARNINGS or ERRORS) can be directed to specified files, or completely suppressed.
  • Post solution information and analysis, including:
    – Objective function value
    – Solution variable and slack values
    – Constraint dual values (shadow prices)
    – Variable reduced costs
    – Right-hand side, objective function, and bound sensitivity ranges
    – Basic variables and constraints
    – Solution infeasibilities (if any exist)
    – Iteration/node count, solution time, process data
    – Infeasibility (IIS) finder for diagnosing problem infeasibilities
    – Feasibility optimizer for automatic correction of infeasible models

Cómo usar

Para usar CPLEX ejecutar:

/software/bin/cplex/cplex

Benchmark

Hemos realizado un pequeño benchmark usando COIN-OR, ver la [intlink id=»1397″ type=»post»]página de COIN-OR[/intlink].

Más información

Página web de CPLEX.

Matplotlib

Información general

Librerías para cálculo matemático con Python. Se han instalado también las librerías numphy y el intérprete ipython.

Se ha requerido recompilar python, se deben usar ejecutando

/software/bin/python

/software/bin/ipython

Más información

Página web de Matplotlib.

Página web de Numpy.

Página web de ipython.

Grace

Información general

Está instalada la versión 5.1.19. Grace es un herramienta WYSIWYG (What you see is what you get, es decir, Lo que Ves es lo que Consigues) para hacer gráficos en dos dimensiones de datos numéricos.

Para ejecutarlo hay que utilizar el comando:

xmgrace

Más información

Más información y documentación en la página web de Grace.

scilab

Versión 5.1.1 en (Itanium, Opteron y Péndulo) y 5.2.2 en Xeon del programa matemático de cálculo numérico.

Características generales

Está instalado en los nodos opteron de Arina y en Péndulo. La interfaz gráfica sólo está disponible en Péndulo y Guinness.
Similar en funcionalidades a Matlab. Incluye herramientas para:

  • Visualización 2D y 3D.
  • Lenguaje de programación (scripts de scilab).
  • Resolución de equaciones diferenciales.
  • Modelizador y simulador de sistemas híbridos: tratamiento de señal, sistemas de control, sistema biológicos,…
  • Álgebra simbólica (Maple).

Como ejecutar Scilab

Usar el siguiente comando:

scilab

y abrirá en Péndulo la interfaz gráfica y en Maiz una terminal. En los scripts para lanzar a las colas usar la línea

/software/bin/scilab -f script_scilab > output_file

donde script_scilab es el archivo con las ordenes para Scilab.

Más información

Más información y documentación de Scilab en http://www.scilab.org/.

Benchmarks

Hemos realizado unos benchmarks comparando [intlink id=»606″ type=»post»]Scilab 5.2[/intlink],  [intlink id=»612″ type=»post»]Octave 3.2[/intlink] y [intlink id=»600″ type=»post»]Matlab 7.10[intlink] en las máquinas del servicio.   Los resultados los presentamos en 3 tablas, la primera es un resumen de los resultados, la segunda son los resultados del bencharmark grande e incluimos una tercera con los mismos benchmark pero parámetros más pequeños para poder comparar con Péndulo.

Tabla 3: Resumen de resultados de los benchmark grandes. El score es la media geométrica de los 3 scores del bechmark grande.
Octave Scilab Matlab
Itanium Opteron Xeon Opteron Xeon Opteron Xeon
Total score 47.6 31.4 14.5 31.6 15.6 22.0 9.5

En resumen, las últimas versiones de Matlab y Octave tienen un rendimiento similar en los nodos Xeon (salvo por la ejecución de loops en Octave, ver más abajo). Scilab es aproximadamente un 50% más lento que los anteriores. En cuanto a las máquinas los nuevos nodos Xeon son mucho más potentes que los Itanium o los Opteron doblándoles en rendimiento (Scilab y Octave han sido compilados y linkados con librerías optimizadas, las versiones instaladas son el doble de rápidas que las versiones binarias instalables).

En la primera tabla resumen vemos la puntuación obtenida por los tres programas en las diferentes máquinas del servicio. Nos centraremos en las máquinas xeon que son las más nuevas. En ellas aparentemente Matlab es el más rápido. No obstante, si miramos detalladamente a los tiempos de ejecución de la tabla 4 vemos que los tiempos de Octave y Matlab son totalmente comparables salvo el benchmark en el que se crea una matriz de Toeplitz (Programation 4) en el que se testea la ejecución de bucles. La tecnología de Matlab permite ejecutar los loops de forma muy rápida mientras que Octave todabía no puede. En este sentido se recomienda en Octave usar operaciones vectoriales o funciones optimizadas en vez de bucles de forma intensiva (Por ejemplo, crear la misma matriz del benchmark en Octave con la función toeplitz(c,r) es casi instantáneo).

Del benchmark pequeño en el que incluímos a Péndulo vemos que obtenemos un rendimiento para Péndulo próximo a los Itanium y Opteron. En Péndulo no se han compilado sino que se han instalado los binarios.

El número de licencias de Matlab es limitado, pero la gratuicidad de Scilab y Octave le confieren ventaja en caso necesitar calcular mucho ya que no hay límite de licencias ni procesos de ejecución..

Tabla 4: Resultados de los benchmark grandes medido en segundos. El score es la media geométrica eliminando el mejor y el peor resultado. Al final se incluye una descripción de los benchmark. ++ tiempos muy largos, no se usan en la media geométrica.
Octave Scilab Matlab
Itanium Opteron Xeon Opteron Xeon Opteron Xeon
Matrix calculation
Matrix calc 1 108.6 35.9 12.8 93.0 33.2 24.5 12.4
Matrix calc 2 49.5 3.8 7.5 9.8 9.3 18.1 13.4
Matrix calc 3 122.3 32.8 25.1 27.8 25.6 24.8 18.4
Matrix calc 4 72.2 137.0 41.5 172.1 80.2 132.8 40.8
Matrix calc 5 37.2 42.5 17.9 40.0 18.0 54.8 18.7
Score 72.9 36.8 17.9 46.9 24.8 32.1 16.6
Matrix functions
Matrix func 1 2.6 1.2 0.5 11.0 0.9 1.7 0.6
Matrix func 2 153.5 99.5 37.2 290.9 71.8 124.0 39.9
Matrix func 3 48.1 50.8 22.1 48.1 21.6 65.8 23.0
Matrix func 4 57.1 72.8 29.1 66.1 29.8 106.5 32.8
Matrix func 5 32.1 42.9 16.1 39.7 16.3 51.0 16.5
Score 44.5 54.1 21.8 50.2 21.9 71.0 23.2
Programation
Programation 1 4.7 2.2 1.4 2.8 1.7 4.7 3.1
Programation 2 48.1 22.2 5.3 18.4 5.7 13.7 6.4
Programation 3 3.9 1.5 0.4 3.7 1.3 1.6 0.6
Programation 4 161.2 76.2 66.1 35.5 35.6 0.1 0.0
Programation 5 ++ ++ ++ ++ ++ ++ ++
Score 33.2 15.5 7.8 13.4 7.0 4.7 2.2
Tabla 5: Resultados de los benchmark pequeños medido en segundos. El score es la media geométrica eliminando el mejor y el peor resultado. Al final se incluye una descripción de los benchmark.
Octave Scilab Matlab
Pendulo Itanium Opteron Xeon Pendulo Opteron Xeon Opteron Xeon
Matrix calculation
Matrix calc 1 2.2 3.1 2.4 1.0 4.3 5.6 2.8 2.1 1.1
Matrix calc 2 0.9 5.2 0.3 0.7 1.1 1.1 0.9 1.2 1.2
Matrix calc 3 1.5 1.8 1.4 1.3 1.9 1.8 1.3 1.0 0.9
Matrix calc 4 1.8 1.8 3.8 1.2 18.4 6.4 2.3 3.0 1.2
Matrix calc 5 1.0 2.5 1.4 0.6 3.5 1.7 0.6 1.6 0.6
Score 1.4 2.4 1.7 0.96 3.1 2.6 1.7 1.6 1.1
Matrix functions
Matrix func 1 0.4 0.63 0.4 0.2 0.9 2.6 0.5 0.8 0.3
Matrix func 2 3.0 3.3 4.3 1.9 7.5 9.4 2.3 4.3 2.0
Matrix func 3 1.1 1.0 1.6 0.7 4.3 1.6 0.6 1.6 0.7
Matrix func 4 1.3 1.3 2.0 0.9 5.2 2.7 0.9 2.3 0.9
Matrix func 5 0.9 0.7 1.2 0.5 3.2 1.6 0.5 1.2 0.5
Score 1.1 1.0 1.6 0.65 4.2 2.2 0.67 1.7 0.66
Programation
Programat. 1 0.5 0.6 0.6 0.4 0.6 0.8 0.5 1.1 0.9
Programat. 2 30.0 2.6 3.9 1.1 4.3 3.5 1.2 2.6 1.3
Programat. 3 0.6 0.3 0.4 0.1 1.0 1.2 0.4 0.3 0.2
Programat. 4 8.2 14.3 7.2 5.8 3.3 3.7 3.2 0.0 0.0
Programat. 5 24.0 27.8 36.0 14.8 67.8 57.4 33.2 38.9 17.5
Score 4.9 2.8 2.6 1.4 2.4 2.5 1.3 0.9 0.58



Descripción de los benchmark.

Matrix calculation
Matrix calc Creation, transp., deformation of a matrix.
Matrix calc Normal distributed random matrix ^1000.
Matrix calc Sorting of random values.
Matrix calc Cross-product matrix (b = a’ * a).
Matrix calc Linear regression over a matrix (c = a b’).
Matrix functions
Matrix func FFT over random values.
Matrix func Eigenvalues of a random matrix.
Matrix func Determinant of a random matrix.
Matrix func Cholesky decomposition of a matrix.
Matrix func Inverse of a random matrix.
Programation
Programation Fibonacci numbers calculation (vector calc).
Programation Creation of a Hilbert matrix (matrix calc).
Programation Grand common divisors of pairs (recursion).
Programation Creation of a Toeplitz matrix (loops).
Programation Escoufier’s method on a matrix (mixed).

Matlab

Información general

Versión 7.9 (2009b) en los nodos Opteron y 7.12 (2010a) en los Xeon (por temas de compatibilidad)  del versátil programa matemático que incluye cálculo numérico, simbólico, visualización y lenguaje de programación (scripts de Matlab).

Cómo ejecutar Matlab

En modo interactivo (con interfaz gráfica):

Sólo está disponible para arquitectura Opteron y Xeon  por lo que tenéis que usarlo desde Guinness o Maiz, [intlink id=»48″ type=»post»] aquí como conectarse[/intlink].. El interfaz gráfico se puede ejecutar con

matlab

En el sistema de colas

En los scripts para lanzar a las colas usar la línea

/software/bin/matlab < input_file > output_file

donde input_file es el archivo con las ordenes para Matlab y output_file el fichero que recojerá la salida estándar.

Hemos tenido problemas con ficheros .m de más de 169 líneas. De suceder y para evitarlo llamar ha estos programas dentro de otro pequeño programa .m.

Para [intlink id=»19″ type=»post»]lanzar el cálculo[/intlink] a los nodos incluir la directiva opteron para que vaya a este tipo de nodos. Además, sólo existen dos licencias, por el momento, por lo que hemos creado una cola especial para evitar que los trabajos en los nodos mueran en las colas por falta de licencias. Vuestros scripts deben incluir entonces para dirigirlo a los Xeon:

#PBS -q matlab
#PBS -l nodes=1:ppn=1:xeon

o para los Opteron:

#PBS -q matlab
#PBS -l nodes=1:ppn=1:opteron

Benchmarks

Se han realizado unos [intlink id=»606″ type=»post»]benchmark[/intlink] comparando [intlink id=»612″ type=»post»]Octave[/intlink], [intlink id=»606″ type=»post»]Scilab[/intlink] y Matlab.

Toolboxes

Está instalado el toolbox libre Ezyfit.

Está instalado el toolbox de matlab Optimization.

Está instalado el toolbox de matlab Statistics.

Más información

Matlab home page.

Documentación en línea.

Mathematica

Información general

Versátil programa matemático que incluye cálculo numérico, simbólico, visualización y lenguaje de programación (scripts de Mathematica). En Guinness y sus nodos oxeon está instalada la versión 10.0 y en Arina (en los nodos itanium) y la versión 6.0 dado que no están soportadas versiones posteriores. En el resto de nodos más nuevos la versión 11.2 de Mathematica,

Mathematica incluye paralelismo.

Cómo ejecutar Mathematica

En modo interactivo

El interfaz gráfico se puede ejecutar con

mathematica

la terminal de Mathematica con

math

Nota: Existen ciertos problemas con las fuentes en la interfaz gráfica. Está puede funcionar si se ignoran (cerrar la ventana de error con el botón de aspa), pero los símbolos puede que no se vean correctamente. Para resolverlo hay que instalar localmente en el ordenador personal las fuentes.

En el sistema de colas

En los scripts para lanzar a las colas usar la línea

/software/bin/math < input > output

donde input es el archivo con las ordenes para Mathematica y output el fichero donde se guardará la salida por pantalla.

Más información

Mathematica home page.

Documentación en línea.