Condor

Institución - Software

Para muchos científicos, la calidad de sus investigaciones depende mucho de la computación a gran escala. No es raro encontrar problemas que requieran semanas o meses de cálculo para obtener una solución. Los científicos involucrados en este tipo de investigaciones necesitan un entorno de computación que proporcione una gran cantidad de potencia de procesamiento durante un período amplio de tiempo. Estos entornos se denominan entornos HTC (High-Throughput Computing). Por contra, los entornos HPC (High-Performance Computing) proporcionan una gran potencia o cantidad de recursos durante un corto período de tiempo. Los entornos HPC se miden frecuentemente en términos de operaciones en coma flotante por segundo (FLOPS). Mientras que los entornos HTC se suelen medir en operaciones en coma flotante por mes o por año. Los entornos HTC están enfocados a completar el mayor número de trabajos (conjunto de tareas) en un período largo de tiempo.

La clave en los entornos HTC es el uso eficiente de los recursos disponibles. Hace años, para poder hacer frente a los problemas que requerían una gran cantidad de recursos durante mucho tiempo, se recurrían a los mainframes o supercomputadores. Estos superordenadores eran capaces de afrontar dichos problemas con su gran potencia de cálculo. El problema era el alto precio de estos sistemas, relegando su uso a entidades elitistas (como gobiernos o universidades con alto presupuesto). Además, estos superordenadores tenían un incoveniente, su uso era exclusivo para la tarea o trabajo que procesaba. En la actualidad, podemos utililzar un número determinado de nodos hetereogéneos e interconectarlos para que se distribuyan las tareas a ejecutar. Dichos nodos representan recursos, que pueden ser simples ordenadores personales. Por tanto, en sustitución de los superordenadores, podemos utilizar múltiples ordenadores menores (mucho más baratos), interconectarlos a través de una red e instalar un software que se encargue de repartir el trabajo entre los distintos ordenadores, de tal manera, que se aprovechan aquellos que presentan una escasa actividad de procesamiento. Condor es un software que se encarga de llevar a cabo esta misión.

La potencia de Condor

Condor es un software de sistema que crea un entorno High-Throughput Computing (HTC). Utiliza eficazmente la potencia de cálculo de las estaciones conectadas en la red. Condor puede administrar cluster dedicados de las estaciones.

Un usuario envía un trabajo a Condor. Condor busca y encuentra una máquina disponible en la red y se ejecuta el trabajo en dicha máquina. Condor tiene la capacidad de detectar si una máquina que estaba ejecutando un trabajo deja de estar disponible un tiempo considerable. Condor puede establecer un “checkpoint” del trabajo y migrar sus tareas a distintas máquinas que están ociosas o disponibles.

Condor no exige la utilización de archivos compartidos (NFS, AFS), puede migrar los distintos trabajos por distintos dominios administrativos.

Condor ahorra tiempo de ejecución cuando un trabajo se tiene que ejecutar muchas veces. Con un sólo comando, todos los trabajos se envían a Condor. Dependiendo del número de máquinas en el entorno Condor, decenas e incluso cientos de máquinas ociosas pueden ejecutar un trabajo en cualquier momento.

Condor no necesita cuentas en las máquinas que ejecutan trabajos. Las llamadas se envían a través de la red para que se puedan ejecutar en la máquina donde se envío el trabajo.

Condor implementa ClassAds, un diseño limpio que simplifica el envío de trabajos de los usuarios. ClassAds funciona de manera parecida a los anuncios clasificados de los periódicos. Todas las máquinas de Condor anuncian las propiedades y recursos estáticos y dinámicos que poseen, como la memoria virtual, tipo CPU, memoria física, frecuencia de la CPU, etc. Un usuario especifica una petición de recurso cuando envía un trabajo. La petición incluye el conjunto de propiedades requeridas y deseadas por el usuario para llevar a cabo el trabajo. Condor actúa como un agente seleccionando, clasificando y comparando los recursos ofrecidos por las máquinas del entorno con los de la petición del usuario, asegurando que se cubre el cupo de recursos del usuario. Se puede priorizar unos recursos frente a otros.

Características de Condor

  • Checkpoint y migración. Los usuarios de Condor tienen la garantía de que sus trabajos se llevarán a cabo, incluso si se modifica el entorno. Cuando una máquina que está ejecutando un trabajo envíado a Condor deja de estar disponible, se realiza un checkpoint a trabajo, y éste migra a otra máquina que esté disponible.
  • Sistema de llamadas remotas. A pesar de ejecutar trabajos en máquinas remotas, el modo de ejecución del universo estándar de Condor preserva el entorno de ejecución local a través de las llamadas remotas. Los usuarios no se deben preocupar sobre los sistemas de ficheros disponibles en las estaciones remotas, ni en tener cuentas de usuario en ellas. El programa se comporta en Condor como si se estuviera ejecutando en la máquina originaria del trabajo.
  • No es necesario modificar el código fuente de las aplicaciones. No se requiere una programación específica para ejecutar aplicaciones en Condor. Condor es capaz de ejecutar programas no interactivos. Los “checkpoints” y migraciones se realizan en Condor de manera transparente y automática, así como el uso de las llamadas remotas.
  • Los trabajos se pueden ordenar. El orden de ejecución de los trabajos por motivos de dependencias entre ellos se puede manejar fácilmente. Los conjuntos de trabajos se especifican utilizando un grafo dirigido acíclico, donde cada trabajo viene representado por un nodo en el grafo. Los trabajos se envían a Condor en función de las dependencias dadas en el grafo.
  • Condor permite computación Grid. Puesto que la computación Grid es ya una realidad, Condor la soporta. La técnica de glidein permite ejecutar los trabajos enviados a Condor en sistemas Grid.
  • ClassAds. El mecanismo ClassAd de Condor proporciona un framework extremadamente flexible y expresivo para resolver peticiones de recursos según los recursos ofertados en el entorno. Los usuarios pueden pedir recursos necesarios y deseados para sus trabajos. Por ejemplo, un usuario puede pedir que un trabajo se ejecute en una máquina con 64 MB de RAM, pero sería deseable utilizar 128 MB. EL propietario de una estación puede fijar las preferencias de la estación a la hora de ejecutar trabajos para determinados grupos de usuarios.
  • Condor soporta aplicaciones PVM y MPI..

Detalles



 

 

 

Centro Informático Científico de Andalucía | Aviso legal | Accesibilidad

XHTML válido CSS válido