Pregunta

¿Alguien sabe una implementación Java de la DRMAA-API que se sabe que funciona con el software de clúster PBS / Par?

El fondo detrás de esto: Me gustaría enviar trabajos a un cluster Linux de nueva configuración de Java utilizando una API compatible DRMAA. El grupo es gestionado por PBS / Torque . Torque incluye PBS DRMAA 1,0 biblioteca para Torque / PBS que contiene un DRMA-C de unión y proporciona en libdrmaa.so y .a binarios. Yo sé que el motor de la rejilla Sun incluye un drmaa.jar proporcionar una API de Java-DRMAA. De hecho he optado por utilizar SGE pero se decidió probar primero PBS.

La teoría detrás de esa decisión fue:
'DRMAA es un estándar y, por tanto, una API de Java necesita sólo un compatible con las normas vinculantes drmaa-c.' Sin embargo, no pude encontrar tales 'API en general DRMAA-C-java' y ahora suponer que esta suposición es incorrecta y que las bibliotecas de Java son específicos del motor.

Editar: Yo sólo experimentó con la drmaa.jar del paquete del motor rejilla sol y trató de cruzar de usar con el PBS libdrmaa.so. No es de extrañar, que no JNI (error de enlace insatisfecho).

Conclusión: No funciona de esa manera! Después de un poco de búsqueda sólo veo estas pocas opciones:

  1. Instalar GridWay sábana de Globus kit de herramientas. Instalado sábana de PBS, GridWay afirma proporcionar DRMAA en Java. Miradas demasiado complejas para mi ajuste.
  2. DRMAA chatarra, se someten a PBS por llamando al comando del sistema qsub, qstat, etc. desde Java. Simple, pero no tan bonito.
  3. Implementar un drmaa comprometiéndome. Demasiado compleja ...

  4. Cambiar al Grid Engine. GE en mi opinión es superior sobre PBS con respecto a los enlaces de lenguaje.

Yo tiendo a preferir la opción 2. ó 4. Cualquier recomendación?

¿Fue útil?

Solución

Después de un poco más búsqueda que parece que tengo que escribir algo a mí mismo. No parece haber respuesta no óptima todavía, pero puede servir como una advertencia para los que tratan de la misma.

El mejor lugar para hacer estas preguntas es, posiblemente, la lista de distribución de par: www.clusterresources.com/resources/mailing-lists.php

En primer lugar, la razón por la que no sólo puede utilizar cualquier biblioteca DRMAA-Java y utilizarlo con cualquier aplicación DRMAA-C es: DRMAA describe la interfaz del control de los recursos, no cómo se implementa. El vendedor podría utilizar una aplicación DRMAA-C y utilizar sólo estas funciones, pero no tiene que hacerlo. Se puede usar lo que está allí en el motor. Así que un mensaje importante es:. Si necesita ciertos enlaces de lenguaje, asegúrese de que están ahí para todos los idiomas requeridos

En cuanto a las opciones mencionadas:

  1. Uso GridWay / Globus Toolkit: http: //www.gridway. org / doku.php? id = iniciar Ventaja: Gridway es un planificador meta que soporta varios sistemas de gestión de recursos (SGE, PBS, ...). Posiblemente, la única manera de conseguir una interfaz DRMAA al trabajo con PBS en el momento. Desventaja: Parece que una inflación de capas y complejidad. No tienen experiencia con eso.

  2. El uso de comandos del sistema, qsub, qstat, qdel. Ventaja: Hack rápida Desventajas: truco sucio, necesidad de implementar programas de análisis para la salida, no se daría cuenta si algo va mal, pasar alrededor de los mensajes de entrada estándar / stdout / stderr, no es portátil

  3. Uso JNI que debería ser posible crear una unión para cada c-función en drmaa.c Ventaja: proporcionaría una aplicación drmaa completa (con suerte) Disadvanteges: implica el código, gran cantidad de envoltura manual de los C-funciones (tal vez esto puede ser automatizado) compilados

  4. Cambiar a otro motor de cuadrícula. Posiblemente, que deberíamos haber hecho este análisis antes. Sin embargo, ya tenemos otro grupo de par, y no hay experiencia con esto. Funcionamiento de dos crearía una infraestructura más heterogénea.

  5. Cambiar una biblioteca drmaa existente de un proveedor diferente. Ni idea de si eso es posible ... vamos a ver en eso también.

Otros consejos

También tenía este problema. Este es un proyecto para crear un objeto Oriented C ++ y Java DRMAA Encuadernación para PBS / Torque.

La desventaja es que usted tiene que ser capaz de cargar la biblioteca creada a partir del código C ++, por lo que no es una implementación "Java puro" que puede ser distribuido solamente como un archivo .jar, esperando que el usuario final para proporcionar " libdrmaa.so" a sí mismos.

Por lo que vale, aquí está: https://github.com/bryan-lunt/PBSJavaDRMAA/

¿Alguna vez se decida qué hacer con esto? ¿Pudo conseguir enlaces Java DRMAA que trabajan con Torque / PBS? Estoy mirando para conseguir un poco de código Java DRMAA trabajando en un sistema Torque / PBS, y si has hecho el trabajo duro ya, me encantaría robarlo.

Sin embargo, si usted no tiene, no debería ser demasiado malo para hacer algunos enlaces Java, y voy a hacerlo si nadie más lo hace. Hace varios años he modificado con éxito los enlaces DRMAA Java para SGE al trabajo con una nueva aplicación para DRMAA Xgrid (ahora obsoleto, pero tal vez pronto para ser revividos).

Yo incluso escribió una breve entrada de blog en mis experiencias (incluye un enlace a las instrucciones generales):

http://edbaskerville.com/2006/07/11/ java-fijaciones de trabajo /

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top