Runnable: A runnable is an atomic unit of work, generally work that can be encompassed by a single function running on a single engine. Runnables can have dependencies on other runnables.
Client: Clients are OS processes that contain runnables.
Epoch: A periodic time base which dictates the rate at which a sub-graph of runnables is respawned.
Resource: Any hardware engine (e.g., CPU, GPU, etc.) or software resources (e.g., CUDA streams, scheduling mutexes, etc.) shared by multiple runnables that need to be modeled by the STM compiler.