PBeFS
Parallel Best-First Search
Loading...
Searching...
No Matches
SearchStats Struct Reference

the counters of a search More...

#include <PBeFS/astar/Solution.h>

Public Member Functions

double load_balance (void) const
 the load balance \( \mathrm{LB} \), the largest over the mean of the expansions per worker (1 is a perfect balance)
double communication_overhead (void) const
 the communication overhead \( \mathrm{CO} \), the nodes sent to another worker over the nodes generated

Public Attributes

std::uint64_t expanded = 0
 expansions, re-expansions included
std::uint64_t reexpanded = 0
 expansions of a node already expanded
std::uint64_t generated = 0
 successors generated
std::uint64_t duplicates = 0
 generated states already known with a \( g \) not larger
std::uint64_t sent = 0
 nodes sent to another worker
std::uint64_t messages = 0
 batches of nodes sent
std::uint64_t stored = 0
 distinct nodes stored at the end
double seconds = 0
 wall-clock time of the search
std::vector< std::uint64_t > expanded_by
 expansions of each worker
std::vector< std::uint64_t > stored_by
 nodes stored by each worker

Detailed Description

the counters of a search

The vectors have one entry per worker, a single one for a sequential search. The field sent counts the nodes handed to another worker, so that the communication overhead of Jinnai and Fukunaga (JAIR 2017) is \( \mathrm{CO} = \mathrm{sent} / \mathrm{generated} \), and the load balance is \( \mathrm{LB} = \max_i E_i / ( \frac{1}{p} \sum_i E_i ) \), \( E_i \) being the expansions of the worker \( i \) in expanded_by.

Member Function Documentation

◆ communication_overhead()

double communication_overhead ( void ) const
nodiscard

the communication overhead \( \mathrm{CO} \), the nodes sent to another worker over the nodes generated

◆ load_balance()

double load_balance ( void ) const
nodiscard

the load balance \( \mathrm{LB} \), the largest over the mean of the expansions per worker (1 is a perfect balance)

Member Data Documentation

◆ duplicates

std::uint64_t duplicates = 0

generated states already known with a \( g \) not larger

◆ expanded

std::uint64_t expanded = 0

expansions, re-expansions included

◆ expanded_by

std::vector< std::uint64_t > expanded_by

expansions of each worker

◆ generated

std::uint64_t generated = 0

successors generated

◆ messages

std::uint64_t messages = 0

batches of nodes sent

◆ reexpanded

std::uint64_t reexpanded = 0

expansions of a node already expanded

◆ seconds

double seconds = 0

wall-clock time of the search

◆ sent

std::uint64_t sent = 0

nodes sent to another worker

◆ stored

std::uint64_t stored = 0

distinct nodes stored at the end

◆ stored_by

std::vector< std::uint64_t > stored_by

nodes stored by each worker


The documentation for this struct was generated from the following file: