IP Library Granted Patent US 11,563,621
Granted Patent B2
US 11,563,621 · App. 17/374,864 · Granted Jan 24, 2023

Cluster computing

Inventors: Zvi Tannenbaum (Palo Alto, CA); Dean E. Dauger (Huntington Beach, CA)
Assignee: Advanced Cluster Systems, Inc.
H04L41/04G06F9/5072G06F9/54G06F15/76
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 11,563,621
App. No.
17/374,864
Granted
Jan 24, 2023
Kind
B2
Abstract

In some embodiments, a computer cluster system comprises a plurality of nodes and a software package comprising a user interface and a kernel for interpreting program code instructions. In certain embodiments, a cluster node module is configured to communicate with the kernel and other cluster node modules. The cluster node module can accept instructions from the user interface and can interpret at least some of the instructions such that several cluster node modules in communication with one another and with a kernel can act as a computer cluster.

Claims (78)

1. A computer cluster comprising:

a first processor;

a second processor;

a third processor;

at least one computer-readable medium in communication with at least one of the first processor, the second processor, or the third processor;

a first kernel residing in the at least one computer-readable medium, said first kernel configured to translate commands into code for execution on the first processor;

a first cluster node module residing in the at least one computer-readable medium, said first cluster node module configured to:

receive first commands from a user interface without the first commands first passing through the first kernel, and

after receiving the first commands from the user interface, send second commands to the first kernel;

a second kernel residing in the at least one computer-readable medium, said second kernel configured to translate commands into code for execution on the second processor;

a second cluster node module residing in the at least one computer-readable medium, said second cluster node module configured to send commands to the second kernel and communicates with the first cluster node module;

a third kernel residing in the at least one computer-readable medium, said third kernel configured to translate commands into code for execution on the third processor; and

a third cluster node module residing in the at least one computer-readable medium, said third cluster node module configured to send commands to the third kernel and configured to communicate with the first cluster node module and the second cluster node module;

wherein each of the first, second, and third cluster node modules can transmit tasks to any other of the first, second, and third cluster node modules without transmitting the tasks through a master node, and wherein the first cluster node module comprises a data structure in which messages originating from the second and third cluster node modules are stored.

2. The computer cluster of claim 1 , wherein the first cluster node module is logically positioned between the user interface and the first kernel.

3. The computer cluster of claim 1 , wherein the at least one computer-readable medium comprises a first computer-readable medium coupled to at least the first processor and a second computer-readable medium coupled to at least the second processor, wherein the first kernel and the first cluster node module reside in the first computer-readable medium, and wherein the second kernel and the second cluster node module reside in the second computer-readable medium.

4. The computer cluster of claim 1 , further comprising a cluster configuration module that initializes at least one of the first cluster node module, the second cluster node module, or the third cluster node module.

5. The computer cluster of claim 1 , wherein the second cluster node module communicates with the first cluster node module using commands that implement at least a portion of a Message-Passing Interface.

6. The computer cluster of claim 1 , wherein the data structure of the first cluster node module comprises a received message queue.

7. The computer cluster of claim 6 , wherein the first cluster node module further comprises a message receiving queue, in which data specifying a location to which the first cluster node module can expect to receive an expression and an identifier of a processor from which the expression is expected to be sent are stored.

8. The computer cluster of claim 1 , wherein the second cluster node module further comprises a received message queue in which messages originating from the first and third cluster node modules are stored.

9. The computer cluster of claim 1 , wherein the first cluster node module comprises an advanced functions module, and wherein the advanced functions module comprises a call that evaluates an expression across the computer cluster in parallel.

10. The computer cluster of claim 9 , wherein the advanced functions module comprises a call that calculates a Fourier transform across the computer cluster in parallel.

11. The computer cluster of claim 9 , wherein the advanced functions module comprises one or more calls that evaluate matrix operations across the computer cluster in parallel.

12. The computer cluster of claim 1 , wherein the second commands comprise at least one of the first commands.

13. A computer cluster comprising:

a first processor;

a second processor;

a third processor;

at least one computer-readable medium in communication with at least one of the first processor, the second processor, or the third processor;

a first kernel residing in the at least one computer-readable medium, said first kernel configured to translate commands into code for execution on the first processor;

a first cluster node module residing in the at least one computer-readable medium, said first cluster node module configured to:

first receive first commands from a user interface, and

after receiving the first commands from the user interface, send second commands to the first kernel;

a second kernel residing in the at least one computer-readable medium, said second kernel configured to translate commands into code for execution on the second processor;

a second cluster node module residing in the at least one computer-readable medium, said second cluster node module configured to send commands to the second kernel and communicates with the first cluster node module;

a third kernel residing in the at least one computer-readable medium, said third kernel configured to translate commands into code for execution on the third processor; and

a third cluster node module residing in the at least one computer-readable medium, said third cluster node module configured to send commands to the third kernel and configured to communicate with the first cluster node module and the second cluster node module;

wherein each of the first, second, and third cluster node modules can transmit tasks to any other of the first, second, and third cluster node modules without transmitting the tasks through a master node, and wherein the first cluster node module comprises a data structure in which messages originating from the second and third cluster node modules are stored.

14. The computer cluster of claim 13 , wherein the first cluster node module is logically positioned between the user interface and the first kernel.

15. The computer cluster of claim 13 , further comprising a communications network for connecting at least two of the first processor, the second processor, or the third processor to one another.

16. The computer cluster of claim 13 , wherein the at least one computer-readable medium comprises a first computer-readable medium coupled to at least the first processor and a second computer-readable medium coupled to at least the second processor, wherein the first kernel and the first cluster node module reside in the first computer-readable medium, and wherein the second kernel and the second cluster node module reside in the second computer-readable medium.

17. The computer cluster of claim 13 , further comprising a cluster configuration module that initializes at least one of the first cluster node module, the second cluster node module, or the third cluster node module.

18. The computer cluster of claim 13 , wherein the data structure of the first cluster node module comprises a received message queue.

19. The computer cluster of claim 18 , wherein the first cluster node module further comprises a message receiving queue, in which data specifying a location to which the first cluster node module can expect to receive an expression and an identifier of a processor from which the expression is expected to be sent are stored.

20. The computer cluster of claim 13 , wherein the first processor and the second processor reside on the same die.

21. The computer cluster of claim 13 , wherein the first cluster node module comprises an advanced functions module, and wherein the advanced functions module comprises a call that evaluates an expression across the computer cluster in parallel.

22. The computer cluster of claim 21 , wherein the advanced functions module comprises a call that calculates a Fourier transform across the computer cluster in parallel.

23. The computer cluster of claim 21 , wherein the advanced functions module comprises one or more calls that evaluate matrix operations across the computer cluster in parallel.

24. A computer cluster comprising:

a first processor;

a second processor;

a third processor;

at least one computer-readable medium in communication with at least one of the first processor, the second processor, or the third processor;

a first kernel residing in the at least one computer-readable medium, said first kernel configured to translate commands into code for execution on the first processor;

a first cluster node module residing in the at least one computer-readable medium, said first cluster node module configured to send the commands to the first kernel, wherein the first cluster node module is logically positioned between a user interface and the first kernel;

a second kernel residing in the at least one computer-readable medium, said second kernel configured to translate commands into code for execution on the second processor;

a second cluster node module residing in the at least one computer-readable medium, said second cluster node module configured to send commands to the second kernel and communicates with the first cluster node module;

a third kernel residing in the at least one computer-readable medium, said third kernel configured to translate commands into code for execution on the third processor; and

a third cluster node module residing in the at least one computer-readable medium, said third cluster node module configured to send commands to the third kernel and configured to communicate with the first cluster node module and the second cluster node module;

wherein each of the first, second, and third cluster node modules can transmit tasks to any other of the first, second, and third cluster node modules without transmitting the tasks through a master node, and wherein the first cluster node module comprises a data structure in which messages originating from the second and third cluster node modules are stored.

25. The computer cluster of claim 24 , wherein the first processor and the second processor reside on the same die.

26. The computer cluster of claim 24 , wherein the first cluster node module comprises an advanced functions module, and wherein the advanced functions module comprises a call that evaluates an expression across the computer cluster in parallel, wherein the advanced functions module comprises one or more calls that evaluate matrix operations across the computer cluster in parallel.

27. A computer cluster comprising:

a first processor;

a second processor;

a third processor;

at least one computer-readable medium in communication with at least one of the first processor, the second processor, or the third processor;

a first kernel residing in the at least one computer-readable medium, said first kernel configured to translate commands into code for execution on the first processor;

a first cluster node module residing in the at least one computer-readable medium, said first cluster node module configured to send the commands to the first kernel, wherein the first cluster node module is logically positioned between a user interface and the first kernel;

a second kernel residing in the at least one computer-readable medium, said second kernel configured to translate commands into code for execution on the second processor;

a second cluster node module residing in the at least one computer-readable medium, said second cluster node module configured to send commands to the second kernel and communicates with the first cluster node module;

a third kernel residing in the at least one computer-readable medium, said third kernel configured to translate commands into code for execution on the third processor; and

a third cluster node module residing in the at least one computer-readable medium, said third cluster node module configured to send commands to the third kernel and configured to communicate with the first cluster node module and the second cluster node module;

wherein each of the first, second, and third cluster node modules can directly transmit tasks to any other of the first, second, and third cluster node modules, and wherein the first cluster node module comprises a data structure in which messages originating from the second and third cluster node modules are stored.

28. The computer cluster of claim 27 , wherein the first cluster node module comprises an advanced functions module, and wherein the advanced functions module comprises a call that evaluates an expression across the computer cluster in parallel, wherein the advanced functions module comprises one or more calls that evaluate matrix operations across the computer cluster in parallel.

29. The computer cluster of claim 27 , further comprising a communications network for connecting at least two of the first processor, the second processor, or the third processor to one another.

30. The computer cluster of claim 27 , wherein at least one of the first, second, or third cluster node modules transmits tasks directly to another of the first, second, and third cluster node modules via one or more network components.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 10, 2021
From: DAUGER RESEARCH, INC.
To: ADVANCED CLUSTER SYSTEMS, INC.
Reel/Frame 057139/0161 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 10, 2021
From: TANNENBAUM, ZVI
To: ADVANCED CLUSTER SYSTEMS, INC.
Reel/Frame 057139/0166 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 10, 2021
From: DAUGER, DEAN, DR.
To: ADVANCED CLUSTER SYSTEMS, INC.
Reel/Frame 057139/0246 →
Continuity (8)
Continuation 16449084 · Jun 21, 2019
Continuation 14181112 · Feb 14, 2014
Continuation 13423063 · Mar 16, 2012
Continuation 12040519 · Feb 29, 2008
Continuation In Part 11744461 · May 4, 2007
Provisional Application 60850908 · Oct 11, 2006
Provisional Application 60813738 · Jun 13, 2006
Related Publication 20210344552A1 · Nov 4, 2021
Cited By (1)
US 12,657,068