×

Parallel processing system design and architecture

  • US 20030188300A1
  • Filed: 02/18/2001
  • Published: 10/02/2003
  • Est. Priority Date: 02/18/2000
  • Status: Abandoned Application
First Claim
Patent Images

1. A system, and method for automating the development of multithreaded applications running on computing machines equipped with symmetrical multiple processors, and shared memory. A system including a plurality of symmetrical processors, and a shared memory, operating under the control of an operating system and utilizing the runtime libraries of a programming language, called host language, comprising:

  • a) Resource control programming (Rcp) runtime means, a translator, and a set of run time libraries, for providing translation and run time support to the application. b) Function means a sequence of instructions which accomplish a particular task. c) Invocation means a particular instance of execution, of said function. d) Element means a block of storage allocated in said shared memory. e) Queue means a container for a plurality of said elements and control structures for synchronizing access to said elements, whereby said elements contained in the queue are accessed by an unique identification number called element number. f) Queue array means a container for a plurality of said queues and control structures, for storing said queues, whereby said queues contained in the queue array are accessed by an unique identification number called queue array number. g) Virtual queue means a special kind of said queue which contains a reference to said queue or a combination of said queue array and said queue. h) Rcp gate means a special function whose run time behavior is supplied by said Rcp run time libraries, and which comprises of zero or more said queues or said queue arrays on the input side, and zero or more queue arrays on the output side, and a control table called bind table, and control variables called inputs pending, inputs available, outputs available, outputs processed, number of assignments made, and next anticipated input identification number. i) Node function means said function with a predefined signature, which comprises of zero or more said virtual queues defined on the input side, and zero or more said virtual queues defined on the out put side, and has control structures for storing the runtime information of said invocations, and is associated with said Rcp gate. j) Node function invocation means a particular instance of execution of said node function. k) Producer means said node function which has one or more said virtual queues defined on the output side, or said Rcp gate which has one or more said queue arrays defined on the output side. l) Consumer means said node function which has one or more said virtual queues defined on the input side, or said rcp gate which has one or more said queues or said queue arrays defined on the input side. m) Local ring means a control structure comprising of control information called bind info bits, and bind sequence number, which are used for synchronizing access, and assigning unique sequence numbers to data written to said queues of said queue arrays defined on the output side of said Rcp gate, such that whenever said queue arrays defined on the output side of the Rcp Gate are shared, by other said Rcp gates, the said local ring structure is shared, by all said Rcp Gates. n) Ready state of said queue means that said producer has written data to the queue and has marked the queue as ready, for further processing by said consumers of the queue. o) Not ready state of said queue means that the queue is available for output, and that said consumers of the queue, if any, are not currently using the queue, and that there is no data available for use in the queue. p) Null state of said queue means that said producer has no data to write to the queue and has marked the queue as null, so that said consumers can avoid processing the queue. q) Input Queue index means an index number, such that all said queues, identified by the index number, within said queue arrays, defined on the input side of said Rcp gate, are in said ready state. r) Output Queue index means an index number, such that all said queues, identified by the index number, within said queue arrays, defined on the output side of said Rcp gate, are in said not ready state. s) Bind Sequence number means a sequential number assigned by said Rcp gate to said queues, at said output queue index. t) Queue disposition means said queue array, to which said queue under consideration belonging to another said queue array will be copied, when the queue is released by all of its said consumers. u) Worker means a thread, and control structures for controlling said thread, having an unique identification number called worker number, within said frame. v) Rcp resource means any of said queues, said queue arrays, said virtual queues, said node functions, said Rcp gates, said local rings, and said workers. w) Frame means a partition within the application process, containing control tables for storing said Rcp resource definitions and their runtime statuses, and having an unique identification number called, frame number. x) Run identification or Run_id means a control structure received by said node function invocation when it is invoked at run time, and which is comprised of said frame number and said worker number. y) Resource control programming (Rcp) Statements means, a high level language mechanism for defining, accessing and controlling said Rcp resources. z) Dispatcher means said worker within said frame, which acquired a lock contained in said control structures of said frame, whereby said worker can assign, said node function invocations waiting for execution, to itself, and other said workers which are idle, within said frame.

View all claims
  • 0 Assignments
Timeline View
Assignment View
    ×
    ×