# QuickFIX C++ original threaded session configuration

This records functional and physical scopes separately. The full benchmark
plan, fresh timing admission and wider language comparisons remain open.

## Source and independent configuration

Protected source `52828f9bba4076a196dfe2fdde62a3b825a82409` exports the
complete 960-file standalone benchmark archive, with zero closure, link and
scrub findings. Its sorted source-inventory SHA-256 is
`085c42fabab76061885ba3024b9536a72ec62427c5fc7fc9d6dfbfce607d4adc`;
queued capsule SHA-256 is
`7e1e647402a43071168410a6d7180346cf8405fb34158e181cee63b843df9848`.

The default consumer uses public `SocketAcceptor`/`SocketInitiator`.
`-DQFCPP_THREADED_SESSION_IO=1` selects the original public
`ThreadedSocketAcceptor`/`ThreadedSocketInitiator` implementation. This is
an explicit SDK session configuration, with a distinct compact flavour
`quickfix-cpp+threaded+callback+complete-rtt`. No SDK code or root helper is
changed. The const group-reference extraction already qualified on both
hosts stays in place; canonical fields, owner folds, complete RTT and tick
clock spans, full warmup and exactly ten pre-warmup capture cycles remain.
The public serialized Log observation still does not prove a completed write.

Both actual role rows declare `session_io`. Functional and cold checks can
require a specific implementation; the bounded cold reader adds four actual
bilateral substitution controls. The compact writer binds the observed
implementation in every role/repetition to the original pre-run metadata,
then selects its separate flavour and public runtime-provider identity.
It cannot relabel a threaded report as the socket configuration.

All 150 targeted pair/writer controls pass locally with zero skips, including
full synthetic threaded reports and wrong original I/O metadata. A later
documentation-only sentence names the shared boundary as before production
Responder send; it makes no change to this frozen source or timing policy.

## SCAN native qualification

Under a normal-priority shared CPU lease on CPUs 0–9, the frozen complete
archive passes **2,566 portable controls plus 279 subtests**, zero failures,
errors or skips; two SDK-source guards are explicitly deselected. Five fresh
native products build against the original pinned SDK and library. The
independent native argument and SDK prefix units pass 69 and twelve checks.

Each actual socket and threaded driver separately passes twenty bounded
and twenty-three legacy TCP pairs: **86 pairs in total**. Each fixture run
includes 660 original parsed-message immutability checks. Each implementation's
independent cold replay reproduces 43 pairs and refuses 76 altered copies;
its public bounded reader reproduces twenty pairs and refuses 88, including
the four bilateral I/O substitutions. Original source and SDK files/products
remain identical in bytes and modes.

The SDK source pin is `386ce46e917ae494ab6e90b1be90fd421cdbe3f9`;
source/library inventory SHA-256 is
`c55deab1d03c19cc696b25757a03ce3fa649a1f1490591e6e4c45f2ac7d429d2`.
Both builds use the recorded GCC toolset 15.2.1, C++17, `-O2 -DNDEBUG`,
the unchanged static SDK and dictionary, and the explicit threaded flag
only for that driver. No replacement library or ABI shim is introduced.

Twenty-one bounded metadata payloads have their exact sizes and SHA-256
values reviewed locally. No raw application or latency output is imported.
Qualification receipt SHA-256:
`399e186a5d357ade877ec4bb3eff33b45bf9b6d75df8b2331bcdaffed433822d`.
Source-inventory file SHA-256:
`056936029dd914a017b6380d8f5d8717056d12ca7ab2758d4d41d73d2044686d`.
Socket/threaded public cold receipt SHA-256 values respectively:
`470e57e10766a74f12a2a8e8130d0962734851b2a9f93c09acd354ddd11989ea`,
`70124a1604369b5435d4e6025e9189dcbcea96e62258b8837dfcc36676797623`.
The original qualification stays at
`~/build/codex-fullbench/libhft/quickfix-cpp-threaded-qualification-20261018-v1`
on SCAN; bounded review metadata stays under the session build root.

## Pending host and physical scopes

HP's matching full native qualification is queued at **high priority** on
shared CPUs 0–7, using the previously installed user-cached Python 3.11 and
exact pinned dependencies. Other sessions' running jobs are respected.

After each host's exact full qualification passes, the dependent controller
installs its threaded app and an inert host-provenance probe through the
already registered immutable installer. It verifies original products,
fixed helper hashes, both endpoint CPU/namespace/user identities and actual
kernel/NIC model/firmware before running. The probe opens no application
socket. Preparation uses `isol`; the outer physical matrix queues for
`isol-no-shared`, high priority on HP and normal priority on SCAN.

Only the new threaded configuration is scheduled for four tiny and twelve
complete report DAC pairs, plus independent cold replay and the pre-run
provenance-bound compact writer. No unchanged failed socket timing is
repeated. The report keeps 1,000 warmup / 10,000 measured cycles, three
repetitions, 10,000/s, full owner/raw/admin and physical-counter gates.
Passing cells alone may be exported; diagnostic cells cannot replace good
keys. At this checkpoint the physical jobs are pending: **no new timing,
compact-cell or matched-comparison admission** is claimed.

## HP native qualification completes

The exact frozen source also completes its high-priority shared qualification
on HP: **2,566 controls plus 279 subtests**, zero failures, errors or skips,
and two SDK-source deselections. All five products, 69 argument checks and
twelve SDK prefix vectors pass. Both socket and threaded configurations
separately pass 43 actual TCP pairs, 660 fixture immutability checks and the
76/88 cold refusals. Twenty-one bounded payloads match their saved sizes and
hashes; the complete 960-file source inventory also matches the original
queued archive exactly, in both hashes and modes. No raw output is imported.
HP receipt SHA-256:
`13dd0f1aae8c8b5bc2cea45be24bc7f8ddbd878dc1cb7862367a289ae1bb9bf1`.
Socket/threaded public cold receipt SHA-256 values respectively:
`67c5ae48195ac08c79e496ed0fa5f51096228d29c2d05d0692b4f0683df3ebeb`,
`ee6b96fdc970dbe0117442cb9fe3ee185d688c57231908c14f9c1c2057aec722`.

Both hosts now have full native proof. SCAN's installed threaded generation
and both real normal-user namespace probes have passed preparation. Its
physical run waits for the quiet lease; HP's preparation waits at high
priority for the isolated pool. The pending timing and comparison scopes
above remain pending.

## SCAN threaded physical outcome

Under its actual `isol-no-shared` lease, SCAN completes four tiny and twelve
report DAC pairs, with all 32 process exits zero. Both independent cold
replays pass. Original bilateral Logons/body bytes, ten-cycle prefixes,
full measured owner/folds/live counts, raw/admin observations, fixed normal
user/CPU/namespace identities and both physical TX-counter gates pass.
The complete report retains 120,000 primary and 120,000 delay samples.

All four flows remain **S5 diag**:

| Flow | Achieved /s, min–max | Retained blockers |
|---|---:|---|
| `nos_er` | 5,669.491–5,823.021 | rate |
| `md` | 3,946.141–4,000.495 | rate, scheduler delay |
| `md_nos_er` | 2,316.750–2,342.556 | rate, stability, scheduler delay |
| `tick_to_trade` | 5,719.393–5,756.111 | rate, scheduler delay |

Raw quantiles, true extrema and every failed promotion decision reproduce
exactly, with unchanged source and original output bytes/modes. Tiny/report
capture totals are 100/300 original application frames per peer; the live
counters cover all prefix, warmup and measured cycles. Twenty-three bounded
physical metadata payloads match their saved sizes and SHA-256 values.
No raw output is downloaded or imported.

Unlike the older producer, this sitting captures its source, actual kernel
and both ports' NIC model/firmware through the registered unprivileged probe
before timing. It executes the provenance-bound compact writer and writes
**zero cells**, preserving every good key. The original generation is
`d2a05f1702fb001288ed00a0f3ccb99ef7d9ce904fc4d5d05fda451207485d93`.
Final campaign receipt SHA-256:
`38969df309e5e3cc6055cd57cccd616d67431ee2102090357fc36433bb0341ef`.
Tiny/report cold receipt SHA-256 values respectively:
`bd6bd1672346aacf8b93ced5292e845efcb4c1e30a97433a086f8e064dac3717`,
`aabd0727a9fe568954bca8611e584018612d0f0d7e4e4dc2d60eeb1eee249b1a`.

HP's same-source high-priority physical preparation remains queued. The
failed SCAN timings remain retained without an unchanged matrix rerun.
A separate normal shared lease is requested for two unprivileged CPU
profiles of the original threaded consumer on localhost, covering NOS and
MD. It uses 1,000 warmup and 20,000 measured cycles, the same ten-cycle
closed prefix and actual functional owner/raw checks. These are source-cost
diagnostics, with no physical/report grade or replacement timing admission.

## Original-consumer CPU profiles complete

Both NOS and MD profiling pairs pass the complete functional check for their
20,000 measured cycles, 1,000 warmup cycles and exactly ten original captured
prefix cycles. Sampling runs unprivileged on shared CPUs 0–9 under the host
lease, with other isolated work permitted. It uses `cycles:u`, 199 Hz and
4,096-byte DWARF call stacks through perf
`5.14.0-687.58.1.el9_8.x86_64`. Original source, SDK and native product bytes
and modes remain unchanged. These are localhost CPU diagnostics.

Sampling covers the whole processes, including startup, warmup, measurement
and shutdown. Inclusive function percentages overlap; unresolved addresses
remain unattributed. Selected named observations from those original reports:

| Process | Function | Whole-process CPU samples |
|---|---|---:|
| MD server | `qfcanonical::snapshot` | 49.03%, inclusive |
| MD server | `FIX::DoubleConvertor::fast_dtoa` | 23.01%, inclusive |
| MD client | SDK `Message` construction from string/dictionary | 26.26%, inclusive |
| NOS client | `FIX::DataDictionary::iterate` | 5.50%, self |

Fifteen bounded metadata/text payloads have their exact sizes and hashes
reviewed; raw samples and perf data stay on SCAN. Receipt SHA-256:
`3d5ad644370ca0ff339506cb019f275c739c95f8d79556cd2583ab97d285e8b9`.
The exact experiment driver is retained at
[`internal/bench/quickfix_cpp_threaded_cpu_profile_20261018.py`](../../bench/quickfix_cpp_threaded_cpu_profile_20261018.py),
SHA-256 `6164f68b2289a2ff73303adab40a1cd330fdd0b6cce21a051ccfeb37944e2ff7`.
It requires the original qualification/cache inputs and refuses an existing
output root. Original command records and profiles remain at
`~/build/codex-fullbench/libhft/quickfix-cpp-threaded-cpu-profile-20261018-v1`.

These profiles identify consumer construction/conversion and SDK parsing as
areas for further source review. They supply no report-grade latency,
matched ratio or new physical run. HP's original threaded DAC job remains
queued at high priority; every completed failed timing keeps its grade.

## Interpreter prerequisite and Stage 2 handoff

The public full-session control guide and standalone README now state
Python 3.11 or newer and require the selected interpreter on child-command
PATH. This documents the actual HP setup failure and successful correction,
without excluding tests or changing shared Stage 2 implementation. The
frozen qualified source and all actual run receipts retain their own bytes.

For the microbench owner: the separate Stage 2 unit-check guide still states
Python 3.9, while `test_stage2_repeated_campaign.py` uses
`TestCase.enterContext` and `test_stage2_runtime.py` imports `tomllib`.
The complete HP suite exposed five lifecycle setup failures and one recipe
failure on Python 3.9. Full-session qualification now uses the pinned
user-cache Python 3.11 environment. Stage 2 source, its claimed runtime and
minimum-version documentation remain with that owner for reconciliation.

## HP original threaded physical outcome

The original frozen source `52828f9bba4076a196dfe2fdde62a3b825a82409`
retains its earlier queue position and completes HP's four tiny and twelve
report DAC pairs under the actual **high-priority `isol-no-shared` lease**.
All 32 process exits are zero. Both independent cold replays pass with
unchanged original bytes/modes, exact raw quantiles/extrema and reproduced
promotion decisions. Full bilateral Logon/body, ten-cycle prefix, measured
owner/folds/live counts, raw/admin, normal-user/CPU/namespace and physical
transmit-counter gates pass. Report output retains 120,000 primary and
120,000 delay samples, 300 captured application frames per peer and
330,300 live frames. Tiny output retains 80 primary/delay samples and
100 captured frames per peer.

All four flows remain **S5 diag**:

| Flow | Achieved /s, min–max | Retained blockers |
|---|---:|---|
| `nos_er` | 7,056.831–7,084.416 | rate |
| `md` | 5,272.435–5,314.088 | rate, scheduler delay |
| `md_nos_er` | 3,394.654–3,414.293 | rate, scheduler delay |
| `tick_to_trade` | 7,073.982–7,075.865 | rate, scheduler delay |

The source/provenance-bound writer executes and writes **zero compact cells**;
every existing good result key is preserved. Twenty-three bounded metadata
and log-tail payloads match their saved lengths and SHA-256 values. No raw
application or latency files are downloaded or added to Git. Both original
namespace probes and installed products are checked, including the pre-run
kernel `5.14.0-687.44.1.el9_8.x86_64`, NIC `pci:0x1924:0x0a03` and firmware
`6.4.2.1020 rx1 tx1`. This does not establish a cross-host or source-treatment
speed ratio.

Installed generation: `04f0295c70cbe785643b521ab58925380e3968855d205a537b912a3c50d9895c`.

Completed receipt SHA-256: `fa23cea192a008c2ccdc7108bbff4b2445c2d73538a846b9ac3c4c224f155690`.

Prepared receipt SHA-256: `5ce14a2b63d707b39730dbe50e01000394525011883268023ed13bdd3bf08080`.

Tiny cold receipt SHA-256: `05e49c98d3fd4e82b5490c889ceaa813e6a3435b8a786ec8e1aa19f724024f2f`.

Report cold receipt SHA-256: `a3c673dcc6719aabf257673e61054e4190387b3f2e660828afbf41e86235d92c`.

The original working output remains on HP under
`~/build/codex-fullbench/libhft/quickfix-cpp-threaded-physical-20261018-v1`;
local review metadata stays under `qfcpp-threaded-review-20261018-v1/hp/physical`
in the session build root. This completes both physical matrices for this
source, with all four report flows diagnostic on each host. No unchanged
threaded matrix is repeated. The separately frozen checked-precision source
keeps its own actual generation, qualification and physical decisions.
The full plan's timing/anchor and wider-roster gates remain open.
