HTCondor es un marco de software informático de alto rendimiento y código abierto para la paralelización distribuida de grano grueso de tareas computacionalmente intensivas. [1] Se puede utilizar para gestionar la carga de trabajo en un clúster dedicado de computadoras o para subcontratar trabajo a computadoras de escritorio inactivas, lo que se denomina limpieza de ciclos . HTCondor se ejecuta en los sistemas operativos Linux , Unix , Mac OS X , FreeBSD y Microsoft Windows . HTCondor puede integrar recursos dedicados (clústeres montados en bastidor) y máquinas de escritorio no dedicadas (limpieza de ciclos) en un entorno informático.
HTCondor ha sido desarrollado por el equipo HTCondor de la Universidad de Wisconsin-Madison y su uso es gratuito. HTCondor sigue una filosofía de código abierto y está licenciado bajo la Licencia Apache 2.0. [2]
Si bien HTCondor aprovecha el tiempo de procesamiento no utilizado, dejar las computadoras encendidas para usarlas con HTCondor aumentará el consumo de energía y los costos asociados. A partir de la versión 7.1.1, HTCondor puede hibernar y reactivar las máquinas según políticas especificadas por el usuario, una función que anteriormente solo estaba disponible a través de software de terceros.
El desarrollo de HTCondor comenzó en 1988.
HTCondor antes se conocía como Condor; el nombre se cambió en octubre de 2012 para resolver una demanda de marca registrada. [3]
HTCondor fue el software programador utilizado para distribuir trabajos para el ensamblaje del primer borrador del Genoma Humano.
El grupo de trabajo HTCondor de la instalación de supercomputación avanzada (NAS) de la NASA consta de aproximadamente 350 estaciones de trabajo SGI y Sun adquiridas y utilizadas para el desarrollo de software, visualización, correo electrónico, preparación de documentos y otras tareas. Cada estación de trabajo ejecuta un demonio que supervisa la carga de CPU y la E/S del usuario . Cuando una estación de trabajo ha estado inactiva durante dos horas, se le asigna un trabajo de la cola de lotes y se ejecutará hasta que el demonio detecte una pulsación de tecla, un movimiento del ratón o un alto uso de CPU que no sea de HTCondor. En ese momento, el trabajo se eliminará de la estación de trabajo y se volverá a colocar en la cola de lotes.
HTCondor puede ejecutar trabajos tanto secuenciales como paralelos. Los trabajos secuenciales se pueden ejecutar en varios "universos" diferentes, incluido el "universo básico", que ofrece la posibilidad de ejecutar la mayoría de los programas "listos para procesar por lotes", y el "universo estándar", en el que la aplicación de destino se vuelve a vincular con la biblioteca de E/S de HTCondor, que permite la E/S de trabajos remotos y la creación de puntos de control de trabajos. HTCondor también ofrece un "universo local" que permite ejecutar trabajos en el "host de envío".
En el mundo de los trabajos paralelos, HTCondor admite la Interfaz de paso de mensajes estándar y la Máquina virtual paralela (Goux, et al. 2000) además de su propia biblioteca Master Worker "MW" para tareas extremadamente paralelas.
HTCondor-G permite que los trabajos de HTCondor utilicen recursos que no están bajo su control directo. Se utiliza principalmente para comunicarse con recursos de la red y la nube , como pre-WS y WS Globus, Nordugrid ARC , UNICORE y Amazon Elastic Compute Cloud . Pero también se puede utilizar para comunicarse con otros sistemas de procesamiento por lotes, como Torque/PBS y LSF . Actualmente se está desarrollando la compatibilidad con Sun Grid Engine como parte del proyecto EGEE . [ cita requerida ]
HTCondor es compatible con la API de trabajos de DRMAA . Esto permite que los clientes compatibles con DRMAA envíen y supervisen trabajos de HTCondor. La implementación de referencia de C++ de SAGA proporciona un complemento (adaptador) de HTCondor, que permite el envío y la supervisión de trabajos de HTCondor a través de las API de Python y C++ de SAGA.
Otras características de HTCondor incluyen "DAGMan", que proporciona un mecanismo para describir las dependencias del trabajo.