RSS

Pipeline Grid Plugin API Developers Guide

Starting from Pipeline 4.4 it is possible for developers to implement custom plugins of their own grid resource managers for the Pipeline server. As shown in the diagram below, the Pipeline Grid Plugin is an API of the Pipeline which allows communication 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()

GridJobInfo getJobInfo(String jobId)

void killJob(String jobId)

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 either registerEventListener(GridEventListener gel) or sendEvent(GridEvent ge) to inform the Pipeline server the change of job status. 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.