Skip to content

jjiantong/FastBN

Repository files navigation

FastBN: Fast Parallel Bayesian Network Learning and Inference

Documentation | Parameters | Knowledge base | Python interface

FastBN is an open-source C++ library that aims to help practitioners easily and efficiently apply Bayesian Network (BN) models to solve real-world problems. FastBN exploits multi-core CPUs to achieve high efficiency. Key features of FastBN are as follows:

  • Wide coverage of different tasks and algorithms related to BNs, including structure learning (PC-stable), parameter learning (maximum likelihood estimation), exact inference (junction tree, variable elimination, brute force), and approximate inference (loopy belief propagation, probabilistic logic sampling, likelihood weighting, self-importance sampling, AIS-BN, EPIS-BN).
  • Support classification, through the building blocks of structure learning, parameter learning and inference.
  • Support Python interfaces.
  • Support BN sample generation, dataset and network format convertor, etc.

Installation

Clone this repository and build. Note the --recursive option which is needed for all the submodules.

git clone --recursive https://github.com/jjiantong/FastBN.git
cd FastBN
# under the directory of FastBN
mkdir build && cd build && cmake -DCMAKE_BUILD_TYPE=Release -DUSE_MPI=OFF .. && make

Quick Start

Run FastBN through executable.

# under the directory of FastBN/build
./BayesianNetwork

By default settings, FastBN will run the structure learning job using the PC-Stable method with one thread (the sequential version) on 5000 samples generating from the ALARM BN. Command line options can be used to specify the job, method and corresponding parameters, see Parameters.

Citation

If you find FastBN useful, please consider citing our papers.

Fast-BNS in IPDPS 2022 (pdf):

@inproceedings{jiang2022fast,
  title={Fast Parallel Bayesian Network Structure Learning},
  author={Jiang, Jiantong and Wen, Zeyi and Mian, Ajmal},
  booktitle={2022 IEEE International Parallel and Distributed Processing Symposium (IPDPS)},
  pages={617--627},
  year={2022}
}

Fast-BNS-v2 in TPDS (2024):

@article{yang2023parallel,
  title={Parallel and Distributed Bayesian Network Structure Learning},
  author={Yang, Jian and Jiang, Jiantong and Wen, Zeyi and Mian, Ajmal},
  journal={IEEE Transactions on Parallel and Distributed Systems},
  year={2024},
  publisher={IEEE}
}

Fast-BNI in PPoPP 2023 (pdf):

@inproceedings{jiang2023fast,
  title={Fast Parallel Exact Inference on Bayesian Networks},
  author={Jiang, Jiantong and Wen, Zeyi and Mansoor, Atif and Mian, Ajmal},
  booktitle={Proceedings of the 28th ACM SIGPLAN Annual Symposium on Principles and Practice of Parallel Programming},
  pages={425--426},
  year={2023}
}

Dependency

About

Fast Parallel Bayesian Network Learning and Inference [IPDPS'22, PPoPP'23, TPDS'24]

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages