#include <thread>
#include <vector>
+#include "cluster.h"
#include "material.h"
#include "movepick.h"
#include "pawns.h"
uint64_t ttHitAverage;
int selDepth, nmpMinPly;
Color nmpColor;
- std::atomic<uint64_t> nodes, tbHits, bestMoveChanges;
+ std::atomic<uint64_t> nodes, tbHits, TTsaves, bestMoveChanges;
Position rootPos;
StateInfo rootState;
CapturePieceToHistory captureHistory;
ContinuationHistory continuationHistory[2][2];
Score contempt;
+
+#ifdef USE_MPI
+ struct {
+ std::mutex mutex;
+ Cluster::TTCache<Cluster::TTCacheSize> buffer = {};
+ } ttCache;
+#endif
};
MainThread* main() const { return static_cast<MainThread*>(front()); }
uint64_t nodes_searched() const { return accumulate(&Thread::nodes); }
uint64_t tb_hits() const { return accumulate(&Thread::tbHits); }
+ uint64_t TT_saves() const { return accumulate(&Thread::TTsaves); }
Thread* get_best_thread() const;
void start_searching();
void wait_for_search_finished() const;