 |
|
Tuomas Sandholm
Used with permission from T. Sandholm
|
Like many games, poker can be formulated mathematically, but the formulations are huge. Two-player poker has a game-tree of a billion-billion (1018) nodes, notes Gilpin.
“To solve that requires massive computational resources,” he says. “Our research is on scaling up game-theory solution techniques to those large games, and new algorithmic design.”
The most computationally intensive portion of their algorithm is a matrix-vector product, where the matrix is the payoff matrix and the vector is a strategy for one of the players. This operation accounts for more than 99 percent of the computation, and is a bottleneck to applying game theory to many problems of practical importance.
To drastically increase the size of problems the algorithm can handle, Gilpin and Sandholm devised an approach that can potentially exploit massively parallel systems of non-uniform memory-access architecture, such as Pople, an SGI Altix 4700 TeraGrid resource at the Pittsburgh Supercomputing Center. By making all data addressable from a single process, shared memory simplifies a central, non-parallelizable operation performed in conjunction with the matrix-vector product. Sandholm and Gilpin have revised their code to run on Pople, and are doing experiments to learn how much parallelism can help, and possibly point to areas for further algorithmic improvement.
—Michael Schneider, Pittsburgh Supercomputing Center
|