HPC::Runner::Command::submit_jobs::Utils::Scheduler::ResolveDeps;
Once we have parsed the input file parse each job_type for job_batches
Attributes
schedule
Schedule our jobs
Subroutines
schedule_jobs
Use Algorithm::Dependency to schedule the jobs
Catch any scheduling errors not caught by the sanity check
sanity_check_schedule
Run a sanity check on the schedule. All the job deps should have existing job names
chunk_commands
Chunk commands per job into batches
#TODO Clean this up
resolve_max_array_size
Arrays should not be greater than the max_array_size variable
If it is they need to be chunked up into various arrays
Each array becomes its own 'batch'
assign_batch_stats
Iterate through the batches to assign stats (number of batches per job, number of tasks per command, etc)
assign_batches
Each jobtype has one or more batches iterate over the the batches to get some data and assign s
For batches - each HPC::Runner::Command::submit_jobs::Utils::Scheduler::Batch
is an element in the array Each element could has commands_per_node tasks
assign_batch_tags
Parse the #TASK lines to get batch_tags #TODO We should do this while are reading in the file