Project · Surveying and Geophysics · Switzerland

Amberg Technologies: High-Performance Software for Point Clouds and Seismic Data

Your contact for a similar project is Daniel Giebelhaus in Zurich. Our development team does the implementation.

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.

Technologies

C++VTKWPFMFCOpenMPSIMDOpenCLIntel Parallel StudioPVS-Studio

Describe your task in two sentences

We will tell you whether a dedicated tool is worth it and what it would take.

Describe your task