Interface RunnableBenchmark

All Known Subinterfaces:
ProviderBenchmark, SystematicBenchmark<P>
All Known Implementing Classes:
ComparisonBenchmark, ComplexLinearAlgebraBenchmark, ComplexMatrixInversionBenchmark, ComplexSolveBenchmark, DistributedMatrixBenchmark, DistributedMatrixBenchmark_jmhType, DistributedMatrixBenchmark_jmhType_B1, DistributedMatrixBenchmark_jmhType_B2, DistributedMatrixBenchmark_jmhType_B3, HDF5ReadBenchmark, HDF5WriteBenchmark, NetworkPenaltyBenchmark, QuantumCircuitBenchmark, SystematicAgentBenchmark, SystematicAudioBenchmark, SystematicBayesianInferenceBenchmark, SystematicDistributedBenchmark, SystematicFEMBenchmark, SystematicFFTBenchmark, SystematicGeneticBenchmark, SystematicGraphBenchmark, SystematicInverseBenchmark, SystematicLatticeBoltzmannBenchmark, SystematicMandelbrotBenchmark, SystematicMapBenchmark, SystematicMatrixBenchmark, SystematicMaxwellBenchmark, SystematicMLBenchmark, SystematicMolecularDynamicsBenchmark, SystematicMonteCarloBenchmark, SystematicNBodyBenchmark, SystematicODEBenchmark, SystematicSimulationBenchmark, SystematicSolveBenchmark, SystematicSparseMatrixBenchmark, SystematicSPHBenchmark, SystematicTensorBenchmark, SystematicVisionBenchmark

public interface RunnableBenchmark
Standard interface for all Episteme benchmarks.

This interface allows benchmarks to be auto-discovered via ServiceLoader and executed uniformly.

Since:
1.0
Author:
Silvere Martin-Michiellot, Gemini AI (Google DeepMind)
  • Method Details

    • getId

      String getId()
      Returns:
      A unique stable identifier for this benchmark (e.g. "ga-tsp-50")
    • getName

      String getName()
      Returns:
      Unique human-readable name of the benchmark
    • getDescription

      String getDescription()
      Returns:
      A detailed description of what the benchmark measures
    • getDomain

      String getDomain()
      Returns:
      The domain of this benchmark (e.g. "Linear Algebra", "Physics")
    • getAlgorithmProvider

      default String getAlgorithmProvider()
      Returns:
      The algorithm provider name (e.g. "Episteme", "OpenCL", "NativeBLAS") or "Standard" if not applicable.
    • getAlgorithmType

      default String getAlgorithmType()
      Returns:
      The algorithm type (e.g. "inference", "linear algebra")
    • getAlgorithmProviderInstance

      default AlgorithmProvider getAlgorithmProviderInstance()
      Returns:
      The actual algorithm provider instance associated with this benchmark, if any.
    • setup

      void setup()
      Setup method called once before the benchmark runs. Use this to initialize data structures.
    • run

      void run()
      The core action to measure. This method will be called repeatedly in a loop.
    • teardown

      void teardown()
      Cleanup method called once after the benchmark completes.
    • getSuggestedIterations

      default int getSuggestedIterations()
      Returns:
      Estimated number of iterations required for a stable result
    • getMetadata

      default Map<String,Object> getMetadata()
      Returns:
      Metadata about the benchmark configuration
    • setDryRun

      default void setDryRun(boolean dryRun)
      Sets whether this benchmark should run in dry-run mode (minimal dataset).
    • isDryRun

      default boolean isDryRun()
      Returns:
      true if this benchmark is in dry-run mode
    • isAvailable

      default boolean isAvailable()
      Checks if the benchmark requirements (e.g. native libraries, hardware) are met.
      Returns:
      true if the benchmark can be executed
    • getPrecisionMode

      default MathContext.RealPrecision getPrecisionMode()
      Returns:
      The precision mode for this benchmark execution.
    • setPrecisionMode

      default void setPrecisionMode(MathContext.RealPrecision mode)
      Sets the precision mode for this benchmark execution.