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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
QMCPy is in active development. This article is based on version 1.2 on PyPI.
- 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
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
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
Bezanson, J., Karpinski, S., Shah, V.B., Edelman, A.: Julia: A fast dynamic language for technical computing (2012). arXiv:1209.5145
Burkhardt, J.: Various Software (2020). http://people.sc.fsu.edu/~jburkardt/
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
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/
Choi, S.C.T., Hickernell, F.J., Jagadeeswaran, R., McCourt, M.J., Sorokin, A.: QMCPy Documentation (2020). https://qmcpy.readthedocs.io/en/latest/
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
Darmon, Y., Godin, M., L’Ecuyer, P., Jemel, A., Marion, P., Munger, D.: LatNet Builder (2018). https://github.com/umontreal-simul/latnetbuilder
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
Giles, M.: Multi-level (Quasi-)Monte Carlo software (2020). https://people.maths.ox.ac.uk/gilesm/mlmc/
Google Inc.: TF Quant Finance: Tensorflow Based Quant Finance Library (2021). https://github.com/google/tf-quant-finance
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
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)
Hickernell, F.J., Sorokin, A.: Quasi-Monte Carlo (QMC) software in QMCPy Google Colaboratory Notebook (2020). http://tinyurl.com/QMCPyTutorial
Hickernell, F.J., Sorokin, A.: Quasi-Monte Carlo (QMC) software in QMCPy Google Colaboratory Notebook for MCQMC2020 Article (2020). https://tinyurl.com/QMCPyArticle2021
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
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
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
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]
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
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
Hofert, M., Lemieux, C.: qrng R package (2017). https://cran.r-project.org/web/packages/qrng/qrng.pdf
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
Jagadeeswaran, R., Hickernell, F.J.: Fast automatic Bayesian cubature using Sobol’ sampling (2021+). In preparation for submission for publication
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
Keister, B.D.: Multidimensional quadrature algorithms. Comput. Phys. 10, 119–122 (1996). https://doi.org/10.1063/1.168565
Kucherenko, S.: BRODA (2020). https://www.broda.co.uk/index.html
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
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/
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)
L’Ecuyer, P.: SSJ: Stochastic Simulation in Java (2020). https://github.com/umontreal-simul/ssj
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+)
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)
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)
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
Matoušek, J.: On the \(L_2\)-discrepancy for anchored boxes. J. Complex. 14, 527–556 (1998)
Niederreiter, H.: Random Number Generation and Quasi-Monte Carlo Methods. CBMS-NSF Regional Conference Series in Applied Mathematics. SIAM, Philadelphia (1992)
Nuyens, D.: Magic Point Shop (2017). https://people.cs.kuleuven.be/~dirk.nuyens/qmc-generators/
OpenTURNS Developers: An Open Source Initiative for the Treatment of Uncertainties, Risks ’N Statistics (2020). http://www.openturns.org
Owen, A.B.: Scrambling Sobol’ and Niederreiter-Xing points. J. Complex. 14(4), 466–489 (1998)
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
Owen, A.B.: Randomized Halton Sequences in R (2020). http://statweb.stanford.edu/~owen/code/
Owen, A.B.: About the R function: rsobol (2021). https://statweb.stanford.edu/~owen/reports/seis.pdf
Owen, A.B., Zhou, Y.: Safe and effective importance sampling. J. Am. Stat. Assoc. 95, 135–143 (2000)
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
PyTorch Developers: PyTorch (2020). https://pytorch.org
Robbe, P.: Low Discrepancy Sequences in Julia (2020). https://github.com/PieterjanRobbe/QMC.jl
Robbe, P.: Multilevel Monte Carlo simulations in Julia (2021). https://github.com/PieterjanRobbe/MultilevelEstimators.jl
SciPy Developers: SciPy Ecosystem (2018). www.scipy.org
The MathWorks Inc: MATLAB R2021a. Natick, MA (2020)
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
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
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2022 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this paper
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
DOI: https://doi.org/10.1007/978-3-030-98319-2_2
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-98318-5
Online ISBN: 978-3-030-98319-2
eBook Packages: Mathematics and StatisticsMathematics and Statistics (R0)