Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ it releases that version ([RELEASING.md](https://github.com/fluxopt/specsolve/bl

## Upcoming version

- docs: the fresh-process table says it times a build handed to the solver, not a solve ([#2041](https://github.com/fluxopt/specsolve/pull/2041))
- docs: the published benchmarks are re-measured at the new model sizes, five times each tenfold step ([#2039](https://github.com/fluxopt/specsolve/pull/2039))
- docs: the benchmarks page opens on its charts, counts sizes as the columns and rows that reach the solver, and tables what each model declares ([#2042](https://github.com/fluxopt/specsolve/pull/2042))
- docs: the benchmark charts share one pair of axes across every model, and a box dragged on any chart zooms all of them ([#2040](https://github.com/fluxopt/specsolve/pull/2040))
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,8 @@ which states the math and checks it before any data exists.
reads it where it lies and solves the same question again, and a directory
of runs reads as one set of tables.
[Archiving a solve →](https://specsolve.readthedocs.io/en/latest/howto/archiving/)
- **Fast from the first call.** A script that solves one small model finishes
in about half a second, about half of linopy's time
- **Fast from the first call.** A script that builds one small model and hands
it to the solver finishes in about half a second, about half of linopy's time
([#2031](https://github.com/fluxopt/specsolve/pull/2031)). The solver stays
loaded: `update()` puts new numbers on it, and the next solve carries on from
where the last one ended.
Expand Down
2 changes: 1 addition & 1 deletion bench/report.py
Original file line number Diff line number Diff line change
Expand Up @@ -400,7 +400,7 @@ def order(key: tuple[str, str]) -> tuple[float, str, str]:


def fresh(rows: dict[Key, Row]) -> str:
"""What a script that solves one model pays, launch to exit, on `FRESH_SINK`, as a heat table.
"""What a script that builds one model pays, launch to exit, on `FRESH_SINK`, as a heat table.

One row per arm and one column per case, each case at the largest rung the
fresh phase measured, so a reader compares libraries down a column. Wall
Expand Down
10 changes: 5 additions & 5 deletions docs/about/benchmarks.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,11 +105,11 @@ There it is 2.7× at 1M columns, 1.75 GB against 0.65 GB, and the memory
budget stops linopy at that size
([#2039](https://github.com/fluxopt/specsolve/pull/2039)).

## A script that solves one model
## A script that builds one model

The charts leave out what a script pays to start: the interpreter, the import
and the first build. This table times a new process from launch to exit, on
HiGHS.
and the first build. This table times a new process from launch to exit. The
process builds the model, hands it to HiGHS and exits, without a solve.

<!-- bench:fresh -->

Expand All @@ -124,8 +124,8 @@ HiGHS.

<!-- bench:/fresh -->

A script that solves one small model with specsolve finishes in about half a
second, about half of linopy's time
A script that builds one small model with specsolve and hands it to the solver
finishes in about half a second, about half of linopy's time
([#2031](https://github.com/fluxopt/specsolve/pull/2031)).

## Not measured yet
Expand Down
Loading