ROBUST, LOW-OVERHEAD, APPLICATION TASK MANAGEMENT METHOD
First Claim
1. An application task management method that comprises:
- populating a data structure with a list of one or more tasks, at least one of which is unfinished; and
operating a pool of multiple processing instances until the unfinished tasks are completed, each processing instance;
performing a check-out of one or more unfinished tasks with a check-out request that includes an ID of the processing instance and a task timeout value;
transforming the one or more unfinished tasks into one or more finished tasks;
providing a check-in of the one or more finished tasks; and
optionally repeating the performing, transforming, and providing,wherein the performing and providing are each implemented using a file lock to ensure exclusive access to the data structure.
1 Assignment
0 Petitions
Accused Products
Abstract
Application task management (“ATM”) methods may employ a task list stored in a file on a nonvolatile information storage medium. Parallel processing instances employ an application programming interface (“API”) that enables each processing instance to individually access the task list. The access protocol enforced by the API is sufficient to provide robust, fault-tolerant behavior without requiring a specific process or daemon to be responsible for ATM. The API may employ a locking mechanism based on universal or widely-available operating system calls (such as directory creation) that implicitly or explicitly guarantee atomic operations. Each processing instance performs a check-out of unfinished tasks with a request that includes a timeout value, transforms the unfinished tasks into finished tasks, and provides a check-in of the finished tasks, and repeats. This approach supports the use of a variety of models through the use of chained or nested task lists, and it can be readily scaled.
9 Citations
20 Claims
-
1. An application task management method that comprises:
-
populating a data structure with a list of one or more tasks, at least one of which is unfinished; and operating a pool of multiple processing instances until the unfinished tasks are completed, each processing instance; performing a check-out of one or more unfinished tasks with a check-out request that includes an ID of the processing instance and a task timeout value; transforming the one or more unfinished tasks into one or more finished tasks; providing a check-in of the one or more finished tasks; and optionally repeating the performing, transforming, and providing, wherein the performing and providing are each implemented using a file lock to ensure exclusive access to the data structure. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A computing system that comprises:
-
a non-transient information storage medium having a data structure that includes a list of one or more tasks for a high-performance computing application; one or more processing units that together execute a pool of multiple processing instances, each processing instance; performing a check-out of one or more unfinished tasks with a check-out request that includes an ID of the processing instance and a task timeout value; transforming the one or more unfinished tasks into one or more finished tasks; providing a check-in of the one or more finished tasks; and optionally repeating the performing, transforming, and providing, wherein the performing and providing are each implemented using a file lock to ensure atomic access to the data structure. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20)
-
Specification