Los scripts de lenguajes interpretados (Python, Bash, Perl, etc.) se pueden tratar de dos formas a la hora de enviar el trabajo a las colas:
a) Usando el interprete como ejecutable
Cuando enviamos un trabajo a Slurm, debemos indicar el ejecutable. La primera opción es usar el propio interprete como dicho ejecutable, al que pasaremos el script como argumento.
Ejemplo:
slanzarv python3 miscript.py
Nota: En caso de querer utilizar una versión específica del interprete, habrá que cargarla antes
a) Usando el propio script como ejecutable
Podemos usar el propio script como ejecutable. Para ello, tendremos que realizar un par de pasos previos:
- Añadirle un shebang para indicar qué interprete hay que utilizar
- Darle permisos de ejecución
El shebang es simplemente una línea que se sitúa al inicio del script y que indica qué programa hay que utilizar para ejecutarlo. Comienza con los caracteres #! y a continuación el path de dicho programa. Ejemplos:
#!/bin/bash
#!/usr/bin/python
Si estamos usando una versión diferente del interprete, que será cargada mediante module (ver Lmod) y que está en una ubicación que a priori no conocemos o que queremos que se adapte al entorno en el que estamos trabajando, podemos usar esta otra alternativa:
#!/usr/bin/env python
que ejecuta la versión de python que tengamos cargada en nuestro entorno. La documentación completa de env se puede consultar aquí.
La asignación de permisos de ejecución se hace mediante chmod:
chmod u+x scriptname
Y ya podríamos enviar el script directamente:
slanzarv scriptname