- Client
- Amberg Technologies AG
- Location
- Regensdorf, Switzerland
- Industry
- Surveying Technology and Geophysics
- Period
- 2015 to 2018
7x
faster seismic signal processing, from 280 to 40 seconds
5x
faster seismic migration on standard office hardware, at full numerical accuracy
up to 20%
shorter calculation times after the move to 64-bit
around 10 million
points displayed smoothly, even on tablets
Starting point
Across several engagements, our development team worked with Amberg Technologies on the parts of the software where speed matters: displaying 3D scans with several million points and processing seismic data for geophysical analyses.
What we built
Point clouds on desktop and tablet
Point clouds with around 10 million points needed to move smoothly, even on tablets with weak hardware. Our team built a reusable WPF component on a C++ and VTK core, with adjustable levels of detail, zoom, rotate and pan. It rebuilt the switch between detail levels using spatial indices (k-d trees, octrees).
Result: Large scans can be explored interactively on desktop and tablet.
Seismic signal processing
The library computed sequentially, and one run took several minutes. Our team designed a hybrid algorithm that splits the work across processor and graphics card with dynamic load balancing, speeds up the most compute-intensive parts with SIMD and cache optimisation, and parallelises with OpenMP.
Result: 40 instead of 280 seconds per run, 7 times faster.
Migration algorithm
The algorithm could not be parallelised directly. A graphics-card variant was fast but deviated more from the original than production use allowed. It was therefore not shipped; instead, our team optimised the original algorithm itself.
Result: around 5 times faster on a standard Intel Core i5 processor, with no special hardware and the same results as the original.
Move to 64-bit
The 32-bit solution could not process the larger datasets, and results varied depending on the number of OpenMP threads. Our team ported the code to 64-bit, found and fixed the cause of the variation, and made the critical sections more efficient.
Result: larger datasets, the same results regardless of thread count, and typical calculation times up to 20% shorter.
We did not ship a faster variant because its results deviated from the original. Accuracy comes before speed.