Performing computational jobs on heterogeneous computing resources is able to be difficult because of the different middleware available (e.g. PBS/Torque, SGE, LSF, SLURM, Globus, CREAM, etc.). These middle-wares with different interfaces are seldom compatible with each other, creating substantial barriers to users.
To deal with this issue, DRM4G can define, submit, and manage jobs among cluster, grid and cloud resources. It enables a single point of control for these resources. Furthermore, DRM4G provides an adaptive scheduling, with fault recovery mechanisms and on-request and opportunistic job migration, which can operate independently from the resources.