SpatialMatrix
Published configurations
SpatialMatrix benchmarks separate arithmetic, contractions, products and matrix decompositions. Ordinary multiplication obeys \(C_{ij}=\sum_k A_{ik}B_{kj}\), without conjugation of complex operands. Right-conjugated scalar contractions are identified separately.
Representations and products
Spatial matrices are compared with bounded, dynamic and selected fixed Eigen matrices. Matched products multiply an \(r\times k\) matrix by a \(k\times r\) matrix. The separate matrix-product component covers the full three-extent sweep and mixed scalar orders.
Decompositions
Trace, determinant, inverse, solve and full-rank pseudoinverse cases retain their shape requirements. Full-pivot LU and complete orthogonal decomposition provide untimed references. Pseudoinverse comparators retain the same normal-equation algorithm inside timing.
Measurement contract
Owned-result cases include materialization and assignment. Destination cases use prepared disjoint storage and a distinct result lifecycle. Inputs and numerical references are excluded; outputs are checked before and after timing. Calling-thread CPU time is reported per sweep of one or thirty-two inputs; divide by the operations counter for time per matrix.
Benchmarks
Contraction
Conjugating spatial-matrix contractions and weighted pair batches.
MatrixProduct
Spatial matrix products underlying vector-basis gradient transforms.
MatrixVectorProduct
Runtime-shape spatial matrix-vector products used by gradient mapping.
Timing history
RodinMathSpatialMatrixBenchmarks · cpu_time · slow · 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.
| System | CPU | Memory | SSD |
|---|---|---|---|
| Ubuntu 24.04, x64 | 4 vCPUs | 16 GB | 14 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.