private static void SubmitQueue(int taskPerJobCount, string caseName, RangeCollection nullIndexRangeCollection, ICluster cluster, string id, string password, Queue <ITask> taskQueue)
        {
            while (taskQueue.Count != 0)
            {
                IJob   job = cluster.CreateJob();
                string firstPieceIndex = null, lastPieceIndex = null;
                for (int iTaskPerJob = 0; iTaskPerJob < taskPerJobCount; ++iTaskPerJob)
                {
                    ITask  task           = taskQueue.Dequeue();
                    string taskPieceIndex = task.Name.Split(' ')[1];
                    if (iTaskPerJob == 0)
                    {
                        firstPieceIndex = taskPieceIndex.ToString();
                    }
                    lastPieceIndex = taskPieceIndex;
                    job.AddTask(task);
                    job.Runtime = task.Runtime;

                    if (taskQueue.Count == 0)
                    {
                        break;
                    }
                }
                string jobName = SpecialFunctions.CreateTabString(caseName, firstPieceIndex + "-" + lastPieceIndex,
                                                                  nullIndexRangeCollection).Replace("\t", " "); //!!!create a nicer way to make a space delimited list
                job.Name = jobName.Substring(0, Math.Min(jobName.Length, 70));
                Console.WriteLine(job.Name);
                job.IsExclusive = false;
                cluster.AddJob(job);
                cluster.SubmitJob(job.Id, id, password, true, 0);
            }
        }