Every computation occurs in some runtime. The challenge is to accomplish complex tasks using available runtime even when it is clearly impossible to use a single runtime to complete the task. Therefore, there is a need to atomise the complete task into a coherent sequence of runtimes to accomplish the task.
In practical terms, each runtime is realised through one or more computational processes. Each process may spawn multiple child processes and it may be the necessary to communicate between processes. Additionally, it may be necessary to avail a non-terminating process to assist the main process to complete its task.
Runtimes may be:
The above are various techniques by which to exploit compute runtime to complete some task. It is the task of the system architect to decide which types of runtimes are suitable to accomplish the system's aims.