52

# SURE 2023 Kickoff

May 22, 2023

## Transcript

1. SUREly Speedy Simulations
Sou-Cheng Choi and Fred J. Hickernell
Illinois Institute of Technology
Dept Applied Math Ctr Interdisc Scientific Comput
SAS
Office of Research
[email protected]
Looking forward to working with you this summer
Slides at speakerdeck.com/fjhickernell/sure-kickoff-2023-may-22-talk and
www.overleaf.com/9233123434vvgphqsccgfc
Jupyter notebook with computations and figures here Visit us at qmcpy.org
SURE Kickoff, revised Monday 22nd May, 2023

2. Why Quasi-Monte Carlo Is Faster Problems Next Steps References
Uncertainty in a Cantilevered Beam1
u(x) = g(Z, x) = beam deflection
= solution of a differential equation boundary value problem
x = position
Z ∼ U[1, 1.2]3
defines uncertainty in Young’s modulus = the randomness in the problem
µ(x) = expected or mean value of the beam deflection
= E[g(Z, x)] =
[0,1]3
g(z, x) dz ≈
1
n
n
i=1
g(Zi
, x)
sample mean or
Monte Carlo estimate
µ(end) = 1037 How to choose Z1
, Z2
, . . .?
1M. Parno and L. Seelinger (2022). Uncertainty propagation of material properties of a cantilevered beam. url:

3. Why Quasi-Monte Carlo Is Faster Problems Next Steps References
Simple vs. Quasi-Monte Carlo for the Cantilevered Beam via QMCPy2
g(Z, x) = beam deflection from DE solver
Z ∼ U[1, 1.2]3
defines uncertainty x = position
µ(x) = E[g(Z, x)] ≈
1
n
n
i=1
g(Zi
, x)
Monte Carlo estimate
µ(end) = 1037
10−2 10−1 100 101 102
Tolerance, ε
sec
min
hr
Time (s)
Lattice
(ε−1)
IID
(ε−2)
10−2 10−1 100 101 102
Tolerance, ε
102
103
104
105
106
n
Lattice
(ε−1)
IID
(ε−2) 0 10 20 30
Position
0
250
500
750
1000
Mean Deﬂection
Cantilevered Beam
2S.-C. T. Choi, F. J. H., et al. (2023). QMCPy: A quasi-Monte Carlo Python Library (versions 1–1.4). doi: 10.5281/zenodo.3964489. url:
https://qmcsoftware.github.io/QMCSoftware/. 3/10

4. Why Quasi-Monte Carlo Is Faster Problems Next Steps References
Simple vs. Quasi-Monte Carlo for the Cantilevered Beam via QMCPy2
g(Z, x) = beam deflection from DE solver
µ(x) = E[g(Z, x)] ≈
1
n
n
i=1
g(Zi
, x)
Monte Carlo estimate
µ(end) = 1037
10−2 10−1 100
Tolerance, ε
sec
min
Time (s)
Lattice
(ε−1)
Lattice Parallel
(ε−1)
10−2 10−1 100
Tolerance, ε
101
102
103
104
105
106
n
Lattice
(ε−1)
Lattice Parallel
(ε−1)
0 10 20 30
Position
0
250
500
750
1000
Mean Deﬂection
Cantilevered Beam
2S.-C. T. Choi, F. J. H., et al. (2023). QMCPy: A quasi-Monte Carlo Python Library (versions 1–1.4). doi: 10.5281/zenodo.3964489. url:
https://qmcsoftware.github.io/QMCSoftware/. 3/10

5. Why Quasi-Monte Carlo Is Faster Problems Next Steps References
Simple or Independent and Identically Distributed (IID) Monte Carlo
0 1
xi,1
0
1
xi,2
n = 64
0 1
xi,1
0
1
xi,2
n = 128
0 1
xi,1
0
1
xi,2
n = 256
0 1
xi,1
0
1
xi,2
n = 512
IID Points
Gaps and clusters, uneven
4/10

6. Why Quasi-Monte Carlo Is Faster Problems Next Steps References
Low Discrepancy Points Fill Space More Evenly Than IID Points
0 1
xi,1
0
1
xi,2
n = 64
0 1
xi,1
0
1
xi,2
n = 128
0 1
xi,1
0
1
xi,2
n = 256
0 1
xi,1
0
1
xi,2
n = 512
Lattice Points
0 1
xi,1
0
1
xi,2
n = 64
0 1
xi,1
0
1
xi,2
n = 128
0 1
xi,1
0
1
xi,2
n = 256
0 1
xi,1
0
1
xi,2
n = 512
Sobol’ Points
5/10

7. Why Quasi-Monte Carlo Is Faster Problems Next Steps References
Low Discrepancy Points Look “Good” in All Coordinate Projections
0 1
xi,1
0
1
xi,2
0 1
xi,2
0
1
xi,3
0 1
xi,5
0
1
xi,11
0 1
xi,14
0
1
xi,15
Projections of Lattice Points
0 1
xi,1
0
1
xi,2
0 1
xi,2
0
1
xi,3
0 1
xi,5
0
1
xi,11
0 1
xi,14
0
1
xi,15
Projections of Sobol’ Points
6/10

8. Why Quasi-Monte Carlo Is Faster Problems Next Steps References
Low Discrepancy Points Can Be Randomized
0 1
xi,1
0
1
xi,2
0 1
xi,1
0
1
xi,2
0 1
xi,1
0
1
xi,2
0 1
xi,1
0
1
xi,2
Randomized Lattice Points
0 1
xi,1
0
1
xi,2
0 1
xi,1
0
1
xi,2
0 1
xi,1
0
1
xi,2
0 1
xi,1
0
1
xi,2
Randomized Sobol’ Points
7/10

9. Why Quasi-Monte Carlo Is Faster Problems Next Steps References
Explore quasi-Monte Carlo aka low discrepancy sampling performance using QMCPy on other
uncertainty quantification problems in the UM-Bridge suite3
Link QMCPy with popular finite element solver FEniCSx 4
Implement quasi-Monte Carlo Gaussian random fields (in Julia)
github.com/PieterjanRobbe/GaussianRandomFields.jl in QMCPy
Environment, Sustainability, and Government (ESG) investing using QMC
▶ comparing Sharpe ratio or other ratios (e.g., Traynor ratio) in Markowitz asset allocation model
▶ incorporating backtest and comparing to benchmark returns e.g., S&P500
▶ parallelization — important when choosing from a large pool of candidate assets
(Big) data compression with QMC and deep learning5
3A. Davis, M. Parno, A. Reinarz, and L. Seelinger (2022). UQ and Model Bridge (UM-Bridge). url:
4M. E. Rognes A. Logg K. B. Ølgaard and G. N. Wells (2012). “FFC: the FEniCS Form Compiler”. In: Automated Solution of Differential Equations
by the Finite Element Method. Ed. by K.-A. Mardal A. Logg and G. N. Wells. Vol. 84. Lecture Notes in Computational Science and Engineering.
Springer. Chap. 11.
5J. Dick and M. Feischl (2021). “A quasi-Monte Carlo data compression algorithm for machine learning”. In: J. Complexity 67, p. 101587. issn:
0885-064X. doi: https://doi.org/10.1016/j.jco.2021.101587. url:
https://www.sciencedirect.com/science/article/pii/S0885064X2100042X. 8/10

10. Why Quasi-Monte Carlo Is Faster Problems Next Steps References
All actions can be undone. These actions only need to be done once.
1 Go to qmcpy.org , where we introduce and explain our QMCPy library
b Select the menu item GitHub to go to the GitHub repository for QMCPy
2 The QMCPy GitHub software, documentation, and demos reside at the QMCPy GitHub repository
a Create a GitHub account if you do not have one
b Optional: you may wish to install a GitHub desktop client like this or that
c Scroll down to the README
d Click on the Contributing
3 To contribute to QMCPy you need to set up your environment. While at Contributing
a Open a terminal and set up your programming environment following the instructions.
b Install Visual Studio Code or your favorite integrated development environment (IDE)
c In your environment run pip install jupyterlab
d Move to the SURE2023 branch of QMCPY by typing git checkout SURE2023
e Type jupyter-lab to start Jupyter Lab
f Run the notebook used to make the figures for these slides
9/10

11. Why Quasi-Monte Carlo Is Faster Problems Next Steps References
References
A. Logg K. B. Ølgaard, M. E. Rognes and G. N. Wells (2012). “FFC: the FEniCS Form Compiler”. In:
Automated Solution of Differential Equations by the Finite Element Method. Ed. by
K.-A. Mardal A. Logg and G. N. Wells. Vol. 84. Lecture Notes in Computational Science and
Engineering. Springer. Chap. 11.
Choi, S.-C. T. et al. (2023). QMCPy: A quasi-Monte Carlo Python Library (versions 1–1.4). doi:
10.5281/zenodo.3964489. url: https://qmcsoftware.github.io/QMCSoftware/.
Davis, A. et al. (2022). UQ and Model Bridge (UM-Bridge). url: