]> git.sesse.net Git - stockfish/blobdiff - src/thread.h
Merge remote-tracking branch 'upstream/master' into clusterMergeMaster7
[stockfish] / src / thread.h
index 0a77d5b8282426702103333a2c0252d88d775728..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;
@@ -71,8 +72,15 @@ public:
   CounterMoveHistory counterMoves;
   ButterflyHistory mainHistory;
   CapturePieceToHistory captureHistory;
-  ContinuationHistory continuationHistory[2];
+  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;