×

Modification of computer applications at load time for distributed execution

  • US 7,849,452 B2
  • Filed: 04/23/2004
  • Issued: 12/07/2010
  • Est. Priority Date: 04/23/2004
  • Status: Active Grant
First Claim
Patent Images

1. In a multiple computer system including a plurality of single computers interconnected via a communications link, a method of loading an application program onto each of said plurality of single computers, the application program having application program code including a plurality of code threads all intended to execute on and reference a single computer having a single processing unit or symmetric multiple processing units and a single independent local memory with a local memory capacity that is not shared with any other single computer of said plurality of single computers, the method comprising:

  • loading the application program written to operate only on a single computer onto each different computer of said plurality of single computers;

    modifying the application program on each said different single computer before execution of said corresponding portion of the application program written to operate only on a single computer on each said different single computer;

    simultaneously executing different portions of said application program on each different one of the plurality of single computers with each different one of the plurality of single computers having a different independent local memory accessible only by a corresponding portion of the application program; and

    restricting read requests of each and every said computer such that all read requests of local memory of the requesting computer and not reading from the memory of any other computer;

    wherein the step of modifying comprises;

    (i) detecting instructions in the unmodified application program which reference the same common memory records;

    (ii) listing all such commonly referenced memory records by a distributed runtime (DRT) and providing a naming tag for each said listed commonly referenced memory record;

    (iii) detecting those instructions which write to, or manipulate the contents of, any of said listed commonly referenced memory records; and

    (iv) generating and inserting an alert instruction into the unmodified application program to create the modified application program for handling by the DRT following each said detected commonly referenced memory record write or manipulate instruction indicating that the contents or value of the commonly referenced memory record were re-written or manipulated and may have changed during execution of a code thread, andwherein;

    said alert instruction being operative for initiating propagation of the re-written or manipulated contents and name tag of each said re-written or manipulated listed commonly referenced memory record via the communications link to the distributed run times (DRTs) of each other of the single computers;

    each DRT creates a table when initially recording fields, and for each field there is a name which is common throughout the network and which the network recognizes; and

    wherein in different ones of said plurality of single computers, a memory location corresponding to a given name field will vary over time and each of the DRTs will have different memory locations but each field name will have the same field value stored in the different memory locations, and wherein the DRT initially creates a JAVA program language byte code virtual machine for execution of the modified application program; and

    different portions of said modified application program being simultaneously executable on each different one of the plurality of single computers with each different one of the plurality of single computers having a different independent local memory accessible only by a corresponding portion of the application program.

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