Condor, OGE y Torque pueden llevarte allí, pero solo Condor tiene una gestión de dependencia incorporada con su herramienta DAGMan . DAGMan le permite configurar un gráfico dirigido y acíclico que describe su flujo de trabajo y el gerente se encarga de pasar por los trabajos en su flujo de trabajo y evaluar los resultados de aprobación / reprobación en cada paso del flujo. Condor es relativamente independiente de la plataforma, lo que significa que DAGMan también lo es, y ciertamente puede ejecutar un paso secundario en AIX cuando el padre se ejecuta en Linux o Windows. A DAGMan no le preocupa dónde se ejecutan los trabajos, solo que los códigos de salida son aprobados o no.
¿Algún consejo para elegir el software o si es mejor ir a código abierto o comercial?
Con algunas advertencias, creo que vale la pena mirar las comunidades libres en este espacio.
OGE está en un espacio extraño ahora. Ya no es gratis ejecutar la variante GE producida por Oracle y Oracle ya no está contribuyendo con el código que escribe en el SCC de GE, pero existen varias bifurcaciones del código que están tratando de convertirse en proyectos gratuitos y de código abierto. Univa en particular ha liderado la carga , contratando a ex desarrolladores de GE de Sun para que continúen trabajando en una variante de GE de código abierto y de libre acceso. Grid Engine tiene dos cosas: es fácil de configurar, puede manejar trabajos de ejecución corta (<2 minutos) sin impartir mucha sobrecarga de programación en los trabajos que ralentizan el rendimiento. Su gran inconveniente es que no hay muy buen soporte para Windows. Algunos de nosotros pusimos algunos esfuerzos en portarlo para que se ejecute en Cygwin hace muchos años, pero no es tan bueno como nativo, eso es seguro.
Ahora Condor es mi favorito de las tres tecnologías que mencionaste. Hay una comunidad fuerte alrededor de Condor y el software es muy maduro (> 20 años ahora). El soporte nativo para Windows y POSIX OS significa que funciona muy bien en todo el lugar. El mencionado DAGMan es solo una de las muchas piezas geniales que vienen con Condor. Puede ser un toque complicado de configurar, pero una vez que está en funcionamiento es sólido como una roca. Tiene un lenguaje increíblemente flexible para hacer trabajos <-> coincidencia de máquinas y construir sus reglas de uso para sus recursos. También admite el aprovisionamiento dinámico en máquinas, permitiendo que los trabajos seleccionen la cantidad de recursos de máquinas que necesitan y luego vuelvan a anunciar la diferencia como aún disponible. Admite contadores de recursos globales para que pueda restringir contra cosas como las licencias de software. Y por supuesto, tiene DAGMan, que es una herramienta increíblemente poderosa para la gestión del flujo de trabajo. La desventaja de Condor es que la sobrecarga de programación para trabajos cortos puede ser onerosa. Lo ideal es que los trabajos se ejecuten más de 2 minutos, de lo contrario la programación comienza a convertirse en una gran parte del tiempo del trabajo en el sistema.
El par es un poco más nicho. Sé menos al respecto, me temo. Se compara más con Grid Engine que Condor. Hay complementos pagos que @warren mencionó que pueden expandir lo que puede hacer el Torque básico y gratuito.
Si desea probar las tres tecnologías y ver cómo funcionan con sus cargas de trabajo específicas, CycleCloud puede crear agrupaciones seguras y virtualizadas que están preconfiguradas con Condor, GridEngine o Torque, por lo que no tiene que dedicar tiempo a resolverlo. de su parte. Se necesitarían unos pocos dólares para combinar pequeños grupos de cada tecnología y probarlos con cargas de trabajo representativas. (Descargo de responsabilidad: trabajo para Cycle Computing, hacemos CycleCloud)