code: def submit_jobs(root_dir, jobs, sgeargs=None):
      
      waiting = list(jobs)                 # List of jobs still to be done
      # Loop over the list of pending jobs, while there still are any
      while len(waiting) > 0:
          # extract submittable jobs
          submittable = extract_submittable_jobs(waiting)
          # run those jobs
          submit_safe_jobs(root_dir, submittable, sgeargs)
          # remove those from the waiting list
          for job in submittable:
              waiting.remove(job)
docs: Submit each of the passed jobs to the SGE server, using the passed
      directory as root for SGE output.
  
      - root_dir       Path to output directory
      - jobs           List of Job objects