Does anybody know a Java implementation of the DRMAA-API that is known to work with PBS/Torque cluster software?
The background behind this: I would like to submit jobs to a newly set-up linux cluster from Java using a DRMAA compliant API. The cluster is managed by PBS/Torque. Torque includes PBS DRMAA 1.0 library for Torque/PBS that contains a DRMA-C binding and provides in libdrmaa.so and .a binaries. I know that Sun grid engine includes a drmaa.jar providing a Java-DRMAA API. In fact I opted to use SGE but it was decided to try PBS first.
The theory behind that decision was:
'DRMAA is a standard and therefore a Java API needs only a standards compliant drmaa-c binding.' However, I couldn't find such 'general DRMAA-C-java API' and now assume that this assumption is wrong and that the Java libraries are engine specific.
Edit: I just experimented with the drmaa.jar from sun grid engine package and tried to cross-use it with the pbs libdrmaa.so. Not surprisingly, that failed (JNI unsatisfied link error).
Conclusion: It does not work that way! After some search I see only these few options:
- Install GridWay ontop of Globus toolkit. Installed ontop of PBS, GridWay claims to provide DRMAA in Java. Looks far too complex for my setting.
- Scrap DRMAA, submit to PBS by calling system command qsub, qstat, etc. from Java. Simple but not so nice.
Implement a drmaa binding myself. Way too complex...
Switch to Grid Engine. GE in my opinion is superior over PBS with respect to language bindings.
I tend to prefer option 2. or 4. Any recommendations?