Dot

Published configurations

Scalar and one-component contraction representation measurements.

Measured operation

Measures one-component pair contractions without finite-element setup.

Mathematical foundation

A complete batch computes \(D_{ba}=z_b\overline{y_a}\) or replaces a zeroed output by \(D_{ba}\mathrel{+}=wz_b\overline{y_a}\). Seeded scopes additionally form \(0+z_b\overline{y_a}\) before storing or weighting it. These represent scalar arithmetic, fixed-size Eigen views and the public one-component spatial-vector operation. No mathematical equality of their general floating-point algorithms is assumed.

Architecture

Raw scalar arrays are shared by the scalar and fixed-view protocols. Spatial protocols instead retain arrays of one-component spatial values; their object footprint is reported separately. Dyadic inputs give exact finite reference values, including genuinely complex right operands and real-valued right operands representing reference basis values. A perturbed output must fail qualification. This does not certify arbitrary complex, nonfinite or rounding-mode behavior across representations.

Setup and qualification are untimed. Each iteration includes pair traversal and output stores; weighted scopes also include output zeroing. Barriers surround a batch rather than each contraction. No geometry, quadrature, basis scaling, matrix scatter or solving is measured.

Recorded results

Each case retains its original inputs, iteration policy and correctness checks. Raw reports preserve counters, repetitions and the Google Benchmark context. CPU, wall and manually supplied times are labeled separately; unlike operations and configurations are not averaged together.

Timing history

RodinScalarDotBenchmarks · auto · regular · ranks: 1

No timing history has been published for this component.

Benchmark machine and measurement conditions

Published CI benchmarks run on standard GitHub-hosted ubuntu-24.04 virtual machines for public repositories.

SystemCPUMemorySSD
Ubuntu 24.04, x644 vCPUs16 GB14 GB

The benchmark builds use GCC 14 and Release mode. Each job runs one benchmark executable at a time. OpenMP, OpenBLAS and MKL use one thread; MPI ranks share the same runner. The selected configuration identifies the build and rank count.

The CPU model and host load can vary between virtual machines, so small timing differences should be checked across repeated runs. GitHub runner specifications describe the available hardware. The source workflow is BenchmarkGroup.yml.