Patent ID: 9658887
Date: 2017-05-23
CPC Classifications: G06F

Claim:
1. A method for parent-child scheduling and management of a computer workload, the method comprising: initiating, by a workload scheduler, a parent task of a parent-child workload session submitted by a client application, by scheduling the parent task on a resource available to, and under control of the workload scheduler; receiving, by the workload scheduler, a request to schedule one or more child tasks as a result of performing at least part of the parent task of the parent-child workload session, wherein the parent task of the parent-child workload session is dependent on a result of the one or more child tasks, wherein each of the one or more child tasks are descendants of the parent task and are arranged in a generation of child tasks, wherein at least one child task that becomes a parent task of one or more child tasks becomes a parent task of a subsequent generation of child tasks, wherein the one or more generations of child tasks are arranged in an inverted tree structure with a first parent task as a root task with descendent child tasks, wherein branches of the inverted tree structure connect each generation of child tasks with the root task, and wherein each branch ends with at least one terminal task, which is at least one child task that has no descendant child tasks; receiving, by the workload scheduler, a message from the parent task of the parent-child workload session to the workload scheduler, yielding the resource to the workload scheduler on which at least part of the parent task has been performed, wherein the workload scheduler schedules a child task of the branch of the inverted tree structure that includes the parent task, and having a fewest number of generations of child tasks on the resource yielded by the parent task; determining, by the workload scheduler, a resume request for the parent task; and returning, by the workload scheduler, the resource yielded by the parent task to the parent task, upon completion of the child task of the branch of the inverted tree structure that includes the parent task of the parent-child workload session having a fewest number of generations of child tasks, and receipt by the parent task of dependencies from the completion of the child task.