mirror of
https://github.com/sockspls/badfish
synced 2025-04-30 00:33:09 +00:00
Use only 'level' as late join metric
It seems other metric are useless, this allow us to simplify the code and to prune useless stuff. STC 20K games 4 threads ELO: -0.76 +-2.8 (95%) LOS: 29.9% Total: 20000 W: 3477 L: 3521 D: 13002 STC 10K games 16 threads ELO: 1.36 +-3.9 (95%) LOS: 75.0% Total: 10000 W: 1690 L: 1651 D: 6659 bench: 8253813
This commit is contained in:
parent
5fd5453e59
commit
e2226cbb20
1 changed files with 5 additions and 7 deletions
|
@ -1590,7 +1590,7 @@ void Thread::idle_loop() {
|
||||||
// Try to late join to another split point if none of its slaves has
|
// Try to late join to another split point if none of its slaves has
|
||||||
// already finished.
|
// already finished.
|
||||||
SplitPoint* bestSp = NULL;
|
SplitPoint* bestSp = NULL;
|
||||||
int bestScore = INT_MAX;
|
int minLevel = INT_MAX;
|
||||||
|
|
||||||
for (size_t i = 0; i < Threads.size(); ++i)
|
for (size_t i = 0; i < Threads.size(); ++i)
|
||||||
{
|
{
|
||||||
|
@ -1608,16 +1608,14 @@ void Thread::idle_loop() {
|
||||||
|
|
||||||
// Prefer to join to SP with few parents to reduce the probability
|
// Prefer to join to SP with few parents to reduce the probability
|
||||||
// that a cut-off occurs above us, and hence we waste our work.
|
// that a cut-off occurs above us, and hence we waste our work.
|
||||||
int level = -1;
|
int level = 0;
|
||||||
for (SplitPoint* spp = Threads[i]->activeSplitPoint; spp; spp = spp->parentSplitPoint)
|
for (SplitPoint* p = Threads[i]->activeSplitPoint; p; p = p->parentSplitPoint)
|
||||||
level++;
|
level++;
|
||||||
|
|
||||||
int score = level * 256 * 256 + (int)sp->slavesMask.count() * 256 - sp->depth * 1;
|
if (level < minLevel)
|
||||||
|
|
||||||
if (score < bestScore)
|
|
||||||
{
|
{
|
||||||
bestSp = sp;
|
bestSp = sp;
|
||||||
bestScore = score;
|
minLevel = level;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue