Envío de trabajos de Octave con Condor
Control de versiones
| Fecha | Actividad | Autor |
|---|---|---|
| 07/03/2011 | Publicación inicial | Jorge Iván Meza Martínez. |
Introducción
En este capítulo se analiza el envío de tareas basadas en scripts de Octave al Cluster través de Condor.
Precondición
- Condor se encuentra correctamente instalado en el cluster y funcionando.
- Octave se encuentra correctamente instalado en el cluster y funcionando.
Crear el script de Octave
En este paso se crea el script de Octave que va a ser ejecutado en el cluster. En este caso se creará uno de ejemplo llamado demo.m.
$ vi demo.m A = rand(4,4) B = inv(A) r = 2 + 3 p = prod(1:13) s = reshape ([1, 2, 3, 4], 2, 2)
Crear el archivo de envío de trabajos
En este paso se crea el archivo con la especificación del envío del trabajo (script anterior) al Cluster con Condor.
$ vi test.submit universe = vanilla executable = /opt/octave/current/bin/octave arguments = --no-history --no-window-system --no-init-file --silent input = demo.m output = _demo.out error = _demo.err log = _demo.log queue
Enviar el trabajo al cluster
En este paso se envío el trabajo al cluster de acuerdo con la definición del mismo creada en el paso anterior.
$ condor_submit test.submit
Verificar los resultados del cluster
Una vez finalizada la ejecución de la tarea en el cluster se analizan los archivos resultantes de la ejecución, cuyos contenidos deberán corresponder a algo similar a lo mostrado a continuación.
$ cat _demo.err (vacío) $ cat _demo.log 000 (id.000.000) mm/dd hh:mm:ss Job submitted from host: <192.168.1.200:9687> ... 001 (id.000.000) mm/dd hh:mm:ss Job executing on host: <192.168.1.201:9726> ... 005 (id.000.000) mm/dd hh:mm:ss Job terminated. (1) Normal termination (return value 0) Usr 0 00:00:00, Sys 0 00:00:00 - Run Remote Usage Usr 0 00:00:00, Sys 0 00:00:00 - Run Local Usage Usr 0 00:00:00, Sys 0 00:00:00 - Total Remote Usage Usr 0 00:00:00, Sys 0 00:00:00 - Total Local Usage 0 - Run Bytes Sent By Job 0 - Run Bytes Received By Job 0 - Total Bytes Sent By Job 0 - Total Bytes Received By Job ... $ cat _demo.out A = 0.534994 0.645150 0.811082 0.507029 0.023325 0.075485 0.049216 0.385321 0.198165 0.559457 0.239962 0.407147 0.516501 0.096679 0.426738 0.691542 B = -2.33123 -6.33517 2.93649 3.51025 -0.41907 -1.25818 2.52291 -0.47707 3.22164 3.43782 -3.82936 -2.02304 -0.18828 2.78611 -0.18289 0.13937 r = 5 p = 6.2270e+09 s = 1 3 2 4
Solución de problemas
liboctinterp.so: cannot open shared object file
Problema
Si al intentar ejecutar la tarea basada en Octave se recibe el siguiente mensaje en el registro de errores (_demo.err en el ejemplo anterior).
condor_exec.exe: error while loading shared libraries: liboctinterp.so: cannot open shared object file: No such file or directory
Solución
Es necesario que se verifique que se haya creado el acceso local con el nombre de la versión instalada de Octave tal y como se relaciona en el proceso de instalación.
En caso de no realizarse este procedimiento, es posible solventar este problema mediante la adición de la siguiente línea al archivo con la especificación del envío de trabajos al cluster.
environment = "LD_LIBRARY_PATH=/opt/octave/current/lib/octave-3.2.4/:$LD_LIBRARY_PATH"
Debe tenerse en cuentar que esta alternativa de solución no cubre todos los posibles problemas que pueden surgir de esta situación.