A basic example with 4 job classes requiring different numbers of cores, useful for initial testing and understanding policy behaviour.
identifier = "simple_heterogeneous"
events = 100000
repetitions = 20
cores = 16
# Use FIFO policy (can substitute with any policy)
policy = "fifo"
# All classes use exponential distributions
arrival.distribution = "exponential"
service.distribution = "exponential"
service.mean = 1
# Define job classes with different server requirements
[[class]]
cores = 1
arrival.prob = 0.4 # 40% of arrivals
[[class]]
cores = 2
arrival.prob = 0.3 # 30% of arrivals
[[class]]
cores = 4
arrival.prob = 0.2 # 20% of arrivals
[[class]]
cores = 8
arrival.prob = 0.1 # 10% of arrivals
# Sweep across arrival rates to observe performance
[[pivot]]
arrival.rate = [0.5, 1.0, 2.0, 3.0, 4.0, 5.0]
With 16 total cores and this workload:
FIFO will experience head-of-line blocking when 8-core jobs arrive and fewer than 8 servers are available, even if smaller jobs could be accommodated.
Inputs/simple_heterogeneous.toml./simulator simple_heterogeneousResults/simple_heterogeneous/policy to compare different scheduling approachesarrival.prob values to test different workload mixesservice.mean per class to create service time heterogeneityarrival.rate array to explore stability boundaries