]> git.sesse.net Git - stockfish/blobdiff - src/thread.h
Merge branch 'master' into clusterMergeMaster11
[stockfish] / src / thread.h
index 34b99015bacec71f2cd6e188d84b658d07c5a3ec..62b51a1bca7104d1849482dd10f730819adfc77c 100644 (file)
@@ -25,6 +25,7 @@
 #include <thread>
 #include <vector>
 
+#include "cluster.h"
 #include "material.h"
 #include "movepick.h"
 #include "pawns.h"
@@ -61,7 +62,7 @@ public:
   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;
@@ -73,6 +74,13 @@ public:
   CapturePieceToHistory captureHistory;
   ContinuationHistory continuationHistory[2][2];
   Score contempt;
+
+#ifdef USE_MPI
+  struct {
+      std::mutex mutex;
+      Cluster::TTCache<Cluster::TTCacheSize> buffer = {};
+  } ttCache;
+#endif
 };
 
 
@@ -107,6 +115,7 @@ struct ThreadPool : public std::vector<Thread*> {
   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;