Existe la posibilidad de que cuando Condor no tiene trabajo para ejecutar o que los trabajos que siguen en cola no tengan máquinas disponibles, se inicie el modo Backfill. Backfill es aprovechar el tiempo disponible de la máquina para ejecutar trabajos que necesitan mucho tiempo de computación.
Hasta la versión actual (CondorVersion: 7.6.6 Jan 17 2012 BuildID: 401976) el único sistema de Backfill soportado por Condor es [boinc.berkeley.edu BOINC], sistema para computación con recursos de voluntarios creado por la Universidad de California en Berkeley.
BOINC se conecta automáticamente una vez es iniciado con el servidor del proyecto(s) para descargar las tareas que debe realizar. En principio se está colaborando con el proyecto de la Universidad de Antioquia (grupo PECET) que tiene almacena el proyecto en [http://www.worldcommunitygrid.org WCG].
Para contribuir con el proyecto se debe especificar las condiciones del uso de máquina y proyectos mediante el sitio web de WCG y usar la llave de identificación del perfil para iniciar BOINC con un proyecto determinado.
Proyecto: http://www.worldcommunitygrid.org
Usuario ID: <Llave que se encuentra en el perfil en WCG>
Un ejemplo de uso de BOINC en una máquina sin el uso de Condor+Backfill se debe lanzar así:
$ boinc-client -no_gui_rpc --attach_project www.worldcommunitygrid.org llave-del-perfil
El modo Backfill de Condor no está configurado por defecto y se deben especificar algunas opciones para permitir que se ejecute BOINC una vez Condor se encuentra sin tareas o la máquina no tiene tareas asignadas.
La siguiente configuración debe hacerse en el archivo de configuración local de Condor en cada máquina que se quiere usar con Backfill. El archivo suele estar
en /etc/condor/condor_config.local y solo se debe añadir la siguiente configuración.
## Enable Backfill ##
ENABLE_BACKFILL = TRUE
BACKFILL_SYSTEM = BOINC
START_BACKFILL = $(StateTimer) > (1 * $(MINUTE))
EVICT_BACKFILL = FALSE
## Configure BOINC ##
BOINC_HOME = /boinc
BOINC_Executable = /share/apps/BOINC/boinc
BOINC_Universe = vanilla
BOINC_InitialDir = $(BOINC_HOME)
BOINC_Output = $(BOINC_HOME)/boinc.out
BOINC_Error = $(BOINC_HOME)/boinc.err
BOINC_Owner = boinc
BOINC_Arguments = -no_gui_rpc --attach_project www.worldcommunitygrid.org llave-del-perfil
La anterior configuración le especifica a Condor, mediante el uso de variables de Condor, que debe permitir el modo Backfill en esa máquina, que debe esperar un tiempo determinado para iniciar Backfill, la forma en que debe ejecutar BOINC y también donde debe descargar y guardar los datos requeridos para el procesamiento.
Si después de modificar el archivo de configuración y esperar el tiempo de inicio de Backfill no se ha iniciado Backfill+BOINC, se sugiere revisar lo siguiente:
- Se instaló BOINC correctamente.
- Se reconfiguró Condor mediante el uso del comando
condor_reconfig. - El usuario que ejecuta BOINC existe en la máquina (variable de Condor
BOINC_Owner). - El usuario que ejecuta BOINC tiene permisos de escritura y lectura en el "home" de BOINC (variable de Condor
BOINC_Home). - La máquina se encuentra efectivamente desocupada.
- Revisar los archivos de Log de Condor, tanto el 'Startd', 'Master' y los terminados en 'boinc'.
Para permitir el uso de Backfill en Clusters de Rocks (usando el Rollo de Condor) se puede usar un archivo de extensión de configuración que Rocks usa
cuando instala un nodo con ese nombre. Estos archivos se encuentran en el directorio /export/rocks/install/site-profiles/<VERSION DE ROCKS>/nodes/ del 'Rocks-Front'.
Un ejemplo de un archivo de extensión se encuentra en [https://gist.github.com/2697185 extend-compute.xml]. El archivo se debe encontrar ahí antes de iniciar la instalación de los nodos.
- Se recomienda instalar BOINC en un directorio compartido del cluster (En Rocks
/export/apps/para ser accedido desde los nodos en/share/apps/). - En el archivo de extensión se especifica la instalación de las librerías BLAS y LAPACK, pero no son necesarias para el funcionamiento de Condor+Backfill+BOINC.
Se deben tener los RPM de BLAS y LAPACK en la ruta de RPMS de Rocks para que se puedan instalar, de lo contrario se deben eliminar los
<package> * </package>que los especifican.