JaffarPlus
High-performance best-first search optimizer for tool-assisted speedruns
Loading...
Searching...
No Matches
stateDb.hpp File Reference

Per-NUMA-domain database of serialized game states, with reward-ordered queues that feed the search one step at a time and a free-slot pool the workers draw from. More...

#include "inputHistory/inputHistory.hpp"
#include "numa.hpp"
#include <cstdlib>
#include <jaffarCommon/bitwise.hpp>
#include <jaffarCommon/concurrent.hpp>
#include <jaffarCommon/deserializers/contiguous.hpp>
#include <jaffarCommon/json.hpp>
#include <jaffarCommon/logger.hpp>
#include <jaffarCommon/parallel.hpp>
#include <jaffarCommon/serializers/contiguous.hpp>
#include <memory>
#include <utmpx.h>

Go to the source code of this file.

Classes

class  jaffarPlus::StateDb
 Stores serialized game states across the machine's NUMA domains and serves them to the search engine in reward-ordered, per-step batches. More...
 
struct  jaffarPlus::StateDb::statCounters_t
 Per-thread statistics counters for state-DB popping and free-state acquisition. More...
 
struct  jaffarPlus::StateDb::freeStateCache_t
 Per-thread (OpenMP-thread-indexed) cache of free state slots fronting the shared free-state queues. More...
 

Macros

#define _JAFFAR_STATE_PADDING_BYTES   16
 Alignment boundary (in bytes) each stored state is padded up to, for vectorized access and false-sharing avoidance.
 

Detailed Description

Per-NUMA-domain database of serialized game states, with reward-ordered queues that feed the search one step at a time and a free-slot pool the workers draw from.

Definition in file stateDb.hpp.

Macro Definition Documentation

◆ _JAFFAR_STATE_PADDING_BYTES

#define _JAFFAR_STATE_PADDING_BYTES   16

Alignment boundary (in bytes) each stored state is padded up to, for vectorized access and false-sharing avoidance.

Definition at line 23 of file stateDb.hpp.