/ concept-collection / fastandaccurate
Sign in
concept-collection / fastandaccurate
fastandaccurate / src / app / pages / AboutPage.tsx
93 lines · 4.4 KBCodeBlameHistory
404de06Split into home / problem / about pages; minimal landing with problems listJeremy Magland 1import { RESULTS_REPO_URL } from "../results";
3const REPO_URL = "https://github.com/concept-collection/fastandaccurate";
5export function AboutPage() {
6 const cliUrl = `https://concept-collection.github.io/fastandaccurate/cli.tgz?v=${__BUILD_ID__}`;
7 return (
8 <>
9 <p className="small">
10 <a href="#/">← problems</a>
11 </p>
12 <h1>About</h1>
13 <p>
80e4f62Trim About, result files only from the CLI, copyable per-instance run commandJeremy Magland 14 fastandaccurate benchmarks PDE solvers on speed and accuracy
15 together. Each <strong>problem</strong> is posed in the continuum,
16 with an exact or highly accurate reference solution; a solver chooses
17 its own discretization and is scored at problem-specified evaluation
18 points. A problem defines its own solver interface and a short list
19 of official <strong>instances</strong> (parameter combinations) in a
20 written specification, so every solver is compared on identical
e58e208chunkie-dlp runs in real MATLAB via the CLI; solver runtime field, matlab -batch harnessJeremy Magland 21 inputs. Solvers are MATLAB function files. Most run via{" "}
22 <a href="https://numbl.org">numbl</a>, in the browser and from the
23 command line alike; some run only in real MATLAB through the command
24 line, and their results are marked as not reproducible in the
25 browser.
28 <h2>Measurement</h2>
29 <p>
30 The central object is the <strong>work-precision curve</strong>:
31 error against compute time, traced out as the solver's resolution
32 parameter varies. Errors are measured at a fixed set of evaluation
33 points defined per instance, relative to the reference solution.
2f05269Connect work-precision curves by resolution, not time; strengthen the timing protocolJeremy Magland 34 Timing is two untimed warmup runs followed by several timed runs, of
35 which the fastest is reported: interference only ever adds time, so
36 the fastest run is the least contaminated estimate of the solver's
37 own cost. A run includes the solver's own discretization, assembly,
38 solve, and evaluation. Curves are traced in order of the solver's
39 resolution parameter, and may double back in time, since a solver's
40 cost need not increase with resolution.
43 <h2>Results and provenance</h2>
44 <p>
45 Results are JSON files in{" "}
46 <a href={RESULTS_REPO_URL}>fastandaccurate-results</a>, added by pull
80e4f62Trim About, result files only from the CLI, copyable per-instance run commandJeremy Magland 47 request; the site reads that repository statically. Every result
48 carries its provenance: the instance spec and its hash, solver id and
49 version, timing protocol, runtime, numbl version, and machine.
50 Result files are produced by the command line; solvers included on
51 the site can also be rerun in the browser, directly on the problem
52 page, to compare against the committed curves. Results from solvers
a6326c5Remove design-rationale phrasing from site copy and READMEsJeremy Magland 53 outside the repository enter the same way and are marked as not
54 reproducible in the browser.
57 <h2>Running outside the browser</h2>
58 <p>
59 The command line installs from this site itself (node 20 or newer;
60 nothing on the npm registry):
61 </p>
62 <pre>{`npx ${cliUrl} run --label "my workstation"`}</pre>
63 <p>
64 This runs the standard sweeps and writes one result JSON per instance
65 and solver. Useful flags: <code>--instance &lt;id&gt;</code>,{" "}
66 <code>--solver &lt;id&gt;</code>, <code>--repeats N</code>,{" "}
67 <code>--max-n N</code>, <code>--out dir</code>. To benchmark your own
68 solver, point the harness at a MATLAB function file implementing the
69 problem's solver interface:
70 </p>
71 <pre>{`npx ${cliUrl} run --solver-file my_method.m --solver-id my-method`}</pre>
72 <p className="small muted">
73 Note that npx caches by the exact URL string; the <code>?v=</code>{" "}
74 suffix above ties the command to the current deployment so a later
75 visit installs the current build.
76 </p>
78 <h2>Submitting</h2>
79 <p>
80 Result files can be loaded on a problem page (load result file) to
81 view them against the committed curves before submitting anything. To
82 publish results, open a pull request adding the files under{" "}
83 <code>results/</code> in the{" "}
84 <a href={RESULTS_REPO_URL}>results repository</a>. To add a solver to
85 the site itself, so visitors can rerun it in the browser, PR the
86 solver directory and a manifest entry to{" "}
87 <a href={REPO_URL}>the main repository</a>; submissions are reviewed
88 against the problem specification, including that a solver must not
89 special-case the known solution.
90 </p>
91 </>
92 );
moveopenescclose