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 Summary
Modifier and TypeMethodDescriptiondefault Stringdefault AlgorithmProviderdefault StringgetId()getName()default MathContext.RealPrecisiondefault intdefault booleanChecks if the benchmark requirements (e.g. native libraries, hardware) are met.default booleanisDryRun()voidrun()The core action to measure.default voidsetDryRun(boolean dryRun) Sets whether this benchmark should run in dry-run mode (minimal dataset).default voidSets the precision mode for this benchmark execution.voidsetup()Setup method called once before the benchmark runs.voidteardown()Cleanup method called once after the benchmark completes.
-
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
- Returns:
- The algorithm provider name (e.g. "Episteme", "OpenCL", "NativeBLAS") or "Standard" if not applicable.
-
getAlgorithmType
- Returns:
- The algorithm type (e.g. "inference", "linear algebra")
-
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
-
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
- Returns:
- The precision mode for this benchmark execution.
-
setPrecisionMode
Sets the precision mode for this benchmark execution.
-