Patent ID: 9324126
Filing Date: 2016-04-26
CPC Classification: G06F,G06T

Claim Text:
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.