Dynamic distributed make
First Claim
1. A method for optimizing resources utilized in compiling a computer program, the method comprising:
- receiving a maximum number of resources to allocate from a user;
compiling the computer program using said maximum number of resources to allocate indicated by said user; and
dynamically adjusting said maximum number of resources to allocate during said compiling if said resources are overloaded, wherein said dynamically adjusting comprises lowering said maximum number of resources by a function of the number of active processes divided by the number of resources;
else utilizing said maximum number of resources for said compiling.
2 Assignments
0 Petitions
Accused Products
Abstract
A distributed make command is used when compiling a computer program in order to allow non-dependent processes in the compiling be performed in parallel, such as with different resources, in order to speed compile time. The distributed make command is typically executed by a user who also specifies a maximum number of resources to allocate to the compiling. The present invention dynamically adjusts this maximum number of resources to allocate if the resources become overloaded during the compiling, which has the effect of optimizing the efficiency of the compiling, either by reducing the number of resources utilized or by reducing the amount of time the compiling takes (or both).
-
Citations
29 Claims
-
1. A method for optimizing resources utilized in compiling a computer program, the method comprising:
-
receiving a maximum number of resources to allocate from a user; compiling the computer program using said maximum number of resources to allocate indicated by said user; and dynamically adjusting said maximum number of resources to allocate during said compiling if said resources are overloaded, wherein said dynamically adjusting comprises lowering said maximum number of resources by a function of the number of active processes divided by the number of resources; else utilizing said maximum number of resources for said compiling. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method for optimizing resource utilized in compiling a computer program, the method comprising:
-
receiving a maximum number of resources to allocate from a user; executing at least one process to compile said computer program, said executing further including for each process; delaying executing said process if said maximum number of resources to allocate has been exceeded by a number of active processes; dynamically adjusting said maximum number of resources to allocate if said resources are overloaded, wherein said dynamically adjusting comprises lowering said maximum number of resources by a function of the number of active processes divided by the number of resources; else utilizing said maximum number of resources for executing said process. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A method for executing a distributed make command having a maximum number of resources to allocate as a parameter, the method comprising:
-
executing at least one process specified in a make file to compile said computer program, said executing further including for each process; delaying executing said process if said maximum number of resources to allocate has been exceeded by a number of active processes; dynamically adjusting said maximum number of resources to allocate if said resources are overloaded, wherein said dynamically adjusting comprises lowering said maximum number of resources by a function of the number of active processes divided by the number of resources; else utilizing said maximum number of resources for executing said process. - View Dependent Claims (12, 13, 14, 15)
-
-
16. An apparatus for optimizing resources utilized in compiling a computer program, the apparatus comprising:
-
at least one processor and memory; a maximum number of resources receiver; a computer program compiler coupled to said maximum number of resources receiver executing on said at least one processor and memory; and a maximum number of resources dynamic adjuster coupled to said computer program compiler wherein said resources dynamic adjuster dynamically adjusts said maximum number of resources to allocate during said compiling if said resources are overloaded, wherein said dynamically adjusting comprises lowering said maximum number of resources by a function of the number of active processes divided by the number of resources; else utilizing said maximum number of resources for said compiling.
-
-
17. An apparatus for optimizing resources utilized in compiling a computer program, the apparatus comprising:
-
means for receiving a maximum number of resources to allocate from a user; means for compiling the computer program using said maximum number of resources to allocate indicated by said user; and means for dynamically adjusting said maximum number of resources to allocate during said compiling if said resources are overloaded, wherein said dynamically adjusting comprises lowering said maximum number of resources by a function of the number of active processes divided by the number of resources; else utilizing said maximum number of resources for said compiling. - View Dependent Claims (18, 19, 20, 21)
-
-
22. An apparatus for optimizing resource utilized in compiling a computer program, the apparatus comprising:
-
means for receiving a maximum number of resources to allocate from a user; means for executing at least one process to compile said computer program, said means for executing further including for each process; means for delaying executing said process if said maximum number of resources to allocate has been exceeded by a number of active processes; means for dynamically adjusting said maximum number of resources to allocate if said resources are overloaded, wherein said means for dynamically adjusting comprises lowering said maximum number of resources by a function of the number of active processes divided by the number of resources; else utilizing said maximum number of resources for said compiling; and means for executing said process. - View Dependent Claims (23, 24, 25, 26)
-
-
27. A program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform a method for optimizing resources utilized in compiling a computer program, the method comprising:
-
receiving a maximum number of resources to allocate from a user; compiling the computer program using said maximum number of resources to allocate indicated by said user; and dynamically adjusting said maximum number of resources to allocate during said compiling if said resources are overloaded, wherein said dynamically adjusting comprises lowering said maximum number of resources by a function of the number of active processes divided by the number of resources; else utilizing said maximum number of resources for said compiling.
-
-
28. A program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform a method for optimizing resource utilized in compiling a computer program, the method comprising:
-
receiving a maximum number of resources to allocate from a user; executing at least one process to compile said computer program, said executing further including for each process; delaying executing said process if said maximum number of resources to allocate has been exceeded by a number of active processes; dynamically adjusting said maximum number of resources to allocate if said resources are overloaded, wherein said dynamically adjusting comprises lowering said maximum number of resources by a function of the number of active processes divided by the number of resources; else utilizing said maximum number of resources for executing said process.
-
-
29. A program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform a method for executing a distributed make command having a maximum number of resources to allocate as a parameter, the method comprising:
-
executing at least one process specified in a make file to compile said computer program, said executing further including for each process; delaying executing said process if said maximum number of resources to allocate has been exceeded by a number of active processes; dynamically adjusting said maximum number of resources to allocate if said resources are overloaded, wherein said dynamically adjusting comprises lowering said maximum number of resources by a function of the number of active processes divided by the number of resources; else utilizing said maximum number of resources for executing said process.
-
Specification