IP Library › Granted Patent US 9,324,126
Granted Patent B2
US 9,324,126 · App. 14/155,325 · Granted Apr 26, 2016

Automated latency management and cross-communication exchange conversion

Inventor: Kevin D. Howard (Tempe, AZ)
Assignee: Massively Parallel Technologies, Inc.
G06T1/20G06F9/5016G06F9/54G06F13/1663G06F9/444G06F17/5045
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,324,126
App. No.
14/155,325
Granted
Apr 26, 2016
Kind
B2
Abstract

A system and method for communication in a parallel computing system is applied to a system having multiple processing units, each processing unit including processor(s), memory, and a network interface, where the network interface is adapted to support virtual connections. The memory has at least a portion of a parallel processing application program and a parallel processing operating system. The system has a network fabric between processing units. The method involves identifying need for communication by the first processing unit with a group of processing units, creating virtual connections between the processing units, and transferring data between the first processing units.

Claims (30)

1. A method of communication in a multiple processor computing system, the system comprising:

a plurality of processing units, each processing unit including at least one processor, a memory, and a network interface, the network interface adapted to support virtual connections, the memory configured to contain at least a portion of a parallel processing application program and at least a portion of a parallel processing operating system, and

a network fabric coupled to each processing unit;

the method comprising:

identifying a need for communication by the parallel processing application program executing on a first processing unit of the plurality of processing units with a second plurality of the plurality of processing units,

creating a virtual connection between the first processing unit with each processing unit of the second plurality of processing units,

transferring data between the first processing unit and each processing unit of the second plurality of processing units;

wherein the step of identifying a need for communication is performed by performing functional decomposition of a software design to generate a computer-executable finite state machine, the performing functional decomposition performed by a computer and comprising:

decomposing functions in the software design into data transformations and control transformations repetitively until each of the decomposed data transformations consists of a respective linear code block;

wherein the data transformations accept and generate data, and the control transformations evaluate conditions and send and receive control indications to and from associated instances of the data transformations;

wherein the step of automatically determining a number of processing units to assign to a task comprises determining a first and a second dataset size for the communication associated with a first and a second number of processors, and using a table interpolation to determine a first and a second communications time, the first communications time associated with the first dataset size and first number of processors, and the second communications time associated with the second dataset size and the second number of processors.

2. A method of communication in a multiple processor computing system, the system comprising:

a plurality of processing units, each processing unit including at least one processor, a memory, and a network interface, the network interface adapted to support virtual connections, the memory configured to contain at least a portion of a parallel processing application program and at least a portion of a parallel processing operating system, and

a network fabric coupled to each processing unit;

the method comprising:

identifying a need for communication by the parallel processing application program executing on a first processing unit of the plurality of processing units with a second plurality of the plurality of processing units,

creating a virtual connection between the first processing unit with each processing unit of the second plurality of processing units,

transferring data between the first processing unit and each processing unit of the second plurality of processing units;

wherein the step of identifying a need for communication is performed by performing functional decomposition of a software design to generate a computer-executable finite state machine, the performing functional decomposition performed by a computer and comprising:

decomposing functions in the software design into data transformations and control transformations repetitively until each of the decomposed data transformations consists of a respective linear code block; wherein the data transformations accept and generate data, and the control transformations evaluate conditions and send and receive control indications to and from associated instances of the data transformations;

configuring an automatically-determined number of the plurality of processing units to execute a task of the functionally-decomposed software design and executing the communication on an automatically-determined number of processing units of the plurality of processing units executing the task associated with the communication;

wherein automatically determining a number of processing units to execute a task comprises determining a first and a second dataset size for the communication associated with a first and a second number of processors, and using a table interpolation to determine a first and a second communications time, the first communications time associated with the first dataset size and first number of processors, and the second communications time associated with the second dataset size and the second number of processors.

3. A multiple processor computing system, the system comprising:

a plurality of processing units, each processing unit including at least one processor, a memory, and a network interface, the network interface adapted to support virtual connections, the memory configured to contain at least a portion of a parallel processing application program and at least a portion of a parallel processing operating system, and

a network fabric coupled to each processing unit;

the network fabric adapted to support virtual connections between units of the plurality of processing

the memory of the processing units comprising machine readable code for creating a virtual connection between the first processing unit with each processing unit of the second plurality of processing units,

the system further comprising machine readable instructions in the memory of the processing units for performing an all-to-all communication over the virtual connection between the first processing unit and each processing unit of the second plurality of processing units, the all-to-all communication comprising transferring data between the first processing unit and each processing unit of the second plurality of processing units;

wherein the system is configured to automatically determine a number of processing units to assign to a task associated with the communication, the units assigned to the task comprising the first processing unit and the second plurality of processing units; and wherein the number of processing units assigned to the task is less than a total number of processing units of the system; and

wherein the system is configured to automatically determine a number of processing units to assign to a task by executing machine readable code comprising code for determining a first and a second dataset size for the communication associated with a first and a second number of processors, and using a table interpolation to determine a first and a second communications time, the first communications time associated with the first dataset size and first number of processors, and the second communications time associated with the second dataset size and the second number of processors.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 16, 2014
From: HOWARD, KEVIN D.
To: MASSIVELY PARALLEL TECHNOLOGIES, INC.
Reel/Frame 032917/0431 →
Continuity (4)
Continuation In Part 13490345 · Jun 6, 2012
Continuation In Part 13425136 · Mar 20, 2012
Provisional Application 61752292 · Jan 14, 2013
Related Publication 20140125683A1 · May 8, 2014