IP Library › Granted Patent US 9,715,475
Granted Patent B2
US 9,715,475 · App. 15/215,374 · Granted Jul 25, 2017

Systems and methods for in-line stream processing of distributed dataflow based computations

Inventor: Maysam Lavasani (Cupertino, CA)
Assignee: BIGSTREAM SOLUTIONS, INC.
G06F13/4265G06F3/0613G06F3/0659G06F3/0683G06F9/5066G06F9/54G06F13/102G06F13/36
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 9,715,475
App. No.
15/215,374
Granted
Jul 25, 2017
Kind
B2
Abstract

A data processing system is disclosed that includes machines having an in-line accelerator and a general purpose instruction-based general purpose instruction-based processor. In one example, a machine comprises storage to store data and an Input/output (I/O) processing unit coupled to the storage. The I/O processing unit includes an in-line accelerator that is configured for in-line stream processing of distributed multi stage dataflow based computations. For a first stage of operations, the in-line accelerator is configured to read data from the storage, to perform computations on the data, and to shuffle a result of the computations to generate a first set of shuffled data. The in-line accelerator performs the first stage of operations with buffer less computations.

Claims (32)

1. A machine comprising:

storage to store data; and

an Input/output (I/O) processing unit coupled to the storage, the I/O processing unit having an in-line accelerator that is configured for in-line stream processing of distributed multi stage dataflow based computations including for a first stage of operations to read data from the storage and to perform computations on the data with buffer less computations, wherein the in-line accelerator is further configured to shuffle a result of the computations to generate a first set of shuffled data, wherein the in-line accelerator is further configured for a second stage of operations to receive the first set of shuffled data from the first stage, to perform computations on the first set of shuffled data, and to shuffle a result of the computations to generate a second set of shuffled data.

2. The method of claim 1 , wherein a compiler automatically compiles code into the in-line accelerator for computations.

3. The machine of claim 2 , wherein the in-line accelerator performs the second stage of operations with buffer less computations.

4. The machine of claim 2 , wherein the in-line accelerator is further configured for a third stage of operations to receive the second set of shuffled data from the second stage, to perform computations on the second set of shuffled data, and to store a result of the computations in the storage.

5. The machine of claim 1 , further comprising:

a general purpose instruction-based processor coupled to the I/O processing unit, wherein the in-line accelerator is configured to perform the operations of the first stage, the second stage, and the third stage without utilizing the general purpose instruction-based processor.

6. The machine of claim 1 , wherein the in-line accelerator is implemented on a Field Programmable Gate Array (FPGA), a many-core, a graphical processing unit (GPU), or an application specific integrated circuit (ASIC).

7. A data processing system comprising:

a first server having a network connection, storage to store data, and a first Input/output (I/O) processing unit having a first in-line accelerator that is configured for in-line stream processing of distributed multi stage dataflow based computations including for a first stage of operations to read data from the storage, to perform computations on the data, and to shuffle a result of the computations to generate a first set of shuffled data; and

a second server coupled to the first server, a second server having a network connection, storage to store data, and a second Input/output (I/O) processing unit having a second in-line accelerator that is configured for in-line stream processing of distributed multi stage dataflow based computations including for the first stage of operations to read data from the storage, to perform computations on the data, and to shuffle a result of the computations to generate a second set of shuffled data.

8. The data processing system of claim 7 , wherein the first and second in-line accelerators perform the first stage of operations with buffer less computations.

9. The data processing system of claim 8 , wherein the first in-line accelerator is further configured for a second stage of operations to receive the first and second sets of shuffled data from the first stage, to perform computations on the first and second sets of shuffled data, and to shuffle a result of the computations to generate a third set of shuffled data.

10. The data processing system of claim 9 , wherein the second in-line accelerator is further configured for the second stage of operations to receive the first and second sets of shuffled data from the first stage, to perform computations on the first and second sets of shuffled data, and to shuffle a result of the computations to generate a fourth set of shuffled data.

11. The data processing system of claim 10 , wherein the first and second in-line accelerators perform the second stage of operations with buffer less computations.

12. The data processing system of claim 11 , wherein the first in-line accelerator is further configured for a third stage of operations to receive the third and fourth set of shuffled data from the second stage, to perform computations on the third and fourth sets of shuffled data, and to store a result of the computations in the storage.

13. The data processing system of claim 12 , wherein the second in-line accelerator is further configured for the third stage of operations to receive the third and fourth sets of shuffled data from the second stage, to perform computations on the third and fourth sets of shuffled data, and to store a result of the computations in the storage.

14. The data processing system of claim 7 , wherein the first server further comprising:

a first general purpose instruction-based processor coupled to the first I/O processing unit, wherein the first in-line accelerator is configured to perform the operations of the first stage, the second stage, and the third stage without utilizing the first general purpose instruction-based processor.

15. The data processing system of claim 7 , wherein the second server further comprising:

a second general purpose instruction-based processor coupled to the second I/O processing unit, wherein the second in-line accelerator is configured to perform the operations of the first stage, the second stage, and the third stage without utilizing the second general purpose instruction-based processor.

16. The data processing system of claim 7 , wherein the first and second in-line accelerators are each implemented on a Field Programmable Gate Array (FPGA).

17. A computer-implemented method comprising:

performing in-line stream processing of distributed multi stage dataflow based computations with an input/output (I/O) processing unit of a machine having an in-line accelerator that is configured for a first stage of operations to read data from a storage of the machine, to perform computations on the data, and to shuffle a result of the computations to generate a first set of shuffled data;

receiving, with the in-line accelerator for a second stage of operations, the first set of shuffled data from the first stage;

performing computations on the first set of shuffled data; and

shuffling a result of the computations to generate a second set of shuffled data, wherein the in-line accelerator performs the first stage of operations with buffer less computations.

18. The computer-implemented method of claim 17 , wherein the in-line accelerator performs the second stage of operations with buffer less computations.

19. The computer-implemented method of claim 18 , further comprising: receiving, with the in-line accelerator for a third stage of operations, the second set of shuffled data from the second stage;

performing computations on the second set of shuffled data; and

storing a result of the computations in the storage.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 20, 2016
From: LAVASANI, MAYSAM
To: BIGSTREAM SOLUTIONS, INC.
Reel/Frame 039202/0868 →
Continuity (3)
Continuation In Part 14885636 · Oct 16, 2015
Provisional Application 62194885 · Jul 21, 2015
Related Publication 20170024352A1 · Jan 26, 2017