Skip to main content

Quasi-Monte Carlo Software

  • Conference paper
  • First Online:
Monte Carlo and Quasi-Monte Carlo Methods (MCQMC 2020)

Abstract

Practitioners wishing to experience the efficiency gains from using low discrepancy sequences need correct, robust, well-written software. This article, based on our MCQMC 2020 tutorial, describes some of the better quasi-Monte Carlo (QMC) software available. We highlight the key software components required by QMC to approximate multivariate integrals or expectations of functions of vector random variables. We have combined these components in QMCPy, a Python open-source library, which we hope will draw the support of the QMC community. Here we introduce QMCPy.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 149.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 199.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 199.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    QMCPy is in active development. This article is based on version 1.2 on PyPI.

  2. 2.

    The operator \(\oplus \) is commonly used to denote exclusive-or, which is its meaning for digital sequences in base 2. However, we are using it here in a more general sense.

References

  1. Abadi, M., Agarwal, A., Barham, P., Brevdo, E., Chen, Z., Citro, C., Corrado, G.S., Davis, A., Dean, J., Devin, M., Ghemawat, S., Goodfellow, I., Harp, A., Irving, G., Isard, M., Jia, Y., Jozefowicz, R., Kaiser, L., Kudlur, M., Levenberg, J., Mané, D., Monga, R., Moore, S., Murray, D., Olah, C., Schuster, M., Shlens, J., Steiner, B., Sutskever, I., Talwar, K., Tucker, P., Vanhoucke, V., Vasudevan, V., Viégas, F., Vinyals, O., Warden, P., Wattenberg, M., Wicke, M., Yu, Y., Zheng, X.: TensorFlow: Large-scale machine learning on heterogeneous systems (2015). https://www.tensorflow.org/. Software available from tensorflow.org

  2. Asmussen, S., Glynn, P.: Stochastic simulation: algorithms and analysis. In: Stochastic Modelling and Applied Probability, vol. 57. Springer, New York (2007). https://doi.org/10.1007/978-0-387-69033-9

  3. Bezanson, J., Karpinski, S., Shah, V.B., Edelman, A.: Julia: A fast dynamic language for technical computing (2012). arXiv:1209.5145

  4. Burkhardt, J.: Various Software (2020). http://people.sc.fsu.edu/~jburkardt/

  5. Choi, S.C.T., Ding, Y., Hickernell, F.J., Jiang, L., Jiménez Rugama, Ll.A., Li, D., Jagadeeswaran, R., Tong, X., Zhang, K., Zhang, Y., Zhou, X.: GAIL: Guaranteed Automatic Integration Library (versions 1.0–2.3.2). MATLAB software. http://gailgithub.github.io/GAIL_Dev/ (2021). https://doi.org/10.5281/zenodo.4018189

  6. Choi, S.C.T., Hickernell, F.J., Jagadeeswaran, R., McCourt, M., Sorokin, A.: QMCPy: A quasi-Monte Carlo Python library (2020). https://doi.org/10.5281/zenodo.3964489, https://qmcsoftware.github.io/QMCSoftware/

  7. Choi, S.C.T., Hickernell, F.J., Jagadeeswaran, R., McCourt, M.J., Sorokin, A.: QMCPy Documentation (2020). https://qmcpy.readthedocs.io/en/latest/

  8. Cools, R., Kuo, F.Y., Nuyens, D.: Constructing embedded lattice rules for multivariate integration. SIAM J. Sci. Comput. 28(6), 2162–2188 (2006). https://doi.org/10.1137/06065074X

  9. Darmon, Y., Godin, M., L’Ecuyer, P., Jemel, A., Marion, P., Munger, D.: LatNet Builder (2018). https://github.com/umontreal-simul/latnetbuilder

  10. Dick, J., Kuo, F., Sloan, I.H.: High dimensional integration—the Quasi-Monte Carlo way. Acta Numer. 22, 133–288 (2013). https://doi.org/10.1017/S0962492913000044

  11. Giles, M.: Multi-level (Quasi-)Monte Carlo software (2020). https://people.maths.ox.ac.uk/gilesm/mlmc/

  12. Google Inc.: TF Quant Finance: Tensorflow Based Quant Finance Library (2021). https://github.com/google/tf-quant-finance

  13. Harris, C.R., Millman, K.J., van der Walt, S.J., Gommers, R., Virtanen, P., Cournapeau, D., Wieser, E., Taylor, J., Berg, S., Smith, N.J., Kern, R., Picus, M., Hoyer, S., van Kerkwijk, M.H., Brett, M., Haldane, A., del Río, J.F., Wiebe, M., Peterson, P., Gérard-Marchant, P., Sheppard, K., Reddy, T., Weckesser, W., Abbasi, H., Gohlke, C., Oliphant, T.E.: Array programming with NumPy. Nature 585(7825), 357–362 (2020). https://doi.org/10.1038/s41586-020-2649-2, https://doi.org/10.1038/s41586-020-2649-2

  14. Hickernell, F.J., Choi, S.C.T., Jiang, L., Jiménez Rugama, L.A.: Monte Carlo Simulation, Automatic Stopping Criteria for Wiley StatsRef: Statistics Reference Online, pp. 1–7 (2014)

    Google Scholar 

  15. Hickernell, F.J., Sorokin, A.: Quasi-Monte Carlo (QMC) software in QMCPy Google Colaboratory Notebook (2020). http://tinyurl.com/QMCPyTutorial

  16. Hickernell, F.J., Sorokin, A.: Quasi-Monte Carlo (QMC) software in QMCPy Google Colaboratory Notebook for MCQMC2020 Article (2020). https://tinyurl.com/QMCPyArticle2021

  17. Hickernell, F.J.: A generalized discrepancy and quadrature error bound. Math. Comput. 67, 299–322 (1998). https://doi.org/10.1090/S0025-5718-98-00894-1

  18. Hickernell, F.J.: Goodness-of-fit statistics, discrepancies and robust designs. Statist. Prob. Lett. 44, 73–78 (1999). https://doi.org/10.1016/S0167-7152(98)00293-4

  19. Hickernell, F.J., Jiang, L., Liu, Y., Owen, A.B.: Guaranteed conservative fixed width confidence intervals via Monte Carlo sampling. In: Dick, J., Kuo, F.Y., Peters, G.W., Sloan, I.H. (eds.) Monte Carlo and Quasi-Monte Carlo Methods 2012, Springer Proceedings in Mathematics and Statistics, vol. 65, pp. 105–128. Springer, Berlin (2013). https://doi.org/10.1007/978-3-642-41095-6

  20. Hickernell, F.J., Jiménez Rugama, Ll.A.: Reliable adaptive cubature using digital sequences. In: Cools, R., Nuyens, D. (eds.) Monte Carlo and Quasi-Monte Carlo Methods: MCQMC, Leuven, Belgium, April 2014, Springer Proceedings in Mathematics and Statistics, vol. 163, pp. 367–383. Springer, Berlin (2016). ArXiv:1410.8615 [math.NA]

  21. Hickernell, F.J., Jiménez Rugama, Ll.A., Li, D.: Adaptive quasi-Monte Carlo methods for cubature. In: Dick, J., Kuo, F.Y., Woźniakowski, H. (eds.) Contemporary Computational Mathematics—A Celebration of the 80th Birthday of Ian Sloan, pp. 597–619. Springer, Berlin (2018). https://doi.org/10.1007/978-3-319-72456-0

  22. Hickernell, F.J., Lemieux, C., Owen, A.B.: Control variates for quasi-Monte Carlo. Stat. Sci. 20, 1–31 (2005). https://doi.org/10.1214/088342304000000468

  23. Hofert, M., Lemieux, C.: qrng R package (2017). https://cran.r-project.org/web/packages/qrng/qrng.pdf

  24. Jagadeeswaran, R., Hickernell, F.J.: Fast automatic Bayesian cubature using lattice sampling. Stat. Comput. 29, 1215–1229 (2019). https://doi.org/10.1007/s11222-019-09895-9

  25. Jagadeeswaran, R., Hickernell, F.J.: Fast automatic Bayesian cubature using Sobol’ sampling (2021+). In preparation for submission for publication

    Google Scholar 

  26. Jiménez Rugama, Ll.A., Hickernell, F.J.: Adaptive multidimensional integration based on rank-1 lattices. In: Cools, R., Nuyens, D. (eds.) Monte Carlo and Quasi-Monte Carlo Methods: MCQMC, Leuven, Belgium, April 2014, Springer Proceedings in Mathematics and Statistics, vol. 163, pp. 407–422. Springer, Berlin (2016). ArXiv:1411.1966

  27. Keister, B.D.: Multidimensional quadrature algorithms. Comput. Phys. 10, 119–122 (1996). https://doi.org/10.1063/1.168565

  28. Kucherenko, S.: BRODA (2020). https://www.broda.co.uk/index.html

  29. Kumaraswamy, P.: A generalized probability density function for double-bounded random processes. J. Hydrol. 46(1), 79–88 (1980). https://doi.org/10.1016/0022-1694(80)90036-0

  30. Kuo, F.Y., Nuyens, D.: Application of quasi-Monte Carlo methods to elliptic PDEs with random diffusion coefficients—a survey of analysis and implementation. Found. Comput. Math. 16, 1631–1696 (2016). https://people.cs.kuleuven.be/~dirk.nuyens/qmc4pde/

  31. Lataniotis, C., Marelli, S., Sudret, B.: Uncertainty quantification in the cloud with UQCloud. In: 4th International Conference on Uncertainty Quantification in Computational Sciences and Engineering (UNCECOMP 2021), pp. 209–217 (2021)

    Google Scholar 

  32. L’Ecuyer, P.: SSJ: Stochastic Simulation in Java (2020). https://github.com/umontreal-simul/ssj

  33. L’Ecuyer, P., Marion, P., Godin, M., Puchhammer, F.: A tool for custom construction of QMC and RQMC point sets. In: Arnaud, E., Giles, M., Keller, A. (eds.) Monte Carlo and Quasi-Monte Carlo Methods: MCQMC, Oxford 2020 (2021+)

    Google Scholar 

  34. L’Ecuyer, P., Munger, D.: Algorithm 958: Lattice Builder: a general software tool for constructing rank-1 latice rules. ACM Trans. Math. Softw. 42, 1–30 (2016)

    Google Scholar 

  35. L’Ecuyer, P., Tuffin, B.: Approximate zero-variance simulation. In: Proceedings of the 40th Conference on Winter Simulation, WSC ’08, pp. 170–181. Winter Simulation Conference (2008)

    Google Scholar 

  36. Marelli, S., Sudret, B.: UQLab: A framework for uncertainty quantification in MATLAB. In: The 2nd International Conference on Vulnerability and Risk Analysis and Management (ICVRAM 2014), pp. 2554–2563. ASCE Library (2014). https://www.uqlab.com

  37. Matoušek, J.: On the \(L_2\)-discrepancy for anchored boxes. J. Complex. 14, 527–556 (1998)

    Google Scholar 

  38. Niederreiter, H.: Random Number Generation and Quasi-Monte Carlo Methods. CBMS-NSF Regional Conference Series in Applied Mathematics. SIAM, Philadelphia (1992)

    Google Scholar 

  39. Nuyens, D.: Magic Point Shop (2017). https://people.cs.kuleuven.be/~dirk.nuyens/qmc-generators/

  40. OpenTURNS Developers: An Open Source Initiative for the Treatment of Uncertainties, Risks ’N Statistics (2020). http://www.openturns.org

  41. Owen, A.B.: Scrambling Sobol’ and Niederreiter-Xing points. J. Complex. 14(4), 466–489 (1998)

    Google Scholar 

  42. Owen, A.B.: On dropping the first Sobol’ point. In: Keller, A. (ed.) Monte Carlo and Quasi-Monte Carlo Methods. Springer Proceedings in Mathematics & Statistics, vol. 387, pp. xx–yy. Springer, Cham (this volume). https://doi.org/10.1007/978-3-030-98319-2_4

  43. Owen, A.B.: Randomized Halton Sequences in R (2020). http://statweb.stanford.edu/~owen/code/

  44. Owen, A.B.: About the R function: rsobol (2021). https://statweb.stanford.edu/~owen/reports/seis.pdf

  45. Owen, A.B., Zhou, Y.: Safe and effective importance sampling. J. Am. Stat. Assoc. 95, 135–143 (2000)

    Google Scholar 

  46. Paszke, A., Gross, S., Massa, F., Lerer, A., Bradbury, J., Chanan, G., Killeen, T., Lin, Z., Gimelshein, N., Antiga, L., Desmaison, A., Kopf, A., Yang, E., DeVito, Z., Raison, M., Tejani, A., Chilamkurthy, S., Steiner, B., Fang, L., Bai, J., Chintala, S.: PyTorch: An imperative style, high-performance deep learning library. In: Wallach, H., Larochelle, H., Beygelzimer, A., d’Alché-Buc, F., Fox, E., Garnett, R. (eds.) Advances in Neural Information Processing Systems 32, pp. 8024–8035. Curran Associates, Inc. (2019). http://papers.neurips.cc/paper/9015-pytorch-an-imperative-style-high-performance-deep-learning-library.pdf

  47. PyTorch Developers: PyTorch (2020). https://pytorch.org

  48. Robbe, P.: Low Discrepancy Sequences in Julia (2020). https://github.com/PieterjanRobbe/QMC.jl

  49. Robbe, P.: Multilevel Monte Carlo simulations in Julia (2021). https://github.com/PieterjanRobbe/MultilevelEstimators.jl

  50. SciPy Developers: SciPy Ecosystem (2018). www.scipy.org

  51. The MathWorks Inc: MATLAB R2021a. Natick, MA (2020)

    Google Scholar 

  52. Virtanen, P., Gommers, R., Oliphant, T.E., Haberland, M., Reddy, T., Cournapeau, D., Burovski, E., Peterson, P., Weckesser, W., Bright, J., van der Walt, S.J., Brett, M., Wilson, J., Millman, K.J., Mayorov, N., Nelson, A.R.J., Jones, E., Kern, R., Larson, E., Carey, C.J., Polat, İ., Feng, Y., Moore, E.W., VanderPlas, J., Laxalde, D., Perktold, J., Cimrman, R., Henriksen, I., Quintero, E.A., Harris, C.R., Archibald, A.M., Ribeiro, A.H., Pedregosa, F., van Mulbregt, P., SciPy 1.0 Contributors: SciPy 1.0: Fundamental Algorithms for Scientific Computing in Python. Nat. Methods 17, 261–272 (2020). https://doi.org/10.1038/s41592-019-0686-2

Download references

Acknowledgements

The authors would like to thank the organizers for a wonderful MCQMC 2020. We also thank the referees for their many helpful suggestions. This work is supported in part by SigOpt and National Science Foundation grant DMS-1522687.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Fred J. Hickernell .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2022 The Author(s), under exclusive license to Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Choi, SC.T., Hickernell, F.J., Jagadeeswaran, R., McCourt, M.J., Sorokin, A.G. (2022). Quasi-Monte Carlo Software. In: Keller, A. (eds) Monte Carlo and Quasi-Monte Carlo Methods. MCQMC 2020. Springer Proceedings in Mathematics & Statistics, vol 387. Springer, Cham. https://doi.org/10.1007/978-3-030-98319-2_2

Download citation

Publish with us

Policies and ethics