GridSweeper preliminaries
Today I begin work on GridSweeper. (Which, I learned through Google, shares a name with what looks like a MineSweeper clone, detailed about halfway down this page. I’m not particularly worried about confusion.)
I’m not going to write any code of significance this week: rather, I’m going to get really familiar with Sun’s Grid Engine system, DRMAA, and test out doing manual runs of Repast, etc. with Xgrid and the Grid Engine, just to see what it will take.
I was worried about how the Grid Engine DRMAA implementation worked in Java—at first glance, I saw classes in org.ggf.drmaa and worried that Sun’s DRMAA packages were implemented inside that package. In fact, it’s nicely separated: the DRMAA interface is in org.ggf.drmaa, and com.sun.grid.drmaa contains the Sun implementation. So I can just put an Xgrid implementation in com.edbaskerville.xgrid-drmaa or something like that—and you’ll be able to select between the two grid systems *at runtime*!
To elaborate on the deliverables listed in the proposal, these are the pieces I plan to build:
- GridSweeper The actual project. See the proposal.
- Xgrid DRMAA implementation (C) This will be the meat of my DRMAA work. It will wrap the Objective-C XgridFoundation library in the standard DRMAA C interface, all packaged up in XgridDRMAA.framework.
- Xgrid DRMAA implementation (Java) Mirroring the SGE Java implementation, this will just be a JNI wrapper for the Xgrid DRMAA implementation in C. Packaged in com.edbaskerville.xgrid-drmaa, class files included in XgridDRMAA.framework.
- Objective-C DRMAA interface If I have time, an Objective-C wrapper for the C API. (Not useful for GridSweeper, but just a nice thing to have, and not very much work!) I’ll propose this to the drmaa-wg as a standard interface. Yes, that’s right: this will be an Objective-C wrapper for the DRMAA C interface layer to the Objective-C XgridFoundation API. But I’ll also make this play nice with SGE—in short, mirror the structure of the Java APIs, allowing you to select from different implementations at runtime. This will be included in XgridDRMAA.framework.
The goal with the Xgrid DRMAA stuff is to have Apple roll it into Mac OS X someday, replacing my C wrapper to their Objective-C API with something that connects directly to the Xgrid internals. It would be nice for all this stuff to be in XgridFoundation someday.