In our current rush for digital transformation, doing things faster – like builds – is generally a good thing. But what if it was possible to predict or even control the amount of time a build could actually take?
You could make sure your development team confidently does builds in a few minutes – no matter the build size – to keep your transformation on schedule. Your team’s ping pong skills may suffer, but your customers and investors will appreciate the time savings.
Previously, we wrote about how ElectricAccelerator can eliminate build bottlenecks and how Shared JobCache speeds builds and eliminates errors through intelligent component reuse. In this post, we will use the Insight feature of ElectricAccelerator to take a build time from over an hour down to under 3 minutes – and to ensure that sub-3 minute time is maintained even as the build grows. One of our customers provided the data for this example.
A Day in the Life of a Build
Here’s where we’re supposed to insert the proviso that “your mileage may vary,” but this example is typical of what our customers report when they use ElectricAccelerator.
1 hour, 10 minutes
The customer was running the build serially with GNU make and it was taking an hour and 10 minutes on average to complete – when it did complete. Many times it wouldn’t complete at all or the resulting code wouldn’t execute.
43 minutes, 49 seconds
We ran that build the first time in parallel across 10 cores with ElectricAccelerator. We made no other modifications and the build completed in just under 44 minutes – an improvement of nearly 40 on its own. That’s an impressive improvement in its own right but that is still too much time at the ping pong table.
During this first pass through, ElectricAccelerator was ‘learning’ the build and creating an extensive amount of meta data: understanding dependencies, dealing with conflicts, and automatically reverting those conflicts to ensure the build completed successfully.
This screen shot from the ElectricAccelerator Insight feature shows lots of gaps in the process, the parallelism didn’t line up, and conflicts abound. At least the build succeeded.
As you can see, there were nearly 800 unspecified dependencies in the build that caused extensive rework.
Some Basic Magic
But we can do better without doing anything other than running the build again.
4 minutes, 57 seconds
This is where the magic of ElectricAccelerator and its patented technology starts to happen. We ran the build a second time. ElectricAccelerator used that meta data to automatically optimize dependencies, the schedule and resources, and eliminate unspecified dependencies to cut that build time to less than 5 minutes!
Notice how there are now no gaps in the process and the parallelism across cores aligns almost perfectly. ElectricAccelerator automatically made sure that there was no idle time, no conflicts, and no reverts necessary.
Now For the REAL Magic
Could we do better?
If going from over an hour to under 5 minutes wasn’t magic enough, we can get that build time down further – and to a time of our choosing – by using Insight to simulate the build across any number of additional cores and choose our own build time.
2 minutes, 38 seconds
The example build was run locally on 10 cores but Insight shows what will happen if you increase the number of cores for the build. If 3 minutes is long enough for your developers to take a bio break and grab a snack, then distributing the build across 20 cores will mean the build will complete in just about 2 ½ minutes. Those cores can be anywhere on your network: other computers in the group, in your server farm, or even in the cloud. ElectricAccelerator will distribute your build to those cores to guarantee the quality of service for your development team.
Insight Doesn’t Stop There
Not only does Insight give you the great visualization and feedback tools as the above screen shots illustrate, you can click on any element in the display to drill down for details on dependencies, input, output, files, duration and more.
Know Where You’re Going
Yogi Berra once said, “If you don’t know where you’re going, you’ll end up someplace else.”
ElectricAccelerator with Insight lets you know exactly where you’re going with your builds and what time you’ll get there. So much for ping pong.
Learn More about ElectricAccelerator and Download ElectricAccelerator Huddle Now!
Mohan holds a M.S in Computer Science from Stanford University and an MBA from Santa Clara University.
Latest posts by Mohan Dattatreya (see all)
- Yocto Build Tutorial: BitBake Build Visualization with ElectricInsight - April 12, 2019
- Accelerating Android AOSP and Embedded Linux Builds, Part 1 - February 4, 2019
- From Over an Hour to Under 3 Minutes. Yes, Really! - December 19, 2016