Skip to content

DRAFT feat(template): verified Piccolissimo solve template (beta target) + integration contract - #24

Closed
Rchari1 wants to merge 1 commit into
mainfrom
rchari/piccolissimo-template
Closed

DRAFT feat(template): verified Piccolissimo solve template (beta target) + integration contract#24
Rchari1 wants to merge 1 commit into
mainfrom
rchari/piccolissimo-template

Conversation

@Rchari1

@Rchari1 Rchari1 commented Jun 25, 2026

Copy link
Copy Markdown
Member

Stacked on #23 (base rchari/perf-smooth-solve). Do not merge.

Moves amicode's solve stack toward Piccolissimo (Harmoniqs' commercial stack — bundles Piccolo + adds the exact HermitianExponentialIntegrator) for the beta. Lands the verified template as a parallel artifact; the live raw-Piccolo path (solve_template.jl + AGENTS.md) stays the default until the Piccolissimo binary is consumable.

Verified

solve_template_piccolissimo.jl — transmon X gate via Piccolissimo's HermitianExponentialIntegrator, run end-to-end through amico-run against a local Piccolissimo checkout (Piccolo 1.10 + Piccolissimo + CairoMakie, julia 1.12.3):

  • F = 0.99995, 60 iters, ~88 s cold
  • full run-dir contract (manifest → 10 plot_pulse frames → FINISHEDresult.toml)

What it took (vs raw Piccolo)

  • Piccolissimo does not reexport Piccolo → load both.
  • PiccoloOptions(timesteps_all_equal=true) is required — free Δt stalls at F≈0.976; pinned → 0.99995.
  • Piccolissimo pins Piccolo 1.10 (template was 1.19) — all needed symbols exist in 1.10.

Integration contract (for Jack's in-flight binary) — see PICCOLISSIMO_INTEGRATION.md

  • The artifact is a pkgimage, loaded via the Julia depot — not --sysimage; amico-run wiring differs.
  • Only x86_64-linux-gnu is published; macOS labs need an aarch64-apple-darwin asset.
  • Pinned to julia 1.12.6 — amicode must match.
  • CairoMakie isn't in Piccolissimo's depsplot_pulse stays ~35 s cold unless baked into the amicode image.
  • PICCOLISSIMO_LICENSE provisioning once the (currently-disabled) license gate re-enables.
  • Source install isn't distributable — Altissimo is an unregistered local-path dep, so the binary is the only delivery path.

Not in this PR (deliberately)

No change to AGENTS.md, the bundled julia project, or amico-run's load path — those flip when the binary lands (checklist in the doc), so the working demo stays intact.

🤖 Generated with Claude Code

@Rchari1

Rchari1 commented Jun 25, 2026

Copy link
Copy Markdown
Member Author

@jack-champagne

@jack-champagne

Copy link
Copy Markdown
Member

Heads up: a macOS Piccolissimo binary is now published on the Piccolissimo binary artifacts (see recent builds), built against julia 1.12.6. That closes the macOS gap your PICCOLISSIMO_INTEGRATION.md flagged — pull the recent build and you can validate the darwin path directly instead of being x86_64-linux only. Match julia 1.12.6 exactly (pkgimage, not sysimage).

@jack-champagne jack-champagne changed the title feat(template): verified Piccolissimo solve template (beta target) + integration contract DRAFT feat(template): verified Piccolissimo solve template (beta target) + integration contract Jul 4, 2026
@jack-champagne
jack-champagne changed the base branch from rchari/perf-smooth-solve to main July 28, 2026 14:13
@jack-champagne

Copy link
Copy Markdown
Member

Retargeted from rchari/perf-smooth-solve to main.

The old base is now fully merged into main, so the PR was comparing against a dead branch. Against main the real remaining change is 2 files, +192 — that's what actually needs review here.

(Part of a sweep over the stacked b*/aaron/* chains: #119, #125 and #131 turned out to be entirely in main already and were closed; this one has real work left.)

…integration notes

Amicode beta moves the solve stack onto Piccolissimo (bundles Piccolo + adds the
exact HermitianExponentialIntegrator). This lands the verified template as a
parallel artifact — the live raw-Piccolo path (solve_template.jl + AGENTS.md)
stays the default until the Piccolissimo binary is consumable.

solve_template_piccolissimo.jl: transmon X gate via Piccolissimo's
HermitianExponentialIntegrator. Verified end-to-end through amico-run against a
local Piccolissimo checkout (Piccolo 1.10 + Piccolissimo + CairoMakie):
F = 0.99995, 60 iters, full run-dir contract + plot_pulse frames.

Key findings (vs raw Piccolo):
- Piccolissimo does NOT reexport Piccolo → load both.
- timesteps_all_equal is required (free Δt stalls at F≈0.976).
- Piccolo 1.10 (Piccolissimo's pin) vs 1.19 — all needed symbols exist.

PICCOLISSIMO_INTEGRATION.md records the binary integration contract for the
in-flight Piccolissimo build: it's a pkgimage (not --sysimage); needs a macOS
arm64 artifact + matching Julia; CairoMakie isn't in the image (plot stays cold
unless baked in); and PICCOLISSIMO_LICENSE provisioning once the gate re-enables.
Source install isn't distributable — Altissimo is an unregistered local-path dep,
so the binary is the only delivery path.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@jack-champagne
jack-champagne force-pushed the rchari/piccolissimo-template branch from 4b45474 to 4c67fc2 Compare July 29, 2026 04:08
@Rchari1

Rchari1 commented Jul 29, 2026

Copy link
Copy Markdown
Member Author

Closing — superseded, and the parts that aren't superseded have gone stale.

The template is superseded by #219, which taught the live template (scores/pulse-designer/templates/solve.jl) to run Altissimo via a SOLVER = :altissimo flag, with per-iteration frames, AMICODE_ITER lines, a run.log the cloud poller can parse, and cooperative STOP on the Altissimo hook.

Worth recording why this one couldn't have shipped that: it lives at packages/extension/templates/, which no code references — the loader reads the scores/pulse-designer/templates/ path. It also solves via HermitianExponentialIntegrator (a Piccolissimo integrator) rather than AltissimoOptions (the solver backend), so it's a different axis from the HP tier, and it carries almost no telemetry.

PICCOLISSIMO_INTEGRATION.md's central claim is no longer true. It documents Altissimo as an unregistered local filesystem path dep (path = "/Users/raghavchari/Altissimo.jl") with the prebuilt image as the only delivery vehicle. Piccolissimo main now declares it as a private git dep tracking main:

[sources]
Altissimo = {rev = "main", url = "git@github.com:harmoniqs/Altissimo.jl.git"}

So porting the doc as-is would have preserved a constraint that has since been fixed. The real remaining constraint is narrower: an AMI freezes a resolved Altissimo commit at image-build time, and re-resolving needs credentials for the private repo — which is why a rebake, not a Pkg.update on the box, is the delivery route.

Nothing here is lost that we still need. Reopen if the integration contract wants rewriting against the current dependency shape — that'd be a fresh doc, not this diff.

@Rchari1 Rchari1 closed this Jul 29, 2026
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