Skip to content

Sample conditions in parallel, and shorten the loop-search limit - #13

Merged
edkerk merged 1 commit into
masterfrom
fix/parallel-sampling
Sep 25, 2026
Merged

edkerk merged 1 commit into
masterfrom
fix/parallel-sampling

Conversation

@edkerk

@edkerk edkerk commented Sep 25, 2026

Copy link
Copy Markdown
Member

Sampling all five conditions in one process took hours, because the conditions run one
after another and the search for cyclic reactions that precedes each one is
single-threaded and occasionally stalls.

  • --merge: python -m overflow.run_sampling --merge runs/CN4 runs/CN22 ... combines
    the tables of separate per-condition runs into one set, so each condition can be one
    Slurm job and all five run in parallel. In altExchangeFlux a condition that does not
    secrete a byproduct above the detection threshold is left empty for that row. Runs
    sampled on different reactions are refused.
  • Loop-search limit: the search for cyclic reactions (cobra draws random LP weights,
    and an occasional seed runs for hours) now has a five-minute limit, down from fifteen,
    and retries with a new seed. It normally takes one to two minutes.
  • The README shows the per-condition workflow.

Tests: two for the merge (columns, the empty entries, and the refusal on different
reactions). The sampling and comparison tests pass on Gurobi.

--merge combines the tables of separate per-condition runs, so the conditions can
be sampled as one job each. The limit on the search for cyclic reactions drops from
15 to 5 minutes: it normally takes one or two.
@edkerk
edkerk merged commit caf480d into master Sep 25, 2026
3 checks passed
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