Instalación de oddface_share en un Cluster con SLURM
=================================
Nota: En el cluster uy la expresión {$HOME} es /sclusteruy/home/suusuario
1) En su usuario del Cluster debe tener instalada la plataforma SimSEE y en la carpeta
{$HOME}/SimSEE/bin deberán estar los siguietes binarios (si ya tiene instalado el SimSEE estos archivos ya están en la carpeta):
a.-El Lanzador de resolvedores de problemas:
{$HOME}/SimSEE/bin/rbt_oddface_cluster_share
b.- Según el tipo de problema a resolver debe tener el binario correspondiente. Por ejemplo para problemas de Planificación de Inversiones en Generación (PIG) debe tener el binario:
{$HOME}/SimSEE/bin/oddface_pig_share
2) Debe crear la carpeta : {$HOME}/SimSEE/oddface_share que es la raíz de trabajo de oddface_share.
En ese carpeta se debe COPIAR la información de los problemas a resolver, y la subcarpeta de cada problema como se explica en la aplicación oddface_prepare_share más abajo.
Para ello descomprima el archivo oddface_share.zip en la carpeta {$HOME}/SimSEE. Al hacerlo le debe quedar la siguiente estructura:
{$HOME}/SimSEE/oddface_share/slurm
y en esta carptea slurm le deben quedar los archivos:
colas.txt, normal.template y besteffort.template
Estos tres archivos son EJEMPLOS y debe editarlos si corresponde.
El archivo colas.txt tiene definida las Particiones del Cluster a las que su usuario tiene acceso.
Por defecto tiene acceso a las Particiones "normal" y "besteffort".
Si su usario tiene otras particiones debe editar el archivo correspondiente.
Por cada Partición utilizable que haya incluído en colas.txt debe suministrar el correspondiente template.
Debe editar esos templates (pare este ejemplo el normal.template y besteffort.template) para por lo menos cambiar la dirección de correo electrónico a la que SLURM reporta inicio/fin, errores, etc.
Puede modificar a su gusto los parámetros de SLURM de cada template.
3) Para lazar resolvedores de problemas, debe llamar a binario rbt_oddface_cluster_share con el parámetro run.
Para esto puede definir el archivo de crontab (se edita con el comando crontab -e) con:
3,8,13,18,23,28,33,38,43,48,53,58 * * * * {$HOME}/SimSEE/bin/rbt_oddface_cluster_share run > /dev/null
que lanzará el binario cada 5 minutos etc.
Si ejecuta el binario sin parámetros podrá ver la lista de posibles acciones.
Si se desea ejecutar problemas en otra ubicación se debe editar el archivo oddface_share_cfg.txt:
Por ejemplo en el cluster uy sería:
1 // ver
/clusteruy/home/otrousuario/SimSEE/oddface_share // carpeta_share
que hará que se corran los problemas allí indicados (tener en cuenta que la información de la carpeta slurm que vale es la del usuario {$HOME}).
oddface_prepare_share
================
Esta aplicación es para ejecutar en su PC (no en el CLuster) y le permite crear y administrar problemas para correrlos en la PC o en el Cluster.
La aplicación modifica la información bajo la carpeta "oddface_share" de su PC y es donde estáran todos los problemas definidos etc. La primera vez que corra el "oddface_prepare_share" se crea el archivo 'oddface_share_cfg.txt' en el directorio de usuario de windows.
En dicho archivo, el primer renglón es el NÚMERO DE VERSIÓN y el segundo RENGLÓN es la ruta en donde está el carpeta "oddface_share". Dicha primer vez, la carpeta de problemas se ubica en {$HOME}/SimSEE/oddface_share pudiendo luego editarse el archivo y cambiarla a voluntad. Ejemplo:
En la carpeta es que estará la definición de todos los problemas. Por cada problema que cree, se creará también una subcarptea con el nombre "p_NNN" donde NNN es el número de problema.
En la carpeta del problema se guarda el archivo: "problema.bin", "estado.bin", "tecnologia.bin" y si subió una Sala SimSEE al problema también se guarda el "zip" de la Sala.
---- En PC
En el caso de correr la optimización en el PC hay que ejecutar el programa {$HOME}/SimSEE/bin/oddface_pig_share idEjecutor nidProblema
Si se quiere correr otro proceso en la misma máquina hay que ponerle otro idEjecutor. Por ejemplo si la PC es de 4 núcleos, se pueden correr 4 procesos con diferentes idEjecutor e igual nidProblema (trabajo colaborativo).
Por ejemplo en Windows el archivo por lotes ejemplo.bat con las siguientes líneas de comando:
REM El tiempo de timeout es para que al arrancar no compitan los nucleos por tomar control del LCK de las carpetas compartidas por los procesos.
START E:\SimSEE\bin\oddface_pig_share idEjecutor1 nidProblema
timeout 10
START E:\SimSEE\bin\oddface_pig_share idEjecutor2 nidProblema
timeout 10
START E:\SimSEE\bin\oddface_pig_share idEjecutor3 nidProblema
timeout 10
START E:\SimSEE\bin\oddface_pig_share idEjecutor4 nidProblema
corre el problema nidProblema en cuatro núcleos de la PC y abre una ventana de cmd para cada uno.
Finalmente si se comparte el disco en el que están los problamas (oddface_share) se puede largar mas procesos en otras máquinas. Cada máquina consultará al archivo individuos.bin e irá agregando individuos en forma colaborativa.
---- En Cluster
En el caso de correr problemas en el Cluster, una vez que termina de editar el problema y le pone el semáforo en VERDE debe subir al cluster los archivos "problema.bin", "estado.bin", "tecnologia.bin" y el archivo zip de la sala a la carpeta (creándola si no existe): {$HOME}/SimSEE/oddface_share/p_NNN.
Es importante que siempre que use oddface_prepare_share en el PC para modificar un problema, luego de finalizar la modificación, haga la actualización de archivos pertinentes en el Cluster según lo que haya modificado, vale decir "problema.bin", "estado.bin" y/o "tecnologia.bin".
A medioda que avanza el resolvedor se va a ir agregando al archivo "individuos.bin" los resultados. Para poder ver que el resolvedor está avanzando basta con observar el tamñao de dicho archivo.
Para ver el resultado o avance baje (copie) el archivo "individuos.bin" al PC en la carpeta homónima y utilice la aplicación oddface_prepare_share etc.