Domanda

Qualcuno sa un'implementazione Java del DRMAA-API che è noto per il lavoro con il software del cluster PBS / coppia?

Lo sfondo dietro questo: Vorrei inviare i lavori a un cluster Linux appena set-up da Java utilizzando un API DRMAA compatibile. Il cluster è gestito da PBS / coppia . Coppia comprende PBS DRMAA 1.0 libreria per coppia / PBS che contiene un DRMA-C vincolante e forniscono in libdrmaa.so e .a binari. So che il motore della griglia Sun include un drmaa.jar fornendo un'API Java-DRMAA. In realtà ho scelto di usare SGE, ma si è deciso di provare PBS prima.

La teoria dietro questa decisione era:
'DRMAA è uno standard e quindi un'API Java necessita soltanto di una conforme agli standard vincolante drmaa-c.' Tuttavia, non ho potuto trovare come 'generale API DRMAA-C-java' e ora pensare che questa ipotesi è sbagliata e che le librerie Java sono specifiche del motore.

Modifica: Ho sperimentato con il drmaa.jar dal gruppo motore griglia sole e cercato di utilizzo incrociato con PBS libdrmaa.so. Non a caso, che non è riuscito (JNI errore di collegamento insoddisfatti).

Conclusione: Non funziona in questo modo! Dopo un po 'di ricerca che vedo solo queste poche opzioni:

  1. Installa GridWay ontop di Globus kit di strumenti. Installato ontop di PBS, GridWay sostiene di fornire DRMAA in Giava. Sguardi troppo complesse per il mio impostazione.
  2. Scrap DRMAA, presentare al PBS chiamando il sistema di comando QSUB, qstat, ecc da Java. Semplice ma non così simpatico.
  3. Implementare una drmaa me vincolante. Troppo complesso ...

  4. Griglia del motore. GE nel mio parere è superiore rispetto PBS con riguardo al binding di linguaggio.

Io tendo a preferire opzione 2. o 4. Tutti i consigli?

È stato utile?

Soluzione

Dopo un po 'di più la ricerca sembra che devo scrivere qualcosa di me stesso. Sembra che ci sia risposta non ottimale ancora, ma può servire come un avvertimento per coloro che tentano lo stesso.

Il posto migliore per fare queste domande è forse la mailing list di coppia: www.clusterresources.com/resources/mailing-lists.php

Prima di tutto, il motivo per cui non si può semplicemente utilizzare qualsiasi libreria DRMAA-Java e utilizzarlo con qualsiasi implementazione DRMAA-C è: DRMAA descrive l'interfaccia del controllo delle risorse, non come viene implementato. Il venditore potrebbe usare un'implementazione DRMAA-C e utilizzare solo queste funzioni, ma non è necessario. Si può utilizzare ciò che è lì nel motore. Così un messaggio importante è:. Se avete bisogno di alcune binding di linguaggio, assicurarsi che non ci sono per tutte le lingue richieste

Per quanto riguarda le opzioni menzionate:

  1. Uso GridWay / Globus Toolkit: http: //www.gridway. org / doku.php? id = iniziare Vantaggio: Gridway è una meta di pianificazione che supporta molti sistemi di gestione delle risorse (SGE, PBS, ...). Eventualmente, l'unico modo per ottenere un'interfaccia DRMAA di lavoro con PBS al momento. Svantaggio: Sembra che un'inflazione di strati e di complessità. Non hanno alcuna esperienza con quella.

  2. Utilizzando i comandi del sistema, QSUB, qstat, qdel. Vantaggio: trucco veloce Svantaggi: trucco sporco, necessità di attuare parser per l'uscita, potrebbe non notare se qualcosa va storto, passare intorno messaggi da stdin / stdout / stderr, non portatile

  3. Uso JNI dovrebbe essere possibile creare un binding per ogni c-funzione drmaa.c Vantaggio: avrebbe fornito una piena attuazione drmaa (si spera) Disadvanteges: comporta compilato il codice, sacco di confezionamento manuale delle funzioni C (forse questo può essere automatizzato)

  4. Passare ad un altro motore di griglia. Forse, avremmo dovuto fare questa analisi prima. Tuttavia, abbiamo già un altro grappolo di coppia, e non c'è esperienza avuta con questo. Funzionamento a due creerebbe un'infrastruttura più eterogenea.

  5. La modifica una libreria drmaa esistente da un fornitore diverso. Non ho idea se questo è fattibile ... vedremo in quella troppo.

Altri suggerimenti

Ho anche avuto questo problema. Questo è un progetto per creare un Object Oriented C ++ e Java DRMAA Binding per la PBS / coppia.

Il lato negativo è che devi essere in grado di caricare la libreria creata dal codice C ++, quindi non è un'implementazione "puro Java" che può essere distribuito solo come file .jar, aspettandosi l'utente finale di fornire " libdrmaa.so" se stessi.

Per quello che vale, eccolo: https://github.com/bryan-lunt/PBSJavaDRMAA/

Hai mai a decidere cosa fare con questo? Siete riusciti a ottenere Java DRMAA attacchi che lavorano con coppia / PBS? Sto cercando di ottenere qualche codice Java DRMAA lavorando su un sistema Torque / PBS, e se hai fatto già il lavoro duro, mi piacerebbe rubare.

Tuttavia, se non lo avete, non dovrebbe essere troppo male per fare alcuni binding Java, e lo farò, se nessuno lo fa. Diversi anni fa ho modificato con successo gli attacchi DRMAA Java per SGE al lavoro con una nuova implementazione DRMAA per Xgrid (ormai stantio, ma forse presto per essere rianimato).

Ho anche scritto una breve post sul blog sulle mie esperienze (include un link ad istruzioni generali):

http://edbaskerville.com/2006/07/11/ java-binding-lavoro /

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top