TS Schedule Running Slowly
Steps to resolve slow schedule run time.
Preface
Cache Files
In your working folder you will see these files:
Tactical Scheduler file (.tsch)
Haul Infinity file (.hinf)
Cache file (.cache)
The cache file is used to store cycle time results from Haul Infinity. The bigger the cache file, the faster the schedule, because it can look up the cycle times instead of recalculating them.
If Haul Infinity is modified, or if the cache file is deleted, then the cache is regenerated on the next schedule run. This is why the schedule runs slower after changing Haul Infinity, and gets faster on subsequent runs.
Expected Performance
Assuming that the cache file is present:
Schedules with ~3,000 blocks should take 0-2 seconds to run one period.
Schedules with ~10,000 blocks should take 5-15 seconds to run one period.
Schedules with ~100,000 blocks may take 30-60 seconds to run one period.
The top right of the scheduling dialog contains some statistics on the current run. As a general rule, neither the Available Sources nor the Available Destinations should exceed 200.
Available Sources should not exceed 200.
Faster Scheduling
Check 1: Setup > On Bench Dependencies
Check 2: Setup > Between Benches
Check 3: Setup > Destination Logic.
Check 4: Setup > Agents.
Check 5: Setup > Incentives.
Check 6: Schedule > Calendar > Agents / Drills
Check 7: Setup > Stockpiles > Parcel Fingers
Check 8: Schedule > Calendar > Drills.
Check 9: Haul Infinity > Join Interaction Mode > Auto Joins.
Â
Check 1: Setup > On Bench Dependencies
Try to avoid using the <None> dependency type in long term plans. Switching to the Branch Out dependency type may yield a 3-4x speed improvement due to the reduced number of available blocks at each time step.
Avoid using <None> dependencies on benches.
Check 2: Setup > Between Benches
Any bench with a <None> Expand Distance is considered available to mine in every time period, even if it is underground. This slows down the schedule, in addition to allowing underground mining on that bench.
Avoid using <None> dependencies between benches.
Check 3: Setup > Destination Logic.
If you have more than 10 dumps, split the dump destinations into an ordered list. This reduces the number of haul routes that have to be tested at each time step.
Ordering the dump destinations reduces the scheduling time.
Check 4: Setup > Agents.
Try to avoid using the Proportional Extraction setting. This can square the scheduling time, since it mines every material in multiple passes instead of one pass.
Proportional Extraction can square the scheduling time.
Check 5: Setup > Incentives.
Generally speaking, an Agent should not be tasked with more than 10 incentives.
Check 6: Schedule > Calendar > Agents / Drills.
In each period, try to enter zeroes in any incentive that is not relevant to the activities in that period. For example, in a project has 20 priority incentives (one mining sequence for each cutback), the Agent should only be following the incentives that apply to its current locations.
Check 7: Setup > Stockpiles > Parcel Fingers.
Check how many material types can be mapped into a stockpile. If the project has over 30 material types, use a Mutex Subset to map the ex-pit material types into simpler ROM blend categories. This reduces the number of inputs into the crusher feed optimisation.
Check 8: Schedule > Calendar > Drills.
Do not enter 1000 drills into the Calendar. Every drill becomes an individual agent, and runs its own calculations to figure out where to drill. If you need to uncap the drills, change the drill time usage to 10,000% utilisation.
Check 9: Haul Infinity > Join Interaction Mode > Auto Joins.
Try to avoid letting blocks in Haul Infinity connect indiscriminately to 10+ nearby roads/ramps. Each additional connection increases the pathfinding calculation time.
For increased accuracy, speed, and ease of use, implement ramp locking in your Haul Infinity project.