From Chessprogramming wiki
Jump to: navigation, search

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 [1] [2].

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[0], -β, -α); 
   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;

See also



External Links


  1. Bradley Kuszmaul (1994). Synchronized MIMD Computing. Ph. D. Thesis, Department of Electrical Engineering and Computer Science, Massachusetts Institute of Technology, pdf
  2. MIMD From Wikipedia
  3. based on Figure 5: Algorithm Jamboree from Chris Joerg, Bradley Kuszmaul (1994). Massively Parallel Chess. Proceedings of the Third DIMACS Parallel Implementation Challenge, pdf
  4. SuperTech Paper Listing

Up one level