SDK Scheduler/Time Machine

Hi, I have a few questions regarding the scheduler/time machine:

There are two example configurations in the documents;

“scheduler”: {
“use_time_machine”: true,
“clock_scale”: 1.0,
“execution_groups”: [
{
“name”: “MyTestWorkerGroup”,
“cores”: [0,1,2,3],
“workers”: true
},
{
“name”: “MyTestBlockerGroup”,
“cores”: [4,5,6,7],
“workers”: false
}
]
}

“scheduler”: {
“use_time_machine”: true,
“clock_scale”: 1.0,
“default_execution_group_config”: [
{
“worker_cores”: [0,1],
“blocker_cores”: [4,5]
}
]
}

But neither seem to have any effect on applications or simulation.

I would like to know:

Where it is relevant to input this configuration (in the bridge_config or in the app’s .config.json)?

What components does the node have (what do I need to put in my .graph)?

How can I activate the time machine?

How exactly does the clock_scale variable effect system time (higher = faster or slower)?

Thanks

Hi.

Clock scale should work naturally with bigger numbers meaning faster.

The time machine works by detecting gaps in the schedule where no work is occurring and then jumping time forward past those gaps. It is not designed to work with blocking tasks(e.g., tasks communicating with hardware) and is really only intended for simulation or fast replay of logs.

If it is not working then there’s probably a high frequency periodic task running somewhere in the system. Possibly the keep alive heart beat or some other background update task. I’d check the scheduler log at shutdown to see what is running in your application.

Cheers.