×

Lan based loosely coupled large grain parallel processing method

  • US 5,428,783 A
  • Filed: 10/05/1993
  • Issued: 06/27/1995
  • Est. Priority Date: 11/28/1990
  • Status: Expired due to Term
First Claim
Patent Images

1. A simulated parallel processing system, comprising:

  • a common file server having a common shared memory containing system synchronization and queue controls;

    a shared resource having the instructions for performing predetermined operations of a task and controlling means, comprising a logical partition control file including virtual identification generating means, for controlling and synchronizing the accesses of the shared resource, said task predeterminately subdivided into N individual subtasks and an unassigned compilation task, said task may be formed from N multiples of the same subtask operated on by different computers or from N different portions of said task, and each subtask assigned to a unique virtual identification, wherein said compilation task adds the N individual results of each of the subtasks to form one final result of the task, said resource stored in said common memory;

    a plurality of copies of the instructions for performing the task, the copies being replicas of each other and available in said common file server;

    a plurality of asynchronously and parallelly operative N computers not having a common internal bus, each computer having a local memory, each computer connected to the common file server for accessing the resource and copying one copy of said instructions into the local memory, each computer for individually performing the individual subtask assigned to that computer, in parallel, in accordance with the controlling means;

    loosely coupled interconnection means for coupling each of said plurality of computers in a parallel network and coupling each computer to said common file server for providing each computer access to said plurality of copies of said instructions for performing the respective individual subtask;

    said controlling means, coupled to said resource and responsive to performance by one of said computers on said resource of one of said instructions in a given copy, for preventing access of all other computers for preventing performance of said-- instruction until the instruction is performed by said one computer on the given copy to form a time-ordered sequence, for coordinating cooperation of said plurality of computers performing said predetermined operations, wherein the controlling means comprises;

    a first semaphore file for assigning a unique virtual identification for each of said plurality of computers, immediately after each computer has copied one copy of said instructions and attempts to start performing said instructions, and for preventing processing of the same virtual identification for any two computers, wherein the assignment is processed in a time-ordered sequence depending on which computer accesses said first semaphore file first, wherein the first computer accessing said first semaphore file is assigned the virtual identification associated with being the first computer, the second computer accessing said first semaphore file is assigned the virtual identification associated with being the second computer, and so on in said time-ordered sequence, until the Nth computer accessing said first semaphore file is assigned the virtual identification associated with being the Nth computer;

    memory allocation means for predeterminately apportioning said common memory into dedicated sub-memory portions each correspondingly associated with each of said unique virtual identification of each computer for storing the individual results performed by each computer;

    said task predeterminately subdivided into subtasks present in each computer, wherein each computer has a copy of the instructions for performing the individual subtask-- assigns itself the unique virtual identification according to the virtual identification of each computer assigned as controlled by said first semaphore file, for later performance of said subtask, having the same corresponding unique virtual identification, by each computer in parallel with each other;

    a second semaphore file for controlling the start of subtask processing of subtask result, of each of said plurality of computers, wherein the first computer, the second computer, and up to and including the N-1th computer each has to wait till the Nth computer has been assigned the virtual identification associated with being the Nth computer before allowing each of the computers to all synchronously with all other computers start performing its assigned subtask, in parallel, to generate the individual subtask result and ending performance by accessing said dedicated sub-memory portion to place the individual result of the predeterminately associated subtask onto said dedicated sub-memory portion; and

    a third semaphore file for assigning said compilation task and controlling post-performance de-synchronization of said plurality of computers for allowing only the last computer accessing its dedicated sub-memory portion to complete performance of said task by compiling all of the individual results located individually in each dedicated sub-memory portion to form one final result for said task, on said file server, wherein the assignment is processed in the time-ordered sequence depending on which computer accesses its said dedicated sub-memory portion first, wherein the first computer accessing its said dedicated sub-memory portion is re-assigned the virtual identification associated with being the first computer, the second computer accessing its said dedicated sub-memory portion is re-assigned the virtual identification associated with being the second computer, and so on in said time-ordered sequence, until the second-to-last computer accessing its said dedicated sub-memory portion is re-assigned the virtual identification associated with being the second-to-last computer and the Nth computer accessing its said dedicated sub-memory portion is re-assigned the virtual identification associated with being the last computer, the first computer to complete its subtask and up to and including the second-to-last computer each terminates its subtask, and only the last computer is assigned said compilation task and said last computer completes both its assigned subtask and said compilation task.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×