Abstract
We propose a parallel evidence propagation method on general-purpose multicore processors. Evidence propagation is a major step in exact inference, a key problem in exploring probabilistic graphical models. We explore the parallelism in evidence propagation at various levels. First, given an arbitrary junction tree, we construct a directed acyclic graph (DAG) with weighted nodes, each denoting a computation task for evidence propagation. Since the execution time of the tasks varies significantly, we develop a workload-aware scheduler to allocate the tasks to the cores of the processors. The scheduler monitors the workload of each core and dynamically allocates tasks to support load balance across the cores. In addition, we integrate a module in the scheduler to partition the tasks converted from cliques with large potential tables so as to achieve improved load balance. We implemented the proposed method using Pthreads on both AMD and Intel quadcore processors. For a representative set of junction trees, our method achieved almost linear speedup. The execution time of our method was around twice as fast as an OpenMP-based implementation on both the platforms.
Similar content being viewed by others
References
Lauritzen SL, Spiegelhalter DJ (1988) Local computation with probabilities and graphical structures and their application to expert systems. J R Stat Soc B 50:157–224
Heckerman D (1997) Bayesian networks for data mining. In: Data mining and knowledge discovery
Russell SJ, Norvig P (2002) Artificial intelligence: a modern approach, 2nd edn. Prentice Hall, New York
Segal E, Taskar B, Gasch A, Friedman N, Koller D (2001) Rich probabilistic models for gene expression. In: 9th International conference on intelligent systems for molecular biology, pp 243–252
Pennock D (1998) Logarithmic time parallel Bayesian inference. In: Proceedings of the 14th annual conference on uncertainty in artificial intelligence, pp 431–438
Kozlov AV, Singh JP (1994) A parallel Lauritzen–Spiegelhalter algorithm for probabilistic inference. In: Supercomputing, pp 320–329
Xia Y, Prasanna VK (2007) Node level primitives for parallel exact inference. In: Proceedings of the 19th international symposium on computer architecture and high performance computing, pp 221–228
Xia Y, Prasanna VK (2008) Parallel exact inference on the Cell broadband engine processor. In: Proceedings of the international conference for high performance computing, networking, storage and analysis (SC), pp 1–12
Blumofe RD, Joerg CF, Kuszmaul BC, Leiserson CE, Randall KH, Zhou Y (1996) Cilk: An efficient multithreaded runtime system. Technical report, Cambridge
Intel Threading Building Blocks (2010) http://www.threadingbuldingblocks.org/
OpenMP Application Programming Interface (2010) http://www.openmp.org/
Murphy K (2010) http://www.cs.ubc.ca/~murphyk/software/bnt/bnt.html
Intel Open Source Probabilistic Networks Library (2010) http://www.intel.com/technology/computing/pnl/
Middleton B, Shwe MA, Heckerman DE, Henrion M, Horvitz EJ, Lehmann HP, Cooper GE (1991) Probabilistic diagnosis using a reformulation of the INTERNIST-1/QMR knowledge base. Medicine 30:241–255
Jaakkola TS, Jordan MI (1999) Variational probabilistic inference and the QMR-DT network. J Artif Intell Res 10(1):291–322
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Xia, Y., Prasanna, V.K. Parallel evidence propagation on multicore processors. J Supercomput 57, 189–202 (2011). https://doi.org/10.1007/s11227-010-0415-1
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11227-010-0415-1