Browse Prior Art Database

In recurring distributed build, build time for a project/product/component should be the maximum of {time taken for each immediate dependent component}

IP.com Disclosure Number: IPCOM000199913D
Publication Date: 2010-Sep-21
Document File: 1 page(s) / 31K

Publishing Venue

The IP.com Prior Art Database

Abstract

Problem: Improving the build times for any project/product built in a distributed manner. Known solution: Known solution(s) are like, user provides the machines on which build can be ditributed and then fires a build, and since the make tool can identify the load on the machines, it can start/fire a build for sub-component (or dependent component) on those machines when the load on the specified machine is less than or equal to the specified value in the config file. Drawbacks: The build time usually depends on the sequence of the builds fired (and in a way also depends on the dependency graph generated) and the time taken for all of these dependents to finish building.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 100% of the total text.

Page 1 of 1

In recurring distributed build, build time for a project/product/component should be the maximum of {time taken for each immediate dependent component }

The proposal is to use the past data (of distributed builds) as heuristic for future builds of the same project/product(s). Current make tools are capable of knowing the machine loads and then accordingly distribute the building of sub-components on those machines. However, this has been done in sequential manner. Instead if we can gather the data like "time taken to built" the components (from dependency graph;dependency graph is hierarchy of the (sub) components), and use that information for future runs.

With the information about the previous build times for different components, the next time the build for the same product/project is started for distributed building we can use the previous knowledge of time taken by different components and also with the availability of the machines (and their loads) we can achieve the build time for the whole project is as close to as the maximum of the {time taken by the immediate dependent sub-components}. In otherwords, schedule/order the building of the sub-components in such a way that it would start the builds for components which take maximum time first (may be on a higher end machine with less load) then for the components which takes lesser than maximum and so on.

1