The DAGScheduler group tasks in a single stage as a TaskSet.

Then the TaskSet is submitted to TaskSchedulerImpl, one implementation of TaskScheduler. [TaskScheduler] manages multiple TaskSet, and TaskSetManager manages tasks within a TaskSet.

The final task actions are done by SchedulerBackend.