SMT-RAT  24.02
Toolbox for Strategic and Parallel Satisfiability-Modulo-Theories Solving
benchmax Namespace Reference

Namespaces

 settings
 
 slurm
 
 ssh
 

Data Structures

class  Backend
 Base class for all backends. More...
 
class  CondorBackend
 Backend for the HTCondor batch system. More...
 
class  RandomizationAdaptor
 Provides iteration over a given std::vector in a pseudo-randomized order. More...
 
class  Jobs
 Represents a set of jobs, constructed as the cartesian product of a set of tools and a set of benchmarks. More...
 
class  LocalBackend
 This backend simply runs files sequentially on the local machine. More...
 
class  SlurmBackend
 Backend for the Slurm workload manager. More...
 
class  SSHBackend
 
class  BenchmarkSet
 A set of benchmarks from some common base directory. More...
 
struct  BenchmarkResult
 Results for a single benchmark run. More...
 
class  CSVWriter
 Writes results to a csv file. More...
 
class  Database
 Dummy database that effectively disables storing to database. Set BENCHMAX_DATABASE to actually use a database. More...
 
class  DBAL
 
class  Results
 Stores results for for whole benchmax run. More...
 
class  XMLWriter
 Writes results to a xml file. More...
 
class  SettingsParser
 Generic class to manage settings parsing using boost::program_options. More...
 
class  MathSAT
 Tool wrapper for MathSAT for SMT-LIB. More...
 
class  Minisat
 Tool wrapper for a Minisat solver. More...
 
class  Minisatp
 Tool wrapper for the Minisatp solver for pseudo-Boolean problems. More...
 
class  simple_parser
 
class  SMTRAT
 Tool wrapper for SMT-RAT for SMT-LIB. More...
 
class  SMTRAT_Analyzer
 Tool wrapper for SMT-RAT for SMT-LIB. More...
 
class  SMTRAT_OPB
 Adapts the SMTRAT solver for OPB files. More...
 
class  Tool
 Base class for any tool. More...
 
class  Z3
 Tool wrapper for Z3 for SMT-LIB. More...
 

Typedefs

using Job = std::pair< const Tool *, std::filesystem::path >
 Typedef for a job, consisting of a tool and an input file. More...
 
using ToolPtr = std::unique_ptr< Tool >
 A std::unique_ptr to a Tool. More...
 
using Tools = std::vector< ToolPtr >
 A vector of ToolPtr. More...
 

Functions

template<typename Backend >
void execute_backend (const std::string &name, const Jobs &jobs)
 
void run_backend (const std::string &backend, const Jobs &jobs)
 Runs a given backend on a list of tools and benchmarks. More...
 
const auto & settings_slurm ()
 Return the Slurm settings. More...
 
const auto & settings_ssh ()
 Return the SSH settings. More...
 
BenchmarkSet loadBenchmarks ()
 Loads benchmark files from directory specified in settings. More...
 
const auto & settings_benchmarks ()
 Return the benchmark settings. More...
 
void logging_configure ()
 Configure default logging for benchmax. More...
 
void logging_quiet ()
 Configure quiet logging for benchmax. More...
 
void logging_verbose ()
 Configure verbose logging for benchmax. More...
 
std::ostream & operator<< (std::ostream &os, const BenchmarkResult &results)
 Streaming operator for BenchmarkResult. More...
 
const auto & settings_preset ()
 Return the Slurm settings. More...
 
template<typename T >
const auto & settings_get (const std::string &name)
 Helper function to obtain settings by name and type. More...
 
const auto & settings_core ()
 Retrieved core settings. More...
 
const auto & settings_operation ()
 Retrieved operation settings. More...
 
bool is_system_lib (std::string path)
 
std::ostream & operator<< (std::ostream &os, const Tool &tool)
 Streaming operator for a generic tool. More...
 
template<typename T >
void createTools (const std::vector< std::filesystem::path > &arguments, Tools &tools)
 Create tools of a given type T from a list of binaries and store them in tools. More...
 
Tools loadTools ()
 Load all tools from the tool settings. More...
 
const auto & settings_tools ()
 Returns the tool settings. More...
 
int call_program (const std::string &commandline, std::string &stdout, bool print_to_stdout=false)
 Runs an external program from some command line and records the output to stdout. More...
 
std::filesystem::path common_prefix (const std::filesystem::path &p1, const std::filesystem::path &p2)
 Computes the common prefix of two paths. More...
 
std::filesystem::path common_prefix (const std::vector< std::filesystem::path > &s, bool skip_last=true)
 Computes the common prefix of a list of paths. More...
 
std::filesystem::path common_prefix (const std::initializer_list< std::vector< std::filesystem::path >> &s, bool skip_last=true)
 Computes the common prefix of multiple lists of paths. More...
 
std::filesystem::path remove_prefix (const std::filesystem::path &s, const std::filesystem::path &prefix)
 Remove a prefix from a path. More...
 
bool is_extension (const std::filesystem::path &path, const std::string &extension)
 Checks whether the extension of the filename is as specified. More...
 
std::size_t parse_peak_memory (const std::string &output)
 

Typedef Documentation

◆ Job

using benchmax::Job = typedef std::pair<const Tool*, std::filesystem::path>

Typedef for a job, consisting of a tool and an input file.

Definition at line 12 of file Jobs.h.

◆ ToolPtr

using benchmax::ToolPtr = typedef std::unique_ptr<Tool>

A std::unique_ptr to a Tool.

Definition at line 15 of file Tools.h.

◆ Tools

using benchmax::Tools = typedef std::vector<ToolPtr>

A vector of ToolPtr.

Definition at line 17 of file Tools.h.

Function Documentation

◆ call_program()

int benchmax::call_program ( const std::string &  commandline,
std::string &  stdout,
bool  print_to_stdout = false 
)
inline

Runs an external program from some command line and records the output to stdout.

Prints the program output and records it at the same time if print_to_stdout is set to true.

Parameters
commandlineProgram to execute.
stdoutStandard output.
print_to_stdoutAlso print if true.
Returns
Exit code of the program.

Definition at line 18 of file execute.h.

Here is the caller graph for this function:

◆ common_prefix() [1/3]

std::filesystem::path benchmax::common_prefix ( const std::filesystem::path &  p1,
const std::filesystem::path &  p2 
)
inline

Computes the common prefix of two paths.

Definition at line 12 of file filesystem.h.

Here is the caller graph for this function:

◆ common_prefix() [2/3]

std::filesystem::path benchmax::common_prefix ( const std::initializer_list< std::vector< std::filesystem::path >> &  s,
bool  skip_last = true 
)
inline

Computes the common prefix of multiple lists of paths.

skip_last specifies whether the last part if the path (usually the filename) may be part of the prefix.

Definition at line 45 of file filesystem.h.

Here is the call graph for this function:

◆ common_prefix() [3/3]

std::filesystem::path benchmax::common_prefix ( const std::vector< std::filesystem::path > &  s,
bool  skip_last = true 
)
inline

Computes the common prefix of a list of paths.

skip_last specifies whether the last part if the path (usually the filename) may be part of the prefix.

Definition at line 29 of file filesystem.h.

Here is the call graph for this function:

◆ createTools()

template<typename T >
void benchmax::createTools ( const std::vector< std::filesystem::path > &  arguments,
Tools tools 
)

Create tools of a given type T from a list of binaries and store them in tools.

Definition at line 18 of file Tools.cpp.

◆ execute_backend()

template<typename Backend >
void benchmax::execute_backend ( const std::string &  name,
const Jobs jobs 
)

Definition at line 16 of file Backends.h.

Here is the call graph for this function:

◆ is_extension()

bool benchmax::is_extension ( const std::filesystem::path &  path,
const std::string &  extension 
)
inline

Checks whether the extension of the filename is as specified.

Definition at line 60 of file filesystem.h.

Here is the caller graph for this function:

◆ is_system_lib()

bool benchmax::is_system_lib ( std::string  path)
inline

Definition at line 24 of file Tool.h.

Here is the caller graph for this function:

◆ loadBenchmarks()

BenchmarkSet benchmax::loadBenchmarks ( )

Loads benchmark files from directory specified in settings.

Definition at line 8 of file benchmarks.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ loadTools()

Tools benchmax::loadTools ( )

Load all tools from the tool settings.

Definition at line 39 of file Tools.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ logging_configure()

void benchmax::logging_configure ( )
inline

Configure default logging for benchmax.

Definition at line 18 of file logging.h.

Here is the caller graph for this function:

◆ logging_quiet()

void benchmax::logging_quiet ( )
inline

Configure quiet logging for benchmax.

Definition at line 29 of file logging.h.

Here is the caller graph for this function:

◆ logging_verbose()

void benchmax::logging_verbose ( )
inline

Configure verbose logging for benchmax.

Definition at line 38 of file logging.h.

Here is the caller graph for this function:

◆ operator<<() [1/2]

std::ostream& benchmax::operator<< ( std::ostream &  os,
const BenchmarkResult results 
)
inline

Streaming operator for BenchmarkResult.

Definition at line 85 of file BenchmarkResult.h.

◆ operator<<() [2/2]

std::ostream& benchmax::operator<< ( std::ostream &  os,
const Tool tool 
)
inline

Streaming operator for a generic tool.

Definition at line 156 of file Tool.h.

Here is the call graph for this function:

◆ parse_peak_memory()

std::size_t benchmax::parse_peak_memory ( const std::string &  output)
inline

Definition at line 4 of file parsing.h.

Here is the caller graph for this function:

◆ remove_prefix()

std::filesystem::path benchmax::remove_prefix ( const std::filesystem::path &  s,
const std::filesystem::path &  prefix 
)
inline

Remove a prefix from a path.

Definition at line 54 of file filesystem.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ run_backend()

void benchmax::run_backend ( const std::string &  backend,
const Jobs jobs 
)

Runs a given backend on a list of tools and benchmarks.

Parameters
backendBackend name.
toolsList of tools.
benchmarksList of benchmarks.

Definition at line 43 of file Backends.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ settings_benchmarks()

const auto& benchmax::settings_benchmarks ( )
inline

Return the benchmark settings.

Definition at line 41 of file benchmarks.h.

Here is the caller graph for this function:

◆ settings_core()

const auto& benchmax::settings_core ( )
inline

Retrieved core settings.

Definition at line 81 of file Settings.h.

Here is the caller graph for this function:

◆ settings_get()

template<typename T >
const auto& benchmax::settings_get ( const std::string &  name)
inline

Helper function to obtain settings by name and type.

Definition at line 75 of file Settings.h.

◆ settings_operation()

const auto& benchmax::settings_operation ( )
inline

Retrieved operation settings.

Definition at line 85 of file Settings.h.

Here is the caller graph for this function:

◆ settings_preset()

const auto& benchmax::settings_preset ( )
inline

Return the Slurm settings.

Definition at line 21 of file PresetSettings.h.

◆ settings_slurm()

const auto& benchmax::settings_slurm ( )
inline

Return the Slurm settings.

Definition at line 32 of file SlurmSettings.h.

Here is the caller graph for this function:

◆ settings_ssh()

const auto& benchmax::settings_ssh ( )
inline

Return the SSH settings.

Definition at line 27 of file SSHSettings.h.

Here is the caller graph for this function:

◆ settings_tools()

const auto& benchmax::settings_tools ( )
inline

Returns the tool settings.

Definition at line 59 of file Tools.h.

Here is the caller graph for this function: