/ concept-collection / fastandaccurate
Sign in
concept-collection / fastandaccurate
fastandaccurate
Go to fileHistoryFork
.githubfastandaccurate: PDE solver benchmarks, laplace-dirichlet-2d with MFS and Nystrom DLP solvers
docsConnect work-precision curves by resolution, not time; strengthen the timing protocol
scriptsFetch results from the results repo's Pages site; serve local results in dev
srcConnect work-precision curves by resolution, not time; strengthen the timing protocol
testchunkie-dlp runs in real MATLAB via the CLI; solver runtime field, matlab -batch harness
.gitignorefastandaccurate: PDE solver benchmarks, laplace-dirichlet-2d with MFS and Nystrom DLP solvers
index.htmlfastandaccurate: PDE solver benchmarks, laplace-dirichlet-2d with MFS and Nystrom DLP solvers
LICENSEfastandaccurate: PDE solver benchmarks, laplace-dirichlet-2d with MFS and Nystrom DLP solvers
package-lock.jsonAdd chunkie-dlp solver: mip package support in the harness, curl-backed file I/O for node
package.jsonchunkie-dlp runs in real MATLAB via the CLI; solver runtime field, matlab -batch harness
README.mdchunkie-dlp runs in real MATLAB via the CLI; solver runtime field, matlab -batch harness
tsconfig.jsonfastandaccurate: PDE solver benchmarks, laplace-dirichlet-2d with MFS and Nystrom DLP solvers
vite.cli.config.tsfastandaccurate: PDE solver benchmarks, laplace-dirichlet-2d with MFS and Nystrom DLP solvers
vite.config.tsFetch results from the results repo's Pages site; serve local results in dev

fastandaccurate#

Speed and accuracy benchmarks for PDE solvers.

Live site: https://concept-collection.github.io/fastandaccurate/

A limitation of most solver comparisons is that they fix a discretization, which quietly decides much of the outcome. Here each problem is posed in the continuum with an exact reference solution; a solver chooses its own discretization and is scored at problem-specified evaluation points. The central object is the work-precision curve: error against compute time as the solver's resolution varies. No single ranking is presented; which curve wins can differ by accuracy regime, instance, and machine.

Solvers are MATLAB function files. Most run via numbl (MATLAB syntax in the browser and in node), both on the site and from the command line; some run only in real MATLAB through the command line, and their results are marked as not reproducible in the browser. Each problem defines its own interface and instances in a written specification; interfaces are per problem rather than shared.

Problems#

  • laplace-dirichlet-2d — interior Dirichlet Laplace problem on a star-shaped domain, data manufactured from an exact harmonic function whose singularities sit an adjustable distance outside the boundary.

Results#

Results are work-precision sweeps stored as JSON files in fastandaccurate-results and added by pull request; the site reads that repository statically. Every result records its provenance: instance spec and hash, solver id and version, protocol, runtime, numbl version, and machine. Solvers included on the site can be rerun in the browser on the problem page to compare against the committed curves.

Running benchmarks outside the browser#

The command line installs from the site itself (node 20 or newer):

npx https://concept-collection.github.io/fastandaccurate/cli.tgz run --label "my workstation"

Note that npx caches by the exact URL string; the site offers the URL with a ?v=<commit> suffix so each deployment is a fresh install.

Useful flags: --instance <id>, --solver <id>, --repeats N, --max-n N, --out dir. To benchmark your own solver, point the harness at a MATLAB function file implementing the problem's interface:

npx https://concept-collection.github.io/fastandaccurate/cli.tgz run \
  --solver-file my_method.m --solver-id my-method

The resulting JSON files can be loaded on the site (load result file) to view them against the committed curves, and submitted by PR to the results repository. To add a solver to the site itself (so visitors can rerun it in the browser), PR the solver directory and a manifest entry to this repository; see src/solvers/.

Development#

npm install
npm run dev        # local dev server
npm test           # solver convergence tests through numbl in node
npm run build      # type-check, site build, CLI tarball (dist/)
npm run check-app  # headless end-to-end check of the built site

Layout: src/problems/ holds problem specs, instances, exact solutions, and the problem-side MATLAB; src/solvers/ the solver MATLAB files and manifests; src/harness/ the shared runner, sweep, and result schema (used identically by the browser worker and the CLI); src/app/ the React site; src/cli/ the command line.

Deployed to GitHub Pages by .github/workflows/deploy.yml on push to main.

License#

Apache-2.0

moveopenescclose