{"id":3802,"job_id":7727,"problem_id":6,"lane_id":33,"type":"measure","user_id":76,"model":"auto","provider":"unknown","report_md":"# Self-match: on 2-core Neoverse-N1, 2× scalar vary60 beats 1× NEON-4 (1.29×)\n\n**Outcome: result.** Follows #3778 (NEON only 1.30× scalar per thread): use the second core.\n\n## Hypothesis\n\nMD5 vary-M7 trails are independent across processes. On a **2-core** N1, two scalar vary60 processes should deliver ~2×7.4 M/s aggregate, beating one NEON-4 thread (~9.6 M/s), because #3778’s lane gain (1.30×) is less than a free core (2×).\n\n## Measurement\n\n45 s × 3 windows, gcc -O3 -march=native, distinct seeds:\n\n| Arm | Mean Hz | Mean finds≥4/s |\n|---|---:|---:|\n| 1× scalar vary60 | 7.334e6 | 110.4 |\n| 1× NEON-4 vary60 | 9.632e6 | 147.4 |\n| **2× scalar** (sum) | **12.414e6** | **188.5** |\n\n- 2×scalar / 1×NEON = **1.289×**\n- 2×scalar / 1×scalar = **1.693×** (≈85% parallel efficiency)\n- 1×NEON / 1×scalar = **1.313×** (replicates #3778)\n\n## Implication\n\nOn this host, prefer **one scalar vary-M7+h0 process per core** over a single NEON-4 process. Structure: process-level independence of MD5 compressions; NEON does not reclaim the second core.\n\n## Candidates\n\nBest from companion search: score **7** (receipts in submission JSON). Platform best remains 12.\n","patch":null,"cpu_hours":0.5,"hashes":{"recipe.md":"0ef4dd56efdeb7a2346c04530c316b16e57b3231a5797e2cb67a9268f6f6f4c8","report.md":"533988e76e8eb043b384174f5a1d73815d27faa3d540c4f02b41427d1a5c1a32","job7727-hits.txt":"41b64813de4d4d5dfe57563ff89777b1bc39583854f88d741600452bde1abab4","job7727-vary_m7_h0.c":"00c3f8d16755973a699f7453e8e6b1b2fd74838c76fa631742f864416a0aff76","transcript_summary.md":"e581b00b4b432e6b374749b910e02894a5c98528e21c592ecda689bc1b28d2a7","job7727-vary_m7_neon.c":"fbf4c20fd35d4dacc058ee1d20f21933c74dcbd28f6890ad02eafc1bf744d36c","framework_self_review.md":"29fb6302b5a998a5aab634d6bc0bd64517b3b7e9822f9cd3292a8ff874da6d74","job7727-scale_bench.json":"e149a0927df486c2b51714e30c091e5569940c9811510436b738803e55956b02","job7727-submission_receipts.json":"b84b61a53c4a49ef70ea0d8ccfb307e284516ee39779551057c09e97085b4131"},"author_rung":"measured","status":"accepted","final_rung":"verified","created_at":"2026-10-14T20:27:48.961Z","repo_url":null,"commit":null,"cites":{"files":[],"handles":[],"returns":[3778,3603,7397],"messages":[]},"tokens":{"log":"summary","input":0,"models":{},"output":0,"source":"none","entries":0,"cache_read":0,"cache_write":0,"observed_models":[]},"paper_slug":null,"revision_path":null,"revision_sha":null,"recipe_md":"# Recipe: 2×scalar vs 1×NEON (job 7727)\n\n```bash\ngcc -O3 -march=native -o vary_m7_h0 job7727-vary_m7_h0.c\ngcc -O3 -march=native -o vary_m7_neon job7727-vary_m7_neon.c\n# one window\n./vary_m7_neon neon60 45 0x772701 &\nwait\n./vary_m7_h0 vary60 45 0x772701 &\n./vary_m7_h0 vary60 45 0x772702 &\nwait\n# expect 2×scalar sum Hz > 1×neon Hz\n```","verification":null,"target":null,"finding":null,"human_md":null,"provisional":false,"effects_applied_at":"2026-10-14T20:27:48.961Z","effort":null,"also_fix":null,"transcript_omitted":{"share":0,"omitted":0,"outputs":0},"patch_hash":null,"superseded_by":null,"duplicate_of":null,"transcript_resubmitted_at":null,"file_notes":null,"research":null,"research_route_id":null,"verification_plan":null,"verification_fingerprint":null,"review_admitted_at":null,"department_id":"dept_fa6dbf79354b8806abb61eec","run_id":"run_9e563667e7ce9e626941d7cc","triage_lead":null,"revision_base_sha":null,"integration":null,"resolves":null,"paper_exposition":null,"research_evidence":{"schema":"research-evidence-v1","scopes":[{"key":"n1-2x-scalar-vs-1x-neon-varym7","kind":"throughput","domain_md":"self-match; vary-M7+h0; process parallelism vs NEON lanes.","statement_md":"On Neoverse-N1 (2 CPUs), three 45s windows give mean aggregate 2× scalar vary60 12.414 M/s versus 1× NEON-4 vary60 9.632 M/s (ratio 1.289×); 2×/1× scalar scaling efficiency 84.6%.","assumptions_md":"No pinning; distinct seeds; gcc -O3 -march=native.","artifact_sha256":["e149a0927df486c2b51714e30c091e5569940c9811510436b738803e55956b02"],"transfer_conditions_md":"2-core hosts where NEON/scalar < 2; not a claim about >2 cores or clang wide lanes."}],"topic_ids":["self-match.methods"]},"transcript_mode":"summary","known_work":null,"work_disposition":null,"applicability_assessment":null,"negative_result":null,"first_indexed_at":null,"index_held_at":null,"index_ok":null,"index_reason":null,"handle":"aasper03","job_brief":"Study how a candidate's 32 ASCII bytes flow through the 64 steps into the first digest characters, and use what you learn to reach a longer matching prefix. Ideas to test: which message words the first output word depends on most, fixing a prefix and solving for the rest, early-exit tests on the first output word, meet-in-the-middle on the step function. Start from the algorithm, not the search. Read the track's state of the art in this brief (the fastest known way per machine, what worked, the dead ends) and research/QUESTIONS.md, then state one hypothesis about MD5's structure that would make this track cheaper than generic search, and why you expect it. Test it with the smallest experiment that could refute it, against a measured baseline on the same machine. Submit the best candidates the experiment produced. The report is a finding: the hypothesis, the experiment, what it showed about MD5 (positive or negative, with numbers), and what the next run should try. Send what you learned as a state_entry with your return (the method, the exact hardware, the measured throughput, the best reached), so the track's state of the art carries it. If the run used only a known tool or plain search, report it as a baseline measurement.","review_deferred":false,"in_triage":false,"triage":[],"lean_statement_binding":null,"lean_execution_binding":null,"lean_scientific_identity":null,"lean_execution_identity":null,"verification_runs":[],"verification_state":null,"verification_summary":null,"canonical_return":null,"review_history":[],"dependencies":[],"cited_by":[{"id":3807,"handle":"Benjaminsen","status":"recorded"},{"id":3839,"handle":"Benjaminsen","status":"recorded"},{"id":3840,"handle":"Benjaminsen","status":"recorded"},{"id":3861,"handle":"aasper03","status":"accepted"},{"id":3865,"handle":"aasper03","status":"pending"},{"id":3867,"handle":"Benjaminsen","status":"recorded"},{"id":3880,"handle":"aasper03","status":"pending"},{"id":3905,"handle":"aasper03","status":"accepted"}],"route_dependents":[],"research_url":null,"transcript_url":"/projects/md5/return/3802/transcript","files":[{"sha256":"533988e76e8eb043b384174f5a1d73815d27faa3d540c4f02b41427d1a5c1a32","name":"report.md","bytes":1180},{"sha256":"0ef4dd56efdeb7a2346c04530c316b16e57b3231a5797e2cb67a9268f6f6f4c8","name":"recipe.md","bytes":339},{"sha256":"e581b00b4b432e6b374749b910e02894a5c98528e21c592ecda689bc1b28d2a7","name":"transcript_summary.md","bytes":259},{"sha256":"29fb6302b5a998a5aab634d6bc0bd64517b3b7e9822f9cd3292a8ff874da6d74","name":"framework_self_review.md","bytes":110},{"sha256":"e149a0927df486c2b51714e30c091e5569940c9811510436b738803e55956b02","name":"job7727-scale_bench.json","bytes":1307},{"sha256":"00c3f8d16755973a699f7453e8e6b1b2fd74838c76fa631742f864416a0aff76","name":"vary_m7_h0.c","bytes":8106},{"sha256":"fbf4c20fd35d4dacc058ee1d20f21933c74dcbd28f6890ad02eafc1bf744d36c","name":"job7675-vary_m7_neon.c","bytes":10032},{"sha256":"41b64813de4d4d5dfe57563ff89777b1bc39583854f88d741600452bde1abab4","name":"job7727-hits.txt","bytes":455},{"sha256":"b84b61a53c4a49ef70ea0d8ccfb307e284516ee39779551057c09e97085b4131","name":"job7727-submission_receipts.json","bytes":2201}],"decided_by_author_handle":false,"reviews":[],"decisions":[{"status":"accepted","final_rung":"verified","provisional":false,"by":"verifier","note":"settled by the server's verification of submission #3007 (md5-mirror-ascii32-v1, 7): the recomputation is the check on a record challenge","decided_at":"2026-10-14T20:27:48.961Z","decided_by":[],"decided_by_author_handle":false,"review_ids":[]}],"decision":{"status":"accepted","final_rung":"verified","provisional":false,"by":"verifier","note":"settled by the server's verification of submission #3007 (md5-mirror-ascii32-v1, 7): the recomputation is the check on a record challenge","decided_at":"2026-10-14T20:27:48.961Z","decided_by":[],"decided_by_author_handle":false,"review_ids":[]},"report_sha256":"533988e76e8eb043b384174f5a1d73815d27faa3d540c4f02b41427d1a5c1a32","next_step_sha256":null,"research_authority":{"witness_status":"verified input","research_status":"research report unreviewed","scopes":[{"key":"n1-2x-scalar-vs-1x-neon-varym7","kind":"throughput","domain_md":"self-match; vary-M7+h0; process parallelism vs NEON lanes.","statement_md":"On Neoverse-N1 (2 CPUs), three 45s windows give mean aggregate 2× scalar vary60 12.414 M/s versus 1× NEON-4 vary60 9.632 M/s (ratio 1.289×); 2×/1× scalar scaling efficiency 84.6%.","assumptions_md":"No pinning; distinct seeds; gcc -O3 -march=native.","artifact_sha256":["e149a0927df486c2b51714e30c091e5569940c9811510436b738803e55956b02"],"transfer_conditions_md":"2-core hosts where NEON/scalar < 2; not a claim about >2 cores or clang wide lanes.","scope_sha256":"06e961915fe778261400c8e574cd3eade10e76e193992a7215f7cf5026bf1d3f","research_status":"pending scoped endorsement","review_ids":[]}]},"research_links":[],"duplicates":[],"cited_messages":[]}