HeFFTe - Highly Efficient FFT for Exascale HeFFTe is the Highly Efficient FFT for Exascale software developed as part of the Exascale Computing Project. This test profile uses HeFFTe's built-in speed benchmarks under a variety of configuration options and currently catering to CPU/processor testing.
To run this test with the Phoronix Test Suite , the basic command is: phoronix-test-suite benchmark heffte .
Test Created 18 June 2023
Last Updated 27 October 2023
Test Type Processor
Average Install Time 42 Seconds
Average Run Time 1 Minute, 50 Seconds
Test Dependencies C/C++ Compiler Toolchain + Fortran + OpenMPI + CMake + FFTW
Accolades 10k+ Downloads Public Result Uploads * Reported Installs ** Reported Test Completions ** Test Profile Page Views OpenBenchmarking.org Events HeFFTe - Highly Efficient FFT for Exascale Popularity Statistics pts/heffte 2023.06 2023.07 2023.08 2023.09 2023.10 2023.11 2023.12 2024.01 2024.02 2024.03 2024.04 2024.05 2024.06 2024.07 2024.08 2024.09 2024.10 2024.11 1000 2000 3000 4000 5000
* Uploading of benchmark result data to OpenBenchmarking.org is always optional (opt-in) via the Phoronix Test Suite for users wishing to share their results publicly. ** Data based on those opting to upload their test results to OpenBenchmarking.org and users enabling the opt-in anonymous statistics reporting while running benchmarks from an Internet-connected platform. Data updated weekly as of 18 November 2024.
c2c 48.0% r2c 52.0% Test Option Popularity OpenBenchmarking.org
Stock 47.7% FFTW 52.3% Backend Option Popularity OpenBenchmarking.org
double 26.1% float 28.3% double-long 22.4% float-long 23.3% Precision Option Popularity OpenBenchmarking.org
128 33.6% 256 30.7% 1024 7.1% 512 28.5% X Y Z Option Popularity OpenBenchmarking.org
Revision Historypts/heffte-1.1.0 [View Source ] Fri, 27 Oct 2023 15:16:02 GMT Update against HeFFTe 2.4 upstream.
pts/heffte-1.0.0 [View Source ] Sun, 18 Jun 2023 09:51:50 GMT Initial commit of HeFFTe benchmark.
Performance MetricsAnalyze Test Configuration: pts/heffte-1.1.x - Test: r2c - Backend: FFTW - Precision: float - X Y Z: 128 pts/heffte-1.1.x - Test: r2c - Backend: FFTW - Precision: double - X Y Z: 128 pts/heffte-1.1.x - Test: c2c - Backend: FFTW - Precision: float - X Y Z: 128 pts/heffte-1.1.x - Test: c2c - Backend: FFTW - Precision: float - X Y Z: 256 pts/heffte-1.1.x - Test: r2c - Backend: FFTW - Precision: float - X Y Z: 256 pts/heffte-1.1.x - Test: c2c - Backend: FFTW - Precision: float - X Y Z: 512 pts/heffte-1.1.x - Test: r2c - Backend: FFTW - Precision: double - X Y Z: 256 pts/heffte-1.1.x - Test: c2c - Backend: FFTW - Precision: double - X Y Z: 128 pts/heffte-1.1.x - Test: c2c - Backend: FFTW - Precision: double - X Y Z: 256 pts/heffte-1.1.x - Test: r2c - Backend: Stock - Precision: float - X Y Z: 128 pts/heffte-1.1.x - Test: c2c - Backend: Stock - Precision: float - X Y Z: 128 pts/heffte-1.1.x - Test: r2c - Backend: FFTW - Precision: float - X Y Z: 512 pts/heffte-1.1.x - Test: c2c - Backend: Stock - Precision: float - X Y Z: 256 pts/heffte-1.1.x - Test: r2c - Backend: FFTW - Precision: double - X Y Z: 512 pts/heffte-1.1.x - Test: r2c - Backend: Stock - Precision: float - X Y Z: 256 pts/heffte-1.1.x - Test: c2c - Backend: Stock - Precision: double - X Y Z: 128 pts/heffte-1.1.x - Test: c2c - Backend: Stock - Precision: double - X Y Z: 256 pts/heffte-1.1.x - Test: r2c - Backend: Stock - Precision: double - X Y Z: 128 pts/heffte-1.1.x - Test: r2c - Backend: Stock - Precision: double - X Y Z: 256 pts/heffte-1.1.x - Test: c2c - Backend: Stock - Precision: float - X Y Z: 512 pts/heffte-1.1.x - Test: r2c - Backend: Stock - Precision: float - X Y Z: 512 pts/heffte-1.1.x - Test: r2c - Backend: Stock - Precision: double - X Y Z: 512 pts/heffte-1.1.x - Test: r2c - Backend: Stock - Precision: double-long - X Y Z: 512 pts/heffte-1.1.x - Test: r2c - Backend: Stock - Precision: float-long - X Y Z: 512 pts/heffte-1.1.x - Test: r2c - Backend: FFTW - Precision: float-long - X Y Z: 256 pts/heffte-1.1.x - Test: c2c - Backend: Stock - Precision: float-long - X Y Z: 512 pts/heffte-1.1.x - Test: r2c - Backend: FFTW - Precision: double-long - X Y Z: 256 pts/heffte-1.1.x - Test: r2c - Backend: Stock - Precision: double-long - X Y Z: 128 pts/heffte-1.1.x - Test: r2c - Backend: FFTW - Precision: float-long - X Y Z: 512 pts/heffte-1.1.x - Test: c2c - Backend: Stock - Precision: float-long - X Y Z: 128 pts/heffte-1.1.x - Test: r2c - Backend: Stock - Precision: double-long - X Y Z: 256 pts/heffte-1.1.x - Test: r2c - Backend: FFTW - Precision: double-long - X Y Z: 512 pts/heffte-1.1.x - Test: r2c - Backend: Stock - Precision: float-long - X Y Z: 128 pts/heffte-1.1.x - Test: r2c - Backend: FFTW - Precision: float-long - X Y Z: 128 pts/heffte-1.1.x - Test: r2c - Backend: Stock - Precision: float-long - X Y Z: 256 pts/heffte-1.1.x - Test: r2c - Backend: FFTW - Precision: double-long - X Y Z: 128 pts/heffte-1.1.x - Test: c2c - Backend: Stock - Precision: float-long - X Y Z: 256 pts/heffte-1.1.x - Test: c2c - Backend: FFTW - Precision: double-long - X Y Z: 128 pts/heffte-1.1.x - Test: c2c - Backend: Stock - Precision: double-long - X Y Z: 128 pts/heffte-1.1.x - Test: c2c - Backend: FFTW - Precision: double-long - X Y Z: 256 pts/heffte-1.1.x - Test: c2c - Backend: FFTW - Precision: float-long - X Y Z: 512 pts/heffte-1.1.x - Test: c2c - Backend: FFTW - Precision: float-long - X Y Z: 256 pts/heffte-1.1.x - Test: c2c - Backend: FFTW - Precision: float-long - X Y Z: 128 pts/heffte-1.1.x - Test: c2c - Backend: Stock - Precision: double-long - X Y Z: 256 pts/heffte-1.1.x - Test: c2c - Backend: FFTW - Precision: double - X Y Z: 512 pts/heffte-1.1.x - Test: c2c - Backend: Stock - Precision: double - X Y Z: 512 pts/heffte-1.1.x - Test: c2c - Backend: FFTW - Precision: double-long - X Y Z: 512 pts/heffte-1.1.x - Test: c2c - Backend: Stock - Precision: double-long - X Y Z: 512 pts/heffte-1.0.x - Test: c2c - Backend: FFTW - Precision: double - X Y Z: 128 pts/heffte-1.0.x - Test: c2c - Backend: FFTW - Precision: float - X Y Z: 128 pts/heffte-1.0.x - Test: r2c - Backend: FFTW - Precision: float - X Y Z: 128 pts/heffte-1.0.x - Test: r2c - Backend: FFTW - Precision: double - X Y Z: 128 pts/heffte-1.0.x - Test: c2c - Backend: Stock - Precision: double - X Y Z: 128 pts/heffte-1.0.x - Test: r2c - Backend: Stock - Precision: float - X Y Z: 128 pts/heffte-1.0.x - Test: c2c - Backend: Stock - Precision: float - X Y Z: 128 pts/heffte-1.0.x - Test: r2c - Backend: Stock - Precision: double - X Y Z: 128 pts/heffte-1.0.x - Test: r2c - Backend: FFTW - Precision: double - X Y Z: 256 pts/heffte-1.0.x - Test: c2c - Backend: FFTW - Precision: float - X Y Z: 256 pts/heffte-1.0.x - Test: c2c - Backend: FFTW - Precision: double - X Y Z: 256 pts/heffte-1.0.x - Test: r2c - Backend: FFTW - Precision: float - X Y Z: 256 pts/heffte-1.0.x - Test: c2c - Backend: FFTW - Precision: float - X Y Z: 512 pts/heffte-1.0.x - Test: r2c - Backend: FFTW - Precision: float - X Y Z: 512 pts/heffte-1.0.x - Test: c2c - Backend: FFTW - Precision: double - X Y Z: 512 pts/heffte-1.0.x - Test: r2c - Backend: FFTW - Precision: double - X Y Z: 512 pts/heffte-1.0.x - Test: c2c - Backend: Stock - Precision: float - X Y Z: 256 pts/heffte-1.0.x - Test: r2c - Backend: Stock - Precision: double - X Y Z: 256 pts/heffte-1.0.x - Test: r2c - Backend: Stock - Precision: float - X Y Z: 256 pts/heffte-1.0.x - Test: c2c - Backend: Stock - Precision: double - X Y Z: 256 pts/heffte-1.0.x - Test: c2c - Backend: FFTW - Precision: double-long - X Y Z: 128 pts/heffte-1.0.x - Test: c2c - Backend: FFTW - Precision: float-long - X Y Z: 256 pts/heffte-1.0.x - Test: c2c - Backend: FFTW - Precision: double-long - X Y Z: 256 pts/heffte-1.0.x - Test: r2c - Backend: FFTW - Precision: float-long - X Y Z: 256 pts/heffte-1.0.x - Test: r2c - Backend: FFTW - Precision: double-long - X Y Z: 256 pts/heffte-1.0.x - Test: r2c - Backend: Stock - Precision: double-long - X Y Z: 256 pts/heffte-1.0.x - Test: c2c - Backend: Stock - Precision: float-long - X Y Z: 256 pts/heffte-1.0.x - Test: c2c - Backend: Stock - Precision: double-long - X Y Z: 256 pts/heffte-1.0.x - Test: c2c - Backend: FFTW - Precision: float-long - X Y Z: 128 pts/heffte-1.0.x - Test: r2c - Backend: Stock - Precision: double-long - X Y Z: 128 pts/heffte-1.0.x - Test: c2c - Backend: Stock - Precision: double-long - X Y Z: 128 pts/heffte-1.0.x - Test: r2c - Backend: FFTW - Precision: float-long - X Y Z: 128 pts/heffte-1.0.x - Test: r2c - Backend: Stock - Precision: float - X Y Z: 512 pts/heffte-1.0.x - Test: c2c - Backend: Stock - Precision: float-long - X Y Z: 128 pts/heffte-1.0.x - Test: r2c - Backend: Stock - Precision: float-long - X Y Z: 256 pts/heffte-1.0.x - Test: r2c - Backend: Stock - Precision: double - X Y Z: 512 pts/heffte-1.0.x - Test: c2c - Backend: Stock - Precision: float - X Y Z: 512 pts/heffte-1.0.x - Test: c2c - Backend: Stock - Precision: double - X Y Z: 512 pts/heffte-1.0.x - Test: r2c - Backend: FFTW - Precision: double-long - X Y Z: 128 pts/heffte-1.0.x - Test: r2c - Backend: Stock - Precision: float-long - X Y Z: 128 pts/heffte-1.0.x - Test: c2c - Backend: FFTW - Precision: double-long - X Y Z: 512 pts/heffte-1.0.x - Test: c2c - Backend: Stock - Precision: double-long - X Y Z: 512 pts/heffte-1.0.x - Test: r2c - Backend: FFTW - Precision: double-long - X Y Z: 512 pts/heffte-1.0.x - Test: r2c - Backend: FFTW - Precision: float-long - X Y Z: 512 pts/heffte-1.0.x - Test: r2c - Backend: Stock - Precision: double-long - X Y Z: 512 pts/heffte-1.0.x - Test: c2c - Backend: FFTW - Precision: float-long - X Y Z: 512 pts/heffte-1.0.x - Test: c2c - Backend: Stock - Precision: float-long - X Y Z: 512 pts/heffte-1.0.x - Test: r2c - Backend: Stock - Precision: float-long - X Y Z: 512 HeFFTe - Highly Efficient FFT for Exascale 2.4 Test: r2c - Backend: FFTW - Precision: float - X Y Z: 128 OpenBenchmarking.org metrics for this test profile configuration based on 111 public results since 27 October 2023 with the latest data as of 14 November 2024 .
Below is an overview of the generalized performance for components where there is sufficient statistically significant data based upon user-uploaded results. It is important to keep in mind particularly in the Linux/open-source space there can be vastly different OS configurations, with this overview intended to offer just general guidance as to the performance expectations.
Component
Percentile Rank
# Compatible Public Results
GFLOP/s (Average)
OpenBenchmarking.org Distribution Of Public Results - Test: r2c - Backend: FFTW - Precision: float - X Y Z: 128 108 Results Range From 11 To 328 GFLOP/s 11 29 47 65 83 101 119 137 155 173 191 209 227 245 263 281 299 317 335 5 10 15 20 25
Based on OpenBenchmarking.org data, the selected test / test configuration (HeFFTe - Highly Efficient FFT for Exascale 2.4 - Test: r2c - Backend: FFTW - Precision: float - X Y Z: 128 ) has an average run-time of 2 minutes . By default this test profile is set to run at least 3 times but may increase if the standard deviation exceeds pre-defined defaults or other calculations deem additional runs necessary for greater statistical accuracy of the result.
OpenBenchmarking.org Minutes Time Required To Complete Benchmark Test: r2c - Backend: FFTW - Precision: float - X Y Z: 128 Run-Time 2 4 6 8 10 Min: 1 / Avg: 1 / Max: 1
Based on public OpenBenchmarking.org results, the selected test / test configuration has an average standard deviation of 1.5% .
OpenBenchmarking.org Percent, Fewer Is Better Average Deviation Between Runs Test: r2c - Backend: FFTW - Precision: float - X Y Z: 128 Deviation 3 6 9 12 15 Min: 0 / Avg: 1.5 / Max: 9
Tested CPU Architectures This benchmark has been successfully tested on the below mentioned architectures. The CPU architectures listed is where successful OpenBenchmarking.org result uploads occurred, namely for helping to determine if a given test is compatible with various alternative CPU architectures.
CPU Architecture
Kernel Identifier
Verified On
Intel / AMD x86 64-bit
x86_64
(Many Processors)
Loongson LoongArch 64-bit
loongarch64
Loongson-3A6000
Recent Test Results
73 Systems - 527 Benchmark Results
2 x Intel Xeon E5-2680 v4 - Intel S2600CW - Intel Xeon E7 v4
Arch Linux - 6.9.7-arch1-1 - GCC 14.1.1 20240522
6 Systems - 87 Benchmark Results
ARMv8 Neoverse-V1 - Amazon EC2 m7g.16xlarge - Amazon Device 0200
Ubuntu 22.04 - 5.19.0-1025-aws - GCC 11.3.0