Pull-based job scheduling (was: [Bioclusters] Best ways to ta ckle migration to dedicated cluster/Farm)

Moxon, Bruce bioclusters@bioinformatics.org
Fri, 26 Mar 2004 14:30:04 -0800

I have also successfully implemented a RDBMS-based pull system that worked
very well.  I did this at Perlegen as part of their SNP Discovery project
where we processed over 100 TB of microarray imagery in a bit over a year.  
The implementation there was for a ~60 node Windows compute cluster.  I used
Oracle as the "scheduling" engine, and employed a thin "pull/dispatch"
process on each client.  This thin pull/dispatch process was also deployable
on Windows desktops to provide cycle stealing during off-hours.

We were able to monitor/schedule 10s of thousands of tasks per day using
this model; I believe the system could have scaled to many 100s of 1000s,
and would have supported a cluster of hundreds of nodes.

From my perspective, a database-centric pull model has a number of benefits,

* the fact that SQL is used as the task dispatching and reporting protocol
(cross-platform portable)
* immediate access (via excel and query reporting tools) to scheduling and
execution information for exception handling, utilization reporting,
trending, etc.
* it is easy to record job state simply with a quick DB transaction, and
thus simple to track job progress and identify hung or dead jobs
* the matchmaking policy can be implemented with stored procedure logic that
can be augmented to include things like operational priorities, which can
all be table-driven


Bruce Moxon
Chief Solutions Architect, Panasas Inc.
Delivering the premier storage system for scalable Linux clusters