ccloc: Faster computation on multiple threads or GPU

Dec 8, 2022

Categories:
Products

ccloc, our module for automatic detection and classification of seismic signals by cross correlation with template events has received a significant speed up after a major rework of the code now including the support for computation on multiple CPU threads and even on the graphics card (GPU).

media/benchmark.png

Benchmarking of ccloc running on multiple threads or GPU with (left) short 5 min waveforms and many channels or (right) long 120 min waveforms and few channels.

Our rework alone results in a significant speed up even when only 1 CPU is used. On average we observe an acceleration with a factor of 3 w.r.t. ccloc in previous versions. When allowing computation on multiple threads or even GPU, the speed up easily becomes much higher. Using multiple threads or GPU is configurable or can be activated by command-line options. The ccloc documentation explains the parameters in more detail.

Computation on GPU requires CUDA support. The eventual speed-up effect by multi-threading or GPU computation not only depends on the number of available cores but also on the data provided and is stronger the longer the provided time series.

Therefore, ccloc in the new version allows detections based on many more template events simultaneously and in real time as well as more efficient playbacks with large datasets.