Wolfram Mathematica
Servidor de licencias
El iC1 dispone de 4 licencias de Mathematica 12.0, con 8 kernels cada una (32 kernels en total). Estas licencias se pueden usar directamente en tu ordenador personal, en PROTEUS o en ambos simultáneamente.
A continuación se describen estos tres modos de funcionamiento.
1. Cómo usar Mathematica en un PC
Descarga el software
Puedes descargar la aplicación desde aquí:
Configuración inicial
Una vez instalado, hemos de indicar que estamos usando un servidor de licencias para poder empezar a usar el programa. También deberemos de dar de alta nuestra IP para poder acceder, para lo cual debemos contactar con la administración del sistema
- Iniciamos el programa y seleccionamos «Other ways to activate»
- Elegimos la opción correspondiente al Servidor de Licencias en red
- Y finalmente, escribimos proteusmath.ugr.es en el campo correspondiente
2. Cómo usar Mathematica en PROTEUS
Podemos usar Mathematica en PROTEUS de manera interactiva y como trabajo desatendido. En ambos casos se hace a través del gestor de colas Slurm.
A la sesión gráfica interactiva se accede a través de una plataforma web:
Una vez logeados, iremos a Interactive Apps y seleccionaremos Mathematica. Seleccionaremos los recursos y el tiempo que se van a necesitar y el sistema los reservará. Una vez hecha la reserva (podemos solicitar que nos envíe un email cuando se realice), podremos empezar a usar el programa. Se recomienda aumentar la calidad de imagen y reducir la compresión para mejorar la visualización.
La segunda opción para usar Mathematica en PROTEUS es como trabajo desatendido, es decir, enviarlo a la cola de trabajos para que sea procesado mediante un script que no necesite interacción con el usuario. La forma de usar esta opción es la habitual que con el resto de trabajos. Solo hay que tener en cuenta solicitar una de las licencias disponibles para el trabajo, cargar el programa en el entorno y usar el correspondiente ejecutable. Ejemplo:
#!/bin/bash #SBATCH --job-name=test ## Name of the job. #SBATCH -p standard ## partition/queue name #SBATCH --nodes=1 ## (-N) number of nodes to use #SBATCH --ntasks=1 ## (-n) number of tasks to launch #SBATCH --cpus-per-task=1 ## number of cores the job needs #SBATCH --mem=500 ## 500Mb of memory #SBATCH --time=00:02:00 ## run time 2 min #SBATCH --error=slurm-%J.err ## error log file #SBATCH --licenses=mathematica:1 module load Mathematica math -run file.m
3. Cómo usar el frontend (interfaz gráfica) en un PC y PROTEUS para hacer los cálculos
Con esta opción, podremos usar la interfaz gráfica en nuestro PC (requiere que Mathematica esté instalado) pero que la computación se realice en PROTEUS.
La configuración es un poco más compleja que en los pasos previos. Se basa en la adición de un nuevo kernel siguiendo los siguientes pasos:
- Pasos previos: descargar el siguiente archivo: mathematicaRemoteKernel
- Descomprimirlo. Habrá dos archivos: init.m y tunnel.sh
- init.m: hay que colocarlo en nuestra cuenta de PROTEUS, en
~/.Mathematica/Kernel
- tunnel.sh: hay que guardarlo en alguna carpeta de nuestro PC, comprobar que tiene permisos de ejecución y anotar el path para posteriormente
- init.m: hay que colocarlo en nuestra cuenta de PROTEUS, en
- Descomprimirlo. Habrá dos archivos: init.m y tunnel.sh
- Añadir un nuevo kernel: en Mathematica, ir a Evaluation->Kernel Configuration Options y darle a añadir un nuevo kernel
- Editar los parámetros del nuevo kernel: elegir un nombre, por ejemplo RemoteKernelPROTEUS, y seleccionar Advanced Options
- En Arguments to MLOpen indicar:
-LinkMode Listen -LinkProtocol TCPIP -LinkOptions MLDontInteract -LinkHost 127.0.0.1
- Y en Shell command to launch kernel:
"/path-to/tunnel.sh" usuario@proteus.ugr.es:2222 "`linkname`" cores memoria
- Hay que indicar el path donde previamente hayamos guardado el fichero tunnel.sh
- Nuestro usuario en PROTEUS
- El número de cores que se van a utilizar (normalmente, solo uno, salvo que se esté usando programación paralela)
- Cantidad de memoria en MB
Donde:
- En Arguments to MLOpen indicar:
MUY IMPORTANTE: si solo vamos a usar el kernel remoto, es importante salir del kernel local. En caso contrario, estaremos usando 2 instancias de las 4 disponibles aunque no lo necesitemos y puede que dejemos a otros compañeros sin posibilidad de usarlo.
Para que este método funcione es imprescindible que si tenemos firewall en nuestro equipo, este no filtre los paquetes provenientes del nodo. Será necesario configurar el firewall para permitir todo el tráfico proveniente de proteusmath.ugr.es.
Si estamos detrás de un router o no puedes configurar el router, una posible solución serla sería crear un tunel SSH.