Skip to content

Performance

Qseek is built for large networks and years of data. The benchmark shows the throughput for different network sizes.

These settings decide how fast your search runs.

Phase annotation on the GPU

The phase annotation with machine learning pickers runs much faster on a GPU. Run it on a CUDA GPU with torch_use_cuda of the SeisBench image function: true uses the default device, a number selects a device, e.g. 0 for the first one.

Annotation on the GPU
"image_function": {
  "image": "SeisBench",
  "model": "PhaseNet",
  "torch_use_cuda": true,
  "batch_size": 128
}

A larger batch_size can improve the throughput on the GPU. Without a GPU, torch_cpu_threads sets the number of CPU threads for the annotation.

Stacking and migration

  • Threads: n_threads of the search sets the threads for stacking and migration. The default "auto" uses the available cores and leaves resources for loading the data and the annotation.
  • Search volume: Qseek stacks every root node in every window. Fewer, larger root nodes make the search faster; add octree levels instead of shrinking the root nodes. See search volume.
  • Distance weighting: stations with a weight of zero are skipped in the stack. The distance weights limit large networks to the stations close to each node.

Waveform data

  • SDS archive: the SDSArchive provider is the fastest. Copy unstructured data into an SDS archive for large searches.
  • Squirrel: with a persistent collection, Pyrocko Squirrel keeps its file index between runs.
  • Memory: a shorter window_length of the search needs less memory.
  • Images: keep save_images off unless you need the images; writing them costs time and disk space.

Travel times

The fast marching ray tracer is faster than Pyrocko Cake for large numbers of stations and nodes. Pyrocko Cake caches its travel time tables in the cache directory, so later searches with the same model start faster. qseek clear-cache empties the cache.