Skip to content

Prototype approximate parallel FE diagnostics#51

Open
apoorvalal wants to merge 3 commits into
py-econometrics:mainfrom
apoorvalal:approximate-parallel-solve
Open

Prototype approximate parallel FE diagnostics#51
apoorvalal wants to merge 3 commits into
py-econometrics:mainfrom
apoorvalal:approximate-parallel-solve

Conversation

@apoorvalal

Copy link
Copy Markdown
Member

Summary

  • add spectral graph diagnostics to the Correia CSV approximate-parallel benchmark
  • commit full benchmark CSV/Markdown outputs with lambda2, Fiedler conductance, one-shot residuals, and solver recommendations
  • add the approximate FE residualization memo under docs/approx-fe with rendered HTML

Verification

  • uv run python -m py_compile benchmarks/approx_parallel_csv.py
  • uv run python benchmarks/approx_parallel_csv.py --output benchmarks/results/approx_parallel_correia.csv --markdown-output benchmarks/results/approx_parallel_correia.md
  • quarto render docs/approx-fe/paper.qmd

@s3alfisc

Copy link
Copy Markdown
Member

Hi @schroedk - my very brief summary of @apoorvalal's note:

  • There are three core ideas: (i) component-wise parallel solves when the FE graph truly decomposes, (ii) a one-shot Schwarz / “approximate within” solve, and (iii) graph diagnostics for solver routing.
  • The one-shot approximation is basically: build the same Schwarz preconditioner, apply it once, stop, and report the remaining FE normal-equation residual as a diagnostic. For ordinary linear regressions this may not buy much if preconditioner setup dominates and Krylov already converges in ~20 iterations, though I am not sure.
  • It could be more useful for GLM/IWLS settings: early IWLS iterations could use loose/one-shot residualization or a stale preconditioner, then tighten later, similar in spirit to ppmlhdfe/PyFixest tolerance schedules.
  • The diagnostics are probably the most useful part for us. Apoorva proposes components, component shares, the second eigenvalue (lambda2) of the normalized Laplacian, and possibly Fiedler/conductance cuts to detect weak graph connectivity. Here the core question is how efficient all these measures can be computed?
  • He then suggests a router that chooses among MAP, and Schwarz-preconditioned Krylov. This would of course be very cool to have, optimally I believe that we'd find heuristics to choose between MAP, Schwarz, and Diagonal preconditioning.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants