Scale and limits
This page tells you how many parameters each method can take.
Every method has a different limit, and the limits are far apart. Two methods stop being usable at about 100 parameters. Three run at 5000 parameters in under a second. Read the table before you plan a high-dimensional study.
What each method supports
Measured on one machine. See How these numbers were measured for the setup, and read the ceiling as an order of magnitude, not an exact number.
| Method | Design cost in model runs | Works to | What sets the limit |
|---|---|---|---|
| Morris | 5000+ | Nothing yet. Analysis time is flat in | |
| DGSM | 5000+ | Nothing yet. Cheapest method at high | |
| Sobol' | 5000+ | Memory for the design array. See The design array is the real limit. | |
| Borgonovo delta | given data | 5000 | Analysis time. About 25 s at |
| Optimal transport | given data | 5000 | Analysis time. About 39 s at |
| PAWN | given data | 5000 | Analysis time. About 149 s at |
| Kucherenko | 1000 | Design memory, and sampling time above | |
| PCE | given data | 1000 | You need |
| Shapley effects | given data | 1000 | Same as PCE, which is its default backend. |
| RS-HDMR | given data | 500 | maxorder=2 builds |
| eFAST | 100 | The design itself. See eFAST. | |
| VKOGA | given data | 100 | Greedy centre selection. |
| HSIC | given data | 10 to 30 | n_perms. Set n_perms lower to go further. |
Three of these limits move if you change a setting:
- HSIC costs
n_perms. The defaultn_perms=200is what sets the low ceiling. Lower it, or lower, and HSIC goes further. - RS-HDMR costs
at the default maxorder=2. Setmaxorder=1and the cost becomes linear in, but you lose every interaction term. - PCE reduces its own order to fit your sample budget and warns when it does. Above
with it drops to order 1, which is a linear model. It then cannot see interactions at all. Give it more rows, or read the warning and accept main effects only.
Pick a method for a high-dimensional problem
- If your model is written in JAX and you can differentiate it, use DGSM. It ran 5000 parameters in 0.91 s and 501 MB from 1024 sample points. Nothing else comes close at high
. - If you cannot differentiate the model, screen with Morris. It costs
runs and its analysis time does not grow with . - Fix the parameters that screening says do nothing. Then spend your budget on Sobol' for the survivors.
Do not start with Sobol' at high
The design array is the real limit
The Saltelli design has
At
| Size | |
|---|---|
| The design array you must hold and evaluate | 102 GB |
The outputs Y | 20 MB |
Peak memory sobol.analyze adds | about 0 |
sobol.analyze is cheap at any
This also means jaxgsa.config.set_memory_budget does not help here. That budget sizes transient arrays inside an analysis. The design array is created by sample() before any analysis starts, and you hold it, not jaxgsa.
If the design does not fit, lower the base count
eFAST grows with the square of D
eFAST needs n_per_curve >= 4*M^2*(D-1) + 1 points, and it uses one curve per parameter. The number of model runs therefore grows with
| Model runs at | Design array | |
|---|---|---|
| 10 | 5770 | 0.2 MB |
| 100 | 633,700 | 236 MB |
| 500 | 15,968,500 | 29.7 GB |
| 1000 | 63,937,000 | 238 GB |
How these numbers were measured
One sweep over
- Apple M1 Pro, 16 GB, CPU only, float32.
- The model was
. Parameters 0 and 1 dominate at every . Every method that ran ranked both of them on top. - One scalar output. A model with many outputs or time steps costs more.
- Given-data methods got
rows. - A method "works to" a value of
if it finished in under 300 s inside a 600 MB design budget.
Your limits will differ. Treat the table as a guide to which methods to try first, not as a specification.