MPI/Cluster implementation for Stockfish

Based on Peter Österlund's "Lazy Cluster" algorithm,
but with some simplifications.
To compile, point COMPCXX to the MPI C++ compiler wrapper (mpicxx).
This commit is contained in:
Omri Mor
2017-12-07 17:33:28 -06:00
committed by Stéphane Nicolet
parent 800031c94c
commit 29c166a072
9 changed files with 388 additions and 41 deletions
+9
View File
@@ -24,6 +24,11 @@
#include "misc.h"
#include "types.h"
namespace Cluster {
void init();
}
//void Cluster::init();
/// TTEntry struct is the 10 bytes transposition table entry, defined as below:
///
/// key 16 bit
@@ -36,6 +41,7 @@
struct TTEntry {
Key key() const { return (Key )(key16) << 48; }
Move move() const { return (Move )move16; }
Value value() const { return (Value)value16; }
Value eval() const { return (Value)eval16; }
@@ -45,6 +51,7 @@ struct TTEntry {
private:
friend class TranspositionTable;
friend void Cluster::init();
uint16_t key16;
uint16_t move16;
@@ -64,6 +71,8 @@ private:
class TranspositionTable {
friend void Cluster::init();
static constexpr int CacheLineSize = 64;
static constexpr int ClusterSize = 3;