Jamboree

Home * Search * Parallel Search * Jamboree

Jamboree algorithm,
a parallelized version of the Scout search algorithm. Similar to the Young Brothers Wait Concept, the idea is that all of the testing of any child that is not the first one, is done in parallel, and any tests that fail are sequentially valued. Jamboree search was introduced by Bradley Kuszmaul in his 1994 thesis Synchronized MIMD Computing  .

Jamboree was used in the massive parallel chess programs StarTech and *Socrates. It sequentialize full-window searches for values, because, while their authors are willing to take a chance that an empty window search will be squandered work, they are not willing to take the chance that a full-window search (which does not prune very much) will be squandered work.

Pseudo Code

```int jamboree(CNode n, int α, int β) {
if (n is leaf) return static_eval(n);
c[] = the childen of n;
b = -jamboree(c, -β, -α);
if (b >= β) return b;
if (b >  α) α = b;
In Parallel: for (i=1; i < |c[]|; i++) {
s = -jamboree(c[i], -α - 1, -α);
if (s >  b) b = s;
if (s >= β) abort_and_return s;
if (s >  α) {
/* Wait for completion of all previous iterations of the parallel loop */
s = -jamboree(c[i], -β, -α);
if (s >= β) abort_and_return s;
if (s >  α) α = s;
if (s >  b) b = s;
}
/* Note the completion of the ith iteration of the parallel loop */
}
return b;
}
```