GeoTeric® Implements Continuous Integration & Testing with IncrediBuild, speeding up NVIDIA’s CUDA and reducing build time from 2 hours to 11 minutes

 

Overview

GeoTeric® is the only complete Cognitive Interpretation™ System, allowing you to see the geology in your seismic data before interpreting. It provides interactive workflows from data conditioning to the delineation of geological elements required to build a 3D model.

 

GeoTeric® is a desktop application developed mostly in C++ that operates on Windows and Linux platforms, harnessing the power of NVIDIA’s CUDA parallel processing.

Challenge

With more than 35,000 C++ files and 2 million lines of code, builds were taking two hours to run.

 

GeoTeric® wanted to implement Agile development practices such as automated testing and continuous integration to speed-up development and increase quality while being as flexible as possible. Due to the complex code base and long build times, they were unable to implement these development practices so they would run in a reasonable time. They wanted to run automated tests but had to reduce the build time in order to accommodate that.

 

Before implementing IncrediBuild, the team had ad-hoc integrations and testing that was fully manual.

Solution

 

Before using IncrediBuild, compilation was taking too long and the team was not able to implement automated testing. They wanted people to run a test cycle as often as possible and they wanted fast integrations.

 

Trying IncrediBuild, the development team saw that it was easy to use and implement and they were quickly up and running.

 

After implementing IncrediBuild, the team was able to implement automated testing. They began running 2,000-3,000 unit tests, and implemented continuous integration. Even with 2,000-3,000 unit tests (where there were none before), the build time decreased to less than 15 minutes. This is roughly 8 times faster!

 

When dealing with seismic data, quality is essential. By implementing IncrediBuild, teams were able to frequently run test cycles and run 10-20 builds per day, integrating twice an hour into their central Continuous Integration server, JetBrain’s TeamCity.

 

After implementing IncrediBuild, their builds went from 2 hours a day – without running any tests – to only a few minutes, even though this now also included running thousands of automated tests over a complex legacy C++ codebase.

 

GeoTeric harnesses the power of NVIDIA’s CUDA parallel processing in order to create their innovative products. CUDA® is a parallel computing platform and programming model invented by NVIDIA. It enables dramatic increases in computing performance by harnessing the power of the graphics processing unit (GPU).

 

Before using IncrediBuild, CUDA compilations were taking 10-20 minutes. After implementing IncrediBuild, CUDA compilations were decreased to only 3 minutes – an 80% decrease!

 

Benefits gained by implementing IncrediBuild

  • Improved code quality. They were able to implement automated testing, which previously did not exist
  • Went from ad-hoc testing and integrating to a systemic, structured approach
  • Implemented continuous integration
  • Saved down-time due to faster speeds
  • Fast velocity & iteration times so able to innovate and deliver quicker to customers

 

  Before IncrediBuild 
(full process)
With IncrediBuild 
(full process)
Total build time 2 hours (with no tests) 11 minutes (with tests)
CUDA® Compilations 10-20 minutes 3 minutes

 

  “We can’t remain competitive if we can’t build fast. If we don’t have the quick integration cycle, our development progress will be too slow;
we won’t be able to innovate and deliver. IncrediBuild helps drive us forward. The thing that keeps our business competitive is our agility and speed to add new features.”

 

Chris Preston
Principal Software Engineer
GeoTeric