]> git.sesse.net Git - stockfish/blobdiff - src/thread.h
Merge remote-tracking branch 'upstream/master' into clusterMergeMaster7
[stockfish] / src / thread.h
index 0517afc5d149d6f0318f0f44a611d35569fb67f6..efb0f8de57f33fb395252f19f13ecea53e0e6d8e 100644 (file)
@@ -27,6 +27,7 @@
 #include <thread>
 #include <vector>
 
+#include "cluster.h"
 #include "material.h"
 #include "movepick.h"
 #include "pawns.h"
@@ -63,7 +64,7 @@ public:
   size_t pvIdx, pvLast, shuffleExts;
   int selDepth, nmpMinPly;
   Color nmpColor;
-  std::atomic<uint64_t> nodes, tbHits, bestMoveChanges;
+  std::atomic<uint64_t> nodes, tbHits, TTsaves, bestMoveChanges;
 
   Position rootPos;
   Search::RootMoves rootMoves;
@@ -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
 };
 
 
@@ -106,6 +114,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); }
 
   std::atomic_bool stop;