OpenGeoSolutions Reduces Development Time by Months Using TotalView
OpenGeoSolutions is quickly becoming known as the resource for high-end signal analysis to be applied to seismic resource determination. Its team of geoscientists, located in Calgary, Houston, Tulsa, Seattle and London, relies on OpenGeoSolutions’ code base and rapid deployment of new capabilities for the development of technical solutions designed for customers working in petroleum exploration and production.
Although the OpenGeoSolutions toolkit is robust, from time to time data is discovered that confounds expectations and stresses programs to the point of failure. When failure occurs, it is mandatory that the cause of the failure is diagnosed and that the code is back online as quickly as possible. OpenGeoSolutions initially worked with several other debuggers, including ddd, pgdbg, and Sun Studio11. The company found that TotalView was the only debugger available to offer the full suite of features they required.
TotalView Helps OpenGeoSolutions…
Speed up development times.
Improve code quality.
Understand and fix code base issues.
Cannot Afford to Have Process Streams Falter
In the business of supplying the petroleum industry with spectral decomposition and inversion and high-end signal analysis services, OpenGeoSolutions cannot afford to have its process stream falter due to unforeseen issues with its processing toolkit, OpenSeis. Customers expect OpenGeoSolutions to turn their data around in two weeks, from the time they take delivery to the time processed results and documentation are returned. This turnaround, and OpenGeoSolutions’ ability to routinely provide it, is one of the primary reasons for the company’s success.
OpenSeis is built upon the open source FreeUSP toolkit available from www.freeusp.org. OpenGeoSolutions scientists were largely responsible for the generation of the FreeUSP toolkit and its release to open source. OpenGeoSolutions has made use of this development platform to build many proprietary routines that are used in its daily business. Rapid development and deployment of intellectual property is key to keeping OpenGeoSolutions at the forefront of the market, and rapid recovery from surprises is also important, as new datasets often utilize new pathways through the codes and bring unforeseen “features” of the programming to light.
The sheer bulk of code makes it impossible for any one person at the company to be familiar with all programs. In the event that something does go wrong, OpenGeoSolutions’ developers need to run the problem in a debugger to rapidly understand the issue, fix it, and get the program and project work back online. They quickly learned that a programmer-friendly, Linux-based, graphical debugger was required to make this happen.
Handling the Complexities of the World’s Most Demanding Multi-Processing Applications
OpenGeoSolutions developers chose TotalView debugger to help develop their applications. TotalView is the most advanced multi-core debugger for Linux, UNIX, and Mac OS X and is the market leader in C/C++, Fortran, UPC, MPI/Open MP, and parallel programming debugging.
TotalView was designed from the ground up to handle the complexities of the world’s most demanding multi-processing applications that scale to thousands of processes and threads with applications distributed over multiple machines or processors. TotalView offers many advanced features, including multi-language support and built-in source code and memory debugging capabilities that streamline and simplify the development process.
TotalView has made it possible for OpenGeoSolutions developers to significantly speed up their development times while improving the quality of their software products.
Since the company began using TotalView, OpenGeoSolutions’ development time has been reduced by months. With far fewer bugs to contend with during the initial usage of newly developed code, developers can keep turnaround of customer projects on a tight timeline and prevent long waits for products.
“Without this capability, our programmers would be taken back to the days of print statements and generating reams of paper output in order to understand, locate and repair broken code. The time spent on this style of error assessment can be astronomical.”
Paul Garossino, Geoscientist at OpenGeoSolutions
OpenGeoSolutions now gets the code through source code debug and right into TotalView for run time debug, without taking time out for experimentation. TotalView’s extremely friendly debugging environment makes watching the algorithm in action easy. Problems with program flow, variable initialization and usage, array boundary overflows, IEEE exceptions and the like show up immediately and are easy to diagnose, isolate and repair.
“When debugging, it is our view that our programmers’ time should be spent understanding the code, not the debugger. When we get into trouble with an algorithm, being able to get it into TotalView, find and solve the problem, and restore the code to our production environment in a timely fashion is critical for our success.”
Paul Garossino, Geoscientist at OpenGeoSolutions
The Greatest Value That TotalView Brings to OpenGeoSolutions Is Speed
Overall, the greatest value that TotalView has brought to OpenGeoSolutions is speed. While OpenGeoSolutions uses TotalView under conditions of “seismic triage” to great effect, they have found it most powerful during the research and development stage of new algorithms. By watching algorithms in action, the company has also been able to optimize the codes to attain previously impossible performance levels.
Running on the OpenGeoSolutions’ Linux development platform and compatible with its compiler set, TotalView’s advanced productivity features have proven to be particularly beneficial for the company, allowing developers to:
- Dive on arrays.
- Cast array contents arbitrarily as real, integer, and character.
- Visualize array contents graphically.
- Deal with multiple languages – FORTRAN, C, and C++.
- View an active expression list of problem variables in one display.
- Install breakpoints, barriers, and evaluation points.
- Use the run-to capability to avoid setting unnecessary breakpoints.
- Step in and out of subroutines.
- Examine memory outside the bounds of an array.
- Take advantage of TotalView’s automatic update upon compilation without restarting.
During their run time debugging of new code, TotalView has enabled OpenGeoSolutions developers to devote their valuable time to understanding the code, not the debugger, as desired.
Quickly Solve Your Debugging Challenges
TotalView helps organizations like OpenGeoSolutions intuitively diagnose and understand their complex code. See for yourself how TotalView will help you do the same.