5 #ifndef _HEBench_API_Bridge_Benchmark_H_7e5fa8c2415240ea93eff148ed73539b
6 #define _HEBench_API_Bridge_Benchmark_H_7e5fa8c2415240ea93eff148ed73539b
42 static constexpr std::int64_t
tag = 0x1000000000000000;
131 void addDefaultParameters(
const std::vector<hebench::APIBridge::WorkloadParam> &default_params_set);
134 std::vector<std::vector<hebench::APIBridge::WorkloadParam>> m_default_params;
152 static constexpr std::int64_t
tag = 0x4000000000000000;
194 std::uint64_t indexers_count) = 0;
214 std::uint64_t param_position);
225 std::uint64_t param_position);
236 std::uint64_t param_position);
242 std::vector<hebench::APIBridge::WorkloadParam> m_bench_params;
Top level opaque benchmark class.
static const hebench::APIBridge::DataPack & findDataPack(const hebench::APIBridge::DataPackCollection ¶meters, std::uint64_t param_position)
Searches the specified DataPackCollection for the DataPack in the corresponding position.
virtual hebench::APIBridge::Handle load(const hebench::APIBridge::Handle *p_local_data, std::uint64_t count)=0
virtual hebench::APIBridge::Handle decrypt(hebench::APIBridge::Handle encrypted_data)=0
virtual void store(hebench::APIBridge::Handle remote_data, hebench::APIBridge::Handle *p_local_data, std::uint64_t count)=0
virtual hebench::APIBridge::Handle encode(const hebench::APIBridge::DataPackCollection *p_parameters)=0
const BaseEngine & getEngine() const
std::int64_t classTag() const override
Retrieves the tag of the class to which this object belongs.
const hebench::APIBridge::BenchmarkDescriptor & getDescriptor() const
static std::uint64_t findDataPackIndex(const hebench::APIBridge::DataPackCollection ¶meters, std::uint64_t param_position)
Searches the specified DataPackCollection for the DataPack in the corresponding position.
virtual void initialize(const hebench::APIBridge::BenchmarkDescriptor &bench_desc_concrete)
Called by Test Harness with the concrete values for the benchmark description.
virtual ~BaseBenchmark()=default
virtual hebench::APIBridge::Handle encrypt(hebench::APIBridge::Handle encoded_data)=0
const std::vector< hebench::APIBridge::WorkloadParam > & getWorkloadParameters() const
virtual void decode(hebench::APIBridge::Handle encoded_data, hebench::APIBridge::DataPackCollection *p_native)=0
BaseBenchmark(BaseEngine &engine, const hebench::APIBridge::BenchmarkDescriptor &bench_desc, const hebench::APIBridge::WorkloadParams &bench_params)
Constructs a new BaseBenchmark object for benchmarking a workload with flexible parameters.
static constexpr std::int64_t tag
Used to identify this class when returned as a handle to Test Harness.
virtual hebench::APIBridge::Handle operate(hebench::APIBridge::Handle h_remote_packed, const hebench::APIBridge::ParameterIndexer *p_param_indexers, std::uint64_t indexers_count)=0
void setDescriptor(const hebench::APIBridge::BenchmarkDescriptor &value)
Base class that encapsulates common behavior of backend engines.
Base class for objects representing a specific benchmark based on an HEBench benchmark descriptor.
BenchmarkDescription()=default
virtual void destroyBenchmark(BaseBenchmark *p_bench)=0
Destroys and frees resources held by a BaseBenchmark (or derived) object previously created by create...
virtual ~BenchmarkDescription()=default
std::int64_t classTag() const override
Retrieves the tag of the class to which this object belongs.
static constexpr std::int64_t tag
Used to identify this class when returned as a handle to Test Harness.
void addDefaultParameters(const WorkloadParams::Common &default_params_set)
Adds a new set of default arguments for the parameters for this benchmark's workload.
const std::vector< std::vector< hebench::APIBridge::WorkloadParam > > & getWorkloadDefaultParameters() const
Retrieves the sets of default arguments supported by this benchmark's workload.
virtual BaseBenchmark * createBenchmark(BaseEngine &engine, const hebench::APIBridge::WorkloadParams *p_params)=0
Instantiates the represented benchmark.
const hebench::APIBridge::BenchmarkDescriptor & getBenchmarkDescriptor() const
Retrieves the HEBench benchmark descriptor represented by this BenchmarkDescription object.
virtual std::string getBenchmarkDescription(const hebench::APIBridge::WorkloadParams *p_w_params) const
Retrieves human-readable description specific to the represented benchmark.
std::size_t getWorkloadParameterCount() const
Retrieves the number of flexible parameters for this benchmark's workload.
hebench::APIBridge::BenchmarkDescriptor m_descriptor
HEBench descriptor for this benchmark.
Represents an object with a tag.
Base wrapper around the flexible workload parameters.
#define HEBERROR_DECLARE_CLASS_NAME(class_name)
Defines a benchmark test.
Defines a data package for an operation.
Defines a collection of data packs.
Specifies the parameters for a workload.
Structure to contain flexible data.