Skip to content

Add cubic time interpolation for NoLoop likelihood#153

Open
oshaughnessy-junior wants to merge 3 commits into
oshaughn:rift_O4cfrom
oshaughnessy-junior:codex/noloop-fractional-time-interp-o4c
Open

Add cubic time interpolation for NoLoop likelihood#153
oshaughnessy-junior wants to merge 3 commits into
oshaughn:rift_O4cfrom
oshaughnessy-junior:codex/noloop-fractional-time-interp-o4c

Conversation

@oshaughnessy-junior

Copy link
Copy Markdown

Summary

  • add a cubic fractional-time interpolation path for NoLoop Q_lm evaluation while preserving nearest-sample behavior by default
  • wire ILE --interpolate-time to select the cubic NoLoop path
  • add util_RIFT_pseudo_pipe.py --internal-ile-interpolate-time to pass the option into generated ILE args

Scope

Localized cherry-pick onto rift_O4c: 7 files changed, no O4d calmarg/pipeline material included.

Tests

  • PYTHONPATH=MonteCarloMarginalizeCode/Code RIFT_LOWLATENCY=1 MPLCONFIGDIR=/private/tmp/mplconfig-rift-o4c python -m py_compile MonteCarloMarginalizeCode/Code/bin/integrate_likelihood_extrinsic_batchmode MonteCarloMarginalizeCode/Code/bin/integrate_likelihood_extrinsic MonteCarloMarginalizeCode/Code/bin/util_RIFT_pseudo_pipe.py MonteCarloMarginalizeCode/Code/RIFT/likelihood/factored_likelihood.py MonteCarloMarginalizeCode/Code/RIFT/likelihood/Q_inner_product.py
  • RIFT_LOWLATENCY=1 PYTHONPATH=MonteCarloMarginalizeCode/Code MPLCONFIGDIR=/private/tmp/mplconfig-rift-o4c pytest -q MonteCarloMarginalizeCode/Code/test/test_noloop_time_interp.py

@oshaughnessy-junior

Copy link
Copy Markdown
Author

Periodic auto-review baseline established for LVK-prep tracking.

Current review status:

  • Local smoke checks passed from a clean PR worktree at 512c0012267572b78d33c681a5775170fd3948e7:
    • RIFT_LOWLATENCY=1 PYTHONPATH=MonteCarloMarginalizeCode/Code MPLCONFIGDIR=/private/tmp/mplconfig-rift-o4c pytest -q MonteCarloMarginalizeCode/Code/test/test_noloop_time_interp.py -> 3 passed
    • PYTHONPATH=MonteCarloMarginalizeCode/Code RIFT_LOWLATENCY=1 MPLCONFIGDIR=/private/tmp/mplconfig-rift-o4c python -m py_compile ... on the touched Python entry points/modules -> passed
    • git diff --check richard/rift_O4c...HEAD -> passed
  • ldas-grid analysis/demo anchor exists at /home/richard.oshaughnessy/RIFT_roboto_paper.
  • Mergeability is currently blocked. git merge-tree against current richard/rift_O4c shows both-branch edits in:
    • MonteCarloMarginalizeCode/Code/bin/integrate_likelihood_extrinsic_batchmode
    • MonteCarloMarginalizeCode/Code/bin/util_RIFT_pseudo_pipe.py

The visible pseudo-pipe conflict is in the parser option block: the conflict resolution should keep the newer rift_O4c --internal-ile-srate-time-resampling / --internal-ile-srate-internal options and also add this PR's --internal-ile-interpolate-time option and downstream --interpolate-time True propagation.

Recommended next gate before merge/LVK review: refresh the branch against rift_O4c, rerun the local checks above, then run or inspect the established ~/RIFT_roboto_paper ldas-grid demos/tests, including a real --interpolate-time True / --internal-ile-interpolate-time path and, if available, a GPU/CuPy parity check.

@oshaughnessy-junior

Copy link
Copy Markdown
Author

Resolved the rift_O4c branch conflict and pushed the update to this PR branch.

Resolution commit:

  • 3d0ca4ca5763afca434c40f2a5f92e4049e1c37e (Merge rift_O4c into NoLoop interpolation PR)

Preserved in util_RIFT_pseudo_pipe.py:

  • this PR's --internal-ile-interpolate-time and downstream --interpolate-time True propagation
  • current rift_O4c options --internal-ile-srate-time-resampling / --internal-ile-srate-internal and their downstream propagation

Post-resolution checks from /private/tmp/rift-pr153-resolve:

  • RIFT_LOWLATENCY=1 PYTHONPATH=MonteCarloMarginalizeCode/Code MPLCONFIGDIR=/private/tmp/mplconfig-rift-o4c-resolve-post pytest -q MonteCarloMarginalizeCode/Code/test/test_noloop_time_interp.py -> 3 passed
  • PYTHONPATH=MonteCarloMarginalizeCode/Code RIFT_LOWLATENCY=1 MPLCONFIGDIR=/private/tmp/mplconfig-rift-o4c-resolve-post python -m py_compile ... on the touched entry points/modules -> passed
  • git diff --check richard/rift_O4c...HEAD -> passed

GitHub now reports this PR as MERGEABLE at head 3d0ca4ca5763afca434c40f2a5f92e4049e1c37e.

@oshaughnessy-junior

Copy link
Copy Markdown
Author

Periodic auto-review at unchanged head 3d0ca4ca5763afca434c40f2a5f92e4049e1c37e / base a08e88a4ba5662faa123efca9b815d0f8362f9f7:

  • GitHub reports MERGEABLE/CLEAN; git merge-tree --write-tree refs/codex-auto-review/pr153-base refs/codex-auto-review/pr153-head completed without conflicts (tree a63c2e12387b734e86639205bd414351e579f18c).
  • Clean-worktree checks:
    • GW_SURROGATE='' RIFT_LOWLATENCY=1 PYTHONPATH=MonteCarloMarginalizeCode/Code MPLCONFIGDIR=/private/tmp/mplconfig-rift-pr153-current pytest -q MonteCarloMarginalizeCode/Code/test/test_noloop_time_interp.py -> 3 passed
    • baseline python -m py_compile ... set -> passed
    • git diff --check refs/codex-auto-review/pr153-base...refs/codex-auto-review/pr153-head -> passed
    • both ILE entry points accept bare --interpolate-time and explicit --interpolate-time False with --help (all exit 0); pseudo-pipe still registers --internal-ile-interpolate-time and emits --interpolate-time True.
  • The established LDAS anchor remains /home/richard.oshaughnessy/RIFT_roboto_paper. Its analyses/bilby_v_rift_likelihood/ILE_MARGINAL_TIME_INTERP.md records real paired maintained-NoLoop ILE runs:
    • 3-template cubic-minus-nearest deltas: +0.0081, +0.0382, -0.0124, versus paired MC errors 0.0399, 0.0459, 0.0500
    • 60-point scan: mean -0.004, rms 0.033, max absolute 0.105
    • saved cubic command includes --interpolate-time True
  • Important scope: the saved runtime says no cupy and Override --gpu (not available), so this is strong real CPU/numpy-path validation, not CUDA parity. The LDAS login node also lacks CuPy/NVIDIA access, though Condor advertises GPU slots.

Recommended remaining LVK gate: schedule a small Condor GPU job comparing Q_inner_product_cubic_cupy against the numpy helper at integer and fractional offsets, then run one paired real ILE case on CuPy. No new conflict or CPU regression found.

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.

1 participant