6. Grid Plugin API

In addition to JGDI and DRMAA support, the Pipeline server supports custom plugins of grid resource managers. You can implement your own grid plugin for your grid resource manager for the Pipeline server. As shown in the diagram below, the Pipeline Grid Plugin bridges between the Pipeline server and the grid resource manager.

Grid Plugins

In Pipeline package there is a JAR file called PipelineGridPlugin.jar. The class PipelineGridPlugin All Pipeline grid plugins should be extended from this class.  Pipeline provides support for DRMAA and JGDI, you can download them under Downloads page and refer to Server Guide to set it up. You can also implement your own plugin for your grid resource manager. To do so, you have to extend this class and override these four methods:

String submitJob(GridJobSubmitInfo gji)

List<GridJobInfo> getJobList(String complexVariables)

GridJobInfo getJobInfo(String jobId)

void killJob(String jobId, String username, boolean force)

In addition to overriding the four methods above, your plugin must send a GridEvent whenever a job changes its state (e.g. from queued to running, from running to finished, etc.). You can use registerEventListener(GridEventListener gel) for allowing pipeline to register itself as a listener to your plugin’s events. If there is a status change for a job, your plugin needs to call fireEvent(GridEvent ge) method for sending the event notification to Pipeline. You may choose an event-based model or a pulling model for job monitoring. Event-based model is preferred for performance and scalability reasons. Most likely your grid resource manager has an event-based API for you to use.

You can find javadoc for the Pipeline Grid Plugin package here. If you have any questions or comments, you can post them on the Pipeline Forum.

Previous: 5. Monitor and Manage Table of Contents