While there are active events {
Process head of workload trace queues
Determine active messages
Generate Routing Array for active messages
Generate Contention Array
Calculate communication cost
Calculate Event Horizon
Adjust consumed communication length
}