Accelerating Software Delivery

ElectricAccelerator

Build Software Smarter. Faster. Better.

ElectricAccelerator dramatically speeds up software builds by automatically distributing build jobs over scalable resource clouds or multi-core desktops. ElectricAccelerator enables development organizations to improve software time to market, increase infrastructure utilization and enhance developer productivity.

"The thing that made us look into ElectricAccelerator was the need for a huge need to boost software development productivity of our entire division. The developers were getting frustrated, QA-people were getting frustrated, CM-people were getting frustrated. So it was all about increased development productivity—getting developers back to developing code and getting the QA team to quickly test the changed code."
Jon Burt, Development Group Manager
SCM, Intuit

ElectricAccelerator Rundown

Speed Builds & Improve Throughput

Massively parallel, safe software builds

Faster build debugging for faster time to market and higher quality of the applications you deliver.

Automate build and release processes, integrate with existing SCM tools

Accelerate software builds and run push-button preflight builds and tests, even without leaving the IDE to booster software development productivity.

Virtually Eliminate Broken Builds

Automatic dependency detection

Guaranteed correct, fast, incremental builds.

Actionable, intuitive visualization and reports

Create real-time and historic analysis models.

Centralize Build Clouds for Global Teams

Optimized for centralized build cloud and clusters

Parallelize and speed up thousands of concurrent builds for your entire development team across multiple-sites to reduce the cost of delivering software.

Completely platform and tool agnostic - supports any heterogeneous, multi-core infrastructure

Optimize your current build infrastructure utilization, to take advantage of your infrastructure in the cloud and on developer desktops.

Chargeback reporting

Build flexible cost models for billing and chargeback reports.

Speed Your Builds and Improve Throughput

Instead of running a build sequentially on a single machine, ElectricAccelerator distributes pieces of the build intelligently to run in parallel on a cluster of servers. ElectricAccelerator's unmatched dependency management system allows vastly greater scalability than previous attempts at parallel builds, delivering improvements of up to 20x over a sequential build, with no changes to existing build scripts or tools. Fast, reliable builds are critical to agile development techniques such as Continuous Integration and Continuous Delivery.

Eliminate broken builds

Over the years, many do-it-yourself parallel build approaches have been tried. However, each suffers from the same fundamental flaw: as the level of parallelism is increased, they generate incorrect or broken builds. ElectricAccelerator's patented automatic conflict detection and correction technology determines exactly which files were used to build every object file, library, or executable, so when build steps are run out of order, ElectricAccelerator automatically re-runs them in the correct order. ElectricAccelerator produces a correct build, even when scaling to hundreds of nodes in a cluster.

ElectricAccelerator's eDepend feature captures complete dependency information automatically and efficiently, without human intervention. As a result, ElectricAccelerator provides accurate and reliable incremental builds, and eliminates the need for frequent full builds for small changes. With ElectricAccelerator, developers can now trust an incremental build to recompile correctly—every time.

Visualize the build structure for rapid error detection & performance tuning

ElectricInsight, an add-on to the ElectricAccelerator build tool, provides unprecedented visibility into the "black box" of software builds. ElectricInsight mines the information produced by Electric Make to provide an easy-to-understand, graphical representation of the build structure for performance analysis.

ElectricAccelerator 7.0

Android

A highly optimized feature-set and operation for the Android platform build, reducing the Android build time by up to 40% in a core-for-core comparison.

Parse Avoidance

Enabling blazing incremental builds also for the most complex and challenging build environments.

Dependency Optimization

Using ElectricAccelerator's superior knowledge of the underlying build structure, this feature will eliminate unnecessary dependencies from scheduling of the build workload.

ElectricAccelerator 6.2

#pragma multi

Support for Linux Kernel 3.5.x: Ubuntu 12.10/12.04/11.10, SUSE Linux Enterprise Server 11 SP2

Support for Windows 8

ElectricAccelerator Specs

ElectricAccelerator Cluster Manager, Electric Make, and Electric Agent/EFS currently run on:
Linux
Red Hat Enterprise Linux VersionNotes
RHEL 6.0, 6.1, 6.2
kernel 2.6.32-x
For 64-bit systems, you must install 32-bit libraries before invoking the installer. Run yum install glibc.i686. If yum server is not present, the required RPMs are glibc-2.11.1.1.10.el6.i686 and nss-softokn-freebl-3.12.4-11.el6.i686.

Be advised of a known Linux kernel issue.
RHEL 5.4 and later
kernel 2.6.18-x
For agent hosts, you must install the corresponding kernel-devel version package before invoking the installer.

Be advised of a known Linux kernel issue.
RHEL 4.8 and later
kernel 2.6.9-x
For agent hosts, you must install these three packages: kernel-devel, gcc, and gcc-c++, before invoking the installer.
 
SUSE Linux Enterprise Server versionNotes
SLES 11, 11 SP1, 11 SP2
kernel 2.6.27, 2.6.32, 3.0.10
For agent hosts, you must install the gcc and kernelsource packages before invoking the installer.
To install gcc, run sudo zypper install gcc
(This installs the following: gcc gcc43 glibc-devel linux-kernel-headers.)
To install kernel-source, run sudo zypper install kernel-source
SLES 10 SP4
kernel 2.6.16
 
 
Ubuntu versionNotes
Ubuntu 12.04
kernel 3.2.0
For 64-bit systems, you must install 32-bit libraries before invoking the installer.

Run sudo apt-get install ia32-libs to install the 32-bit libraries.
Ubuntu 11.04, 11.10
kernel 2.6.38, 3.04
Ubuntu 10.04.1, 10.10
kernel 2.6.32, 2.6.35
Ubuntu 9.10
kernel 2.6.31
Solaris
Solaris versionNotes
Solaris 10SPARC and x86
Solaris 9SPARC only
Agent and eMake only, no Cluster Manager support
Windows
Windows versionNotes
Windows 7 (32- or 64-bit) 
Windows Server 2008 R2 (64-bit only) 
Windows Vista (32- or 64-bit) 
Windows Server 2003 R2 (32- or 64-bit)SP1 and SP2 required
Windows XP SP3 (32-bit only) 

Hardware Requirements

Electric Cloud recommends installing Cluster Manager, Electric Make, and Electric Agent components on independent machines so each component can run efficiently without competing for system resources. The following are minimum hardware requirements for each machine where ElectricAccelerator components are installed (Agent, Cluster Manager, Electric Make):

  • Processor - Pentium 4 (Linux and Windows) or SPARC or x86 (Solaris)
  • Installer disk space - 300 MB, additional component disk space usage varies and depends on the size of your builds.
Agent machines

Agents use system memory to cache small or unmodified files. For optimal performance, each host in the cluster must have enough memory for your link step, which is typically the largest single build step, plus another 200 MB.

If your builds have increased in size substantially since the system was originally delivered, and you have noticed a slowdown in build times, consider upgrading the host hardware.

 MemoryDisk Space
Recommended2 - 3 GB per agent (if your build contains very large build steps)Free disk space should be at least 3 - 4 times the size of a complete build (input and output).
Minimum1 GB per agent (machine minimum of 2 GB)
Cluster Manager machine

Memory Disk Space
Minimum 2 GB 5 GB (to allow space for build log storage)

Electric Make machine

Memory Disk Space
Minimum 2 GB Free disk space should be at least 200 MB or equal to the size of your largest build.

Software Requirements

To connect to Cluster Manager, your web browser must be Microsoft Internet Explorer 7.0 or later, or Mozilla Firefox 3.5 or later.

Cygwin

If you run builds on Windows in Cygwin environments, ensure you have cygwin1.dll version 1.5.25, 1.7.7, or 1.7.9 installed.

Install the same version of Cygwin on all agent hosts and eMake machines. Mixing different Cygwin versions (for example, running v1.5 on an eMake machine and v1.7 on agents) is not supported. (In particular, Cygwin versions 1.5 and 1.7 default to incompatible representations for symbolic links.)

Third-party Supported Build Tools

GNU Make 3.80 and 3.81
Microsoft NMAKE 7.x and 8.x
Symbian Make (Windows)
Visual Studio .NET 2002, 2003, 2005, 2008, 2010, 2012
Cygwin 1.5.25, 1.7.7, and 1.7.9
Apache Ant 1.6.5, 1.7.1, and 1.8.1
Rational ClearCase 6, 7, 7.1, and 8.0

Database Support

ElectricAccelerator supports the following databases:
MySQL 5.5.16 (ElectricAccelerator default)
Oracle 11g Release 2
MS SQL Server 2008

ElectricInsight

ElectricInsight® is the only tool to visually depict the structure of a software build, down to the file level. This empowers build managers to pinpoint performance problems and conflicts in a build. An add-on to ElectricAccelerator, ElectricInsight mines the information produced by ElectricAccelerator to provide an easy-to-understand, graphical representation of the build structure for performance analysis. It provides detailed information and reports on each job on each node of the build cluster, for at-a-glance diagnostics. And it can predict and model how build times would be impacted by adding nodes to the ElectricAccelerator cluster, to help guide hardware investment decisions.

With ElectricInsight, instead of manually pouring over tens of thousands of lines in a build output file, error detection and performance tuning can now be done in seconds. Your teams can dramatically reduce time and costs associated with manual build maintenance tasks.

What can you learn about a software build using ElectricInsight?
  • Are there any unnecessary serializations that are slowing the build down?
  • Are there gaps where agents are not busy (and can I gain greater parallelism if I fix that)?
  • Which are the longest job chains?
  • Which files are being modified (created, updated, deleted) multiple times?
  • Where exactly are the dependencies?
  • If I added more agents to my cluster, how fast could it go?

How Does It Work?

ElectricInsight® provides powerful, at-a-glance software build diagnostics.
How does it do that?

Traditionally, finding out why a build slowed down, why a build broke, or which files were dependent on others was a time-consuming, manual task. But now, the ElectricInsight tool graphically depicts how the build is structured and run, empowering build managers to pinpoint performance problems or conflicts in a parallel build.

ElectricInsight mines the information produced by Electric Make®, the job distribution engine behind ElectricAccelerator®, to provide an easy-to-understand, graphical representation of the build structure for performance analysis.

It provides detailed information and reports on each job on each node of the build cluster, helping users identify which jobs are being performed, when, and with what files for at-a-glance diagnostics. With a single click, see exactly where dependencies lie. Run a report—are there any unnecessary serializations? Are jobs running locally that could be run on the cluster? With this insight you can get the best possible performance out of your build environment.

Instead of manually pouring over tens of thousands of lines of information in a build output file, error detection and performance tuning that once took hours or days can now be done in seconds. With ElectricInsight you can quickly pinpoint opportunities for better builds.

ElectricInsight—Features & Benefits

Graphical depiction of build structure

Instantly spot serializations or inactive nodes in the cluster to identify opportunities for speed improvements.

Job details

View fine-grained, file-level detail on each build job to quickly perform diagnostics and improve build performance.

Show dependencies

Visually highlights dependent jobs.

ElectricSimulator

Model speed improvements that could be gained by adding additional hardware to the build cluster.

Reports

Clear reports identify job count, job time by length, longest jobs, and longest serial chains.

What's New in ElectricInsight?

ElectricInsight version 3.2 can connect to in-flight ElectricAccelerator builds and display jobs as they execute, showing exactly what commands are being processed on the cluster and letting the user instantly assess build progress. Data visualization is also improved with a new heuristic job classifier, which groups targets by primary tasks and enables better analysis of build performance, and additional reporting features exposing both build content and structure.

New features and enhancements include:
  • Runtime build monitor features with real-time as well as after-the-fact analysis options:
  • ElectricInsight can monitor a running Electric Make build, allowing you to view its progress and get instantaneous information about what commands each agent is executing.
  • Completed builds can be replayed to simulate or analyze execution order.
  • New and enhanced reports provide additional insight into software build performance:
  • New: Build manifest - lists all files that were read and/or written by the build.
  • New: Jobs by agent - lists the number of jobs run by each agent in the build.
  • New: Jobs by file - lists which jobs read or wrote a particular file.
  • Enhanced: Longest serial chain report - now enables you to display the longest serial chain leading to a specific job.

ElectricAccelerator Developer Edition

Build Faster. Smarter. Better.

ElectricAccelerator Developer Edition is a high-performance replacement for GNU Make, Microsoft Visual Studio and NMAKE , enabling blazing incremental builds and ensuring fast, reliable parallel builds. ElectricAccelerator Developer Edition is designed to maximize your productivity, spending less time waiting for builds to complete.

  • Reduce the time waiting for builds in your software development cycle
  • Eliminate time spent troubleshooting and fixing unreliable builds
  • Optimize your incremental and parallel builds
4 core free license!
PlatformVersionInstaller
32-bit: XP, 2003, Vista, 7, 8exe | md5
64-bit: 2003, Vista, 2008, 7, 8exe | md5
32-bit: RHEL 6, 5.4+, 4.8+,
SUSE 11, Ubuntu 12, 11, 10, 9
install | md5
64-bit: RHEL 6, 5.4+, 4.8+,
SUSE 11, Ubuntu 12, 11, 10, 9
install | md5
Documentation | User Forum
How do I get started?

It's very simple! Based upon your platform, just download and install the free ElectricAccelerator Developer Edition to your developer workstation, using links and details from the table above.

ElectricAccelerator Developer Edition is designed for use by an individual developer, leveraging multiple cores in a personal workstation. ElectricAccelerator Developer Edition is essentially a "drop-in" replacement for GNU make, Microsoft Visual Studio or NMAKE builds — simply replacing the legacy build tool with ElectricAccelerator Developer Edition, and you will be good to go.

If you're developing in a Microsoft Visual Studio environment, ElectricAccelerator Developer Edition offers a plugin which enables you to run fast, reliable builds directly from within the Visual Studio IDE at the click of a button. No conversion of your project/solution files is required.

Optimized dependency management

ElectricAccelerator Developer Edition aggressively but reliably runs all the workload within the build in parallel on available ElectricAccelerator agents on the local developer desktop. Patented dependency detection technology enables ElectricAccelerator Developer Edition to determine when build steps have been mistakenly run out-of-order, and then correct the error on the fly to guarantee you a correct build, even if the dependencies in your makefile are incomplete or outdated. Based on its complete understanding of the dependency structure, ElectricAccelerator Developer Edition will also improve performance of the build by optimize scheduling of all the build workload.

This complete knowledge, monitoring and optimization of the dependency structure within your build is automatically stored and managed by ElectricAccelerator Developer Edition, enabling each and every subsequent iteration of the build to run extremely fast while providing a reliable guarantee of correctness.

Accurate and blazing incremental builds

Using the same data that powers the automated dependency management, ElectricAccelerator Developer Edition can ensure the accuracy of incremental builds. Through parse avoidance and dependency optimizaiton techniques, it is significantly faster and more reliable than makedepend or 'gcc -M' while being tool and language agnostic. In addition, the ledger feature of ElectricAccelerator Developer Edition extends the traditional timestamp-based up-to-date checkin made by optionally incorporating a variety of other factors into the algorithm, without losing speed. These features ensure that incremental builds rebuild all the out-of-date targets, so you can be confident of reliable, correct results, every time.

Documentation & Support