Repository navigation
docs: spec 010, algorithm set and canonical I/O - #14
Merged
Merged
Conversation
Pick the first classic algorithms (n-body, fannkuch-redux, spectral-norm, binary-trees and mandelbrot from the Benchmarks Game, plus merge-sort, binary-search and sha-256 over dataset-names) with Hello World as the startup baseline. For each one, define the canonical input by size n, the expected output with SHA-256, the sizes, and the untimed correctness rule. Inputs reference the dataset-tool input contract and the mapping references the benchmark-tool catalog contract without redefining either. Refs #11 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Refs #11
Spec 010 (
docs/specs/010-algorithm-set/). Docs only, no code.Summary
n-body,fannkuch-redux,spectral-norm,binary-treesandmandelbrotfrom the Benchmarks Game, plusmerge-sort,binary-searchandsha-256over dataset-names.hello-worldstays as the startup-cost baseline. The spec explains why each one is in, and why fasta, k-nucleotide, reverse-complement, regex-redux and pidigits are left out for now (they need regex, bignum or GB-scale I/O).n. The numeric benchmarks read no files. The name-based ones read deterministic samples from a pinned dataset-names release through the dataset-tool input contract (dataset-tool#1). The spec lists the catalog's needs for that contract and does not redefine its format.merge-sort,binary-searchandsha-256must be written by hand, without stdlib sort, search or hash functions.checksize plus measurement sizes. The largest numeric sizes match the Benchmarks Game.checksize for the five numeric benchmarks, computed with a reference implementation. n-body, fannkuch-redux, spectral-norm and binary-trees match the well-known Benchmarks Game outputs. The mandelbrot n=200 check against the published file is still an open task intasks.md.checksize, plus an untimed run at each measured size, must match the expected checksum. A failure is recorded and never becomes a number. The mechanism belongs to spec 012.algorithmtest type,n, sizes, input references, checksums) and what stays with the contract (layout, metadata, Dockerfile, runner, markers).Out of scope: layout migration (011), the correctness harness (012), measurement (013) and the implementations (014).
Note: this PR and #13 both append a row to
docs/specs/ROADMAP.md. Whichever merges second needs a trivial rebase.🤖 Generated with Claude Code