Execution model
In the case of different shader types, the Rendering Pipeline decided how and when they had to be invoked. Since the Rendering Pipeline stopped working, we had to take care of its jobs—synchronization, thread management, and so on.
Anticipate a single computer shader execution. Computer shaders' terminology defines this as a work item. These work items cannot be invoked independently; they are separated in groups. A work group encapsulates an arbitrary number of work items, which is specified by the programmer but limited by the hardware capabilities. Work groups run all their items in a parallel way—more or less synchronized. Also, items inside a group can share memory and synchronization mechanisms. All work groups must have the same number of work items and each work group is executed independently from the others, totally isolated, and in an unspecified order.
Furthermore, work groups are grouped by dimensions. We can choose to arrange them in one, two, or three dimensions...