none
Is there a fast way to queue jobs? RRS feed

  • Question

  • We have a small cluster of 8 nodes and 40 cores.  We have jobs which consist of 600+ individual tasks with no dependencies between tasks.  We are experiencing very slow queuing of tasks in the job.   It sometimes takes up to a minute to queue 1000 jobs (which is longer than individual tasks take to run!). We are enqueuing the jobs with a loop (roughly) like this:

    job = scheduler.CreateJob() 
    // set job params 
     
    for (int k = 0; k < 1000; k++) { 
      task = job.CreateTask(); 
      // set task params 
      job.AddTask(task); 
     
    scheduler.SubmitJob(job); 

    Is there a better way?  We have tried using parametric jobs (although this is not really suitable for our tasks) and this does give some increase in performance, but is still slow.  We also tried creating 1000 jobs, this was also slow, but did have the advantage that early jobs started running straight away.

    I believe we are using Windows HPC Server 2008, RC1.



    Monday, August 18, 2008 10:57 PM

Answers

  • I think you are doing everything correctly.  You could submit the job with a few tasks in it and then add more tasks once it's started (this will get you started pretty quickly anyway).

    It takes a while to get all of this stuff into SQL!  We're working on improvements for v2 and will likely do more for v3.

    Thanks,
    Josh
    -Josh
    Wednesday, August 27, 2008 5:49 PM
    Moderator