IP Library Granted Patent US 10,261,911
Granted Patent B2
US 10,261,911 · App. 15/642,364 · Granted Apr 16, 2019

Apparatus and method for computational workflow management

Inventors: Brian E. Ahr (Ellicott City, MD); Jonathan Z. Gehman (Silver Spring, MD); Khadir A. Griffith (Towson, MD); Gary L. Jackson, II (Laurel, MD); William J. La Cholter (Washington, DC); Anthony J. Castellani (Columbia, MD)
Assignee: The Johns Hopkins University
G06F12/0891G06F9/5016G06F9/5066G06F12/0842G06F12/121G06F2209/5014G06F2209/5017G06F2212/1041G06F2212/1052G06F2212/60
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,261,911
App. No.
15/642,364
Granted
Apr 16, 2019
Kind
B2
Abstract

Apparatuses and methods for performing computational workflow management are provided. An example apparatus may include processing circuitry. The processing circuitry may be configured to receive a computation resource reservation request for cache from a client to perform a computation, and decompose the computation into a workflow of tasks, generate a task label for each task result and the associated task, and compare a selected task label with previous task labels to determine if the selected task label matches one of the previous task labels. The processing circuitry may be further configured to, in response to determining that the selected task label matches one of the previous task labels, perform the computation using a task result that is associated with the matched one of the previous task labels that is currently stored in the cache for the task result of the selected task label.

Claims (56)

1. An apparatus configured to perform computational workflow management, the apparatus comprising processing circuitry and a cache, the processing circuitry configured to:

receive a computation resource reservation request for the cache from a client;

decompose the computation resource reservation request into a workflow of tasks, wherein each task has a task result and wherein at least some tasks are dependent upon the task results of other tasks;

generate a task label for each task result and its associated task, wherein each task label is a functional description of the associated task and tasks that are dependent upon the task result of the associated task;

compare a selected task label with previous task labels to determine if the selected task label matches one of the previous task labels, wherein the selected task label is one of the generated task labels, and wherein the previous task labels are associated with task results for previously executed tasks that are currently stored in the cache;

in response to determining that the selected task label matches one of the previous task labels, retrieve the task result associated with the matched one of the previous task labels from the cache; and

in response to determining that the selected task label does not match any of the previous task labels, evict portions of the cache associated with the previous task labels that do not match the selected task label and are not reserved by other workflows, perform the task associated with the selected task label, and store the task result of the performance to the evicted portions of the cache.

2. The apparatus of claim 1 , wherein the processing circuitry is further configured to:

release a portion of the cache reserved for a task that is dependent upon the selected task when the selected task is complete.

3. The apparatus of claim 1 , wherein the processing circuitry is further configured to:

receive a maximum memory size bound for each task in the workflow.

4. The apparatus of claim 3 , wherein the processing circuitry is further configured to:

calculate cache size requirements for the workflow based on the maximum memory size bound for each task in the workflow.

5. The apparatus of claim 1 , wherein the processing circuitry is further configured to:

receive a maximum memory size bound for each task in the workflow;

compare the generated task labels with the previous task labels to identify previous task labels that do not match the generated task labels and are not reserved by the other workflows;

evict portions of the cache associated with the previous task labels that do not match the generated task labels and are not reserved by the other workflows; and

calculate cache size requirements for the workflow based on the maximum memory size bound for each task in the workflow and the evicted portions of the cache.

6. The apparatus of claim 1 , wherein the generated labels have a fixed length.

7. The apparatus of claim 1 , wherein the processing circuitry is further configured to:

request and receive, from the cache, a listing of the previous task labels for the comparison.

8. An apparatus configured to perform computational workflow management, the apparatus comprising processing circuitry and a cache, the processing circuitry configured to:

receive a computation resource reservation request for the cache from a client;

decompose the computation resource reservation request into a workflow of tasks, wherein each task has a task result and wherein at least some tasks are dependent upon the task results of other tasks;

generate a task label for each task result and its associated task, wherein each task label is a functional description of the associated task and tasks that are dependent upon the task result of the associated task;

compare the generated task labels with previous task labels to identify previous task labels that do not match the generated task labels, wherein the previous task labels are associated with task results for previously executed tasks that are currently stored in a cache;

evict portions of the cache associated with the previous task labels that do not match the generated task labels and are not reserved by other workflows;

perform the tasks associated with the generated task labels that do not match the identified previous task labels; and

store the task results of the performance to the evicted portions of the cache.

9. The apparatus of claim 8 , wherein the processing circuitry is further configured to:

receive a maximum memory size bound for each task in the workflow.

10. The apparatus of claim 9 , wherein the processing circuitry is further configured to:

calculate cache size requirements for the workflow based on the maximum memory size bound for each task in the workflow.

11. The apparatus of claim 9 , wherein the processing circuitry is further configured to:

calculate cache size requirements for the workflow based on the maximum memory size bound for each task in the workflow and the evicted portions of the cache.

12. A method for performing computational workflow management, the method comprising:

receiving a computation resource reservation request for a cache from a client;

decomposing the computation resource reservation request into a workflow of tasks, wherein each task has a task result and wherein at least some tasks are dependent upon the task results of other tasks;

generating a task label for each task result and its associated task, wherein each task label is a functional description of the associated task and tasks that are dependent upon the task result of the associated task;

comparing a selected task label with previous task labels to determine if the selected task label matches one of the previous task labels, wherein the selected label is one of the generated labels, and wherein the previous task labels are associated with task results for previously executed tasks that are currently stored in the cache; and

in response to determining that the selected task label matches one of the previous task labels, retrieving the task result associated with the matched one of the previous task labels from the cache; and

in response to determining that the selected task label does not match any of the previous task labels, evicting portions of the cache associated with the previous task labels that do not match the selected task label and are not reserved by other workflows, performing the task associated with the selected task label, and storing the task result of the performance to the evicted portions of the cache.

13. The method of claim 12 , further comprising:

releasing a portion of the cache reserved for a task that is dependent upon the selected task when the selected task is complete.

14. The method of claim 12 , further comprising:

receiving a maximum memory size bound for each task in the workflow.

15. The method of claim 14 , further comprising:

calculating cache size requirements for the workflow based on the maximum memory size bound for each task in the workflow.

16. The method of claim 12 , further comprising:

receiving a maximum memory size bound for each task in the workflow;

comparing the generated task labels with the previous labels to identify previous task labels that do not match the generated task labels and are not reserved by the other workflows;

evicting portions of the cache associated with the previous task labels that do not match the generated task labels and are not reserved by the other workflows; and

calculating cache size requirements for the workflow based on the maximum memory size bound for each task in the workflow and the evicted portions of the cache.

17. The method of claim 12 , wherein the generated labels have a fixed length.

18. The method of claim 12 , further comprising:

requesting and receiving, from the cache, a listing of the previous task labels for the comparison.

Assignments (4)
CONFIRMATORY LICENSE Recorded Jul 19, 2017
From: THE JOHNS HOPKINS UNIVERSITY APPLIED PHYSICS LABORATORY
To: THE GOVERNMENT OF THE UNITED STATES OF AMERICA AS REPRESENTED BY THE SECRETARY OF THE NAVY
Reel/Frame 043242/0565 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 6, 2017
From: GEHMAN, JONATHAN Z.; JACKSON, GARY L., II; GRIFFITH, KHADIR A.
To: THE JOHNS HOPKINS UNIVERSITY
Reel/Frame 042914/0239 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 6, 2017
From: AHR, BRIAN E.; LA CHOLTER, WILLIAM J.
To: THE JOHNS HOPKINS UNIVERSITY
Reel/Frame 042921/0187 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 6, 2017
From: CASTELLANI, ANTHONY J.
To: THE JOHNS HOPKINS UNIVERSITY
Reel/Frame 043096/0307 →
Continuity (2)
Provisional Application 62384735 · Sep 8, 2016
Related Publication 20180067865A1 · Mar 8, 2018