Skip to content

Efficient Random Sampling: Parallel, Vectorized, Cache-Efficient, and Online

License

Notifications You must be signed in to change notification settings

lorenzhs/sampling

Folders and files

NameName
Last commit message
Last commit date

Latest commit

e5f7d4a · Mar 8, 2024

History

55 Commits
Dec 22, 2017
Dec 22, 2017
May 4, 2020
Dec 11, 2023
Dec 22, 2017
Dec 8, 2017
Dec 22, 2017
May 4, 2020
May 4, 2020
Sep 16, 2019
Nov 22, 2019
Sep 16, 2019

Repository files navigation

Efficient Random Sampling  Travis-CI Status

Parallel, Vectorized, Cache-Efficient, and Online

This is the code to accompany our eponymous paper: Sanders, P., Lamm, S., Hübschle-Schneider, L., Schrade, E. and Dachsbacher, C., 2018. Efficient Parallel Random Sampling—Vectorized, Cache-Efficient, and Online. ACM Transactions on Mathematical Software (TOMS), 44.3 (2018): 29.

You can find the freely accessible author's version in the arXiv.

If you use this library in the context of an academic publication, we ask that you cite our paper:

@article{sanders2018sampling,
  title = {Efficient Parallel Random Sampling---Vectorized, Cache-Efficient, and Online},
  author = {Sanders, Peter and Lamm, Sebastian and H{\"u}bschle-Schneider, Lorenz
            and Schrade, Emanuel and Dachsbacher, Carsten},
  journal = {ACM Trans. Math. Softw.},
  year = {2018},
  issn = {0098-3500},
  volume = {44},
  number = {3},
  articleno = {29},
  pages = {29:1--29:14},
  issue_date = {April 2018},
  publisher = {ACM},
  doi = {10.1145/3157734}
}

Building

Build with cmake (version 2.8.12 or later is required). Remember to fetch the submodules before compiling: git submodule update --init. A compiler compatible with C++11 is required.

Optional Dependencies: An MPI library for Algorithm P's test runner (Algorithm P itself is implemented independently of MPI), Intel Math Kernel Library (MKL) for faster random variate generation

Tests

To run the tests, set the cmake variable SAMPLING_BUILD_TESTS to ON. Make sure that the extlib/googletest submodule is present. Build, then execute the tests with ctest.

We plan to make the test suite more comprehensive in the future.

License: 2-clause BSD