I think you need to take advantage of GridComputeTaskContinuousMapper class which allows you to have a constant number of outstanding jobs within a task and then emit new jobs once other jobs complete.
Take a look at ComputeContinuousMapperExample shipped with GridGain (also available on GitHub).