Repository navigation
Batch fixes: stale job records, readable job names, XYZ count check, quieter job logs - #143
Merged
Merged
Conversation
Registry records leave submitted/running only when something polls the queue. The app does; `quantui submit` from a terminal never did, so finished jobs kept counting toward QUANTUI_MAX_CONCURRENT_JOBS and, after two submissions, every further submit was refused. dispatch() and resubmit() now call refresh_registry_statuses() before counting (best-effort: a failed poll leaves the registry as it is). Tests: finished jobs stop counting, a failed poll keeps the count, and a dispatch with two stale records succeeds (refused on the old code). Contributions: - Claude (Opus 5.5): code edits, review, and conceptual discussion - Jonathan Schultz: overall vision, planning, review, and orchestration Co-authored-by: Jonathan Schultz <nccu-schultz-lab@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ch (B2.11) - Job and folder names wrote every unsafe basis character as "x" (6-31G* -> 6-31Gx, 6-31G(d,p) -> 6-31Gxdxpx). slurm_utils.job_name_basis uses the usual abbreviation instead: 6-31Gd, 6-31Gdp, 6-31pGd; still distinct from 6-31G. Same in the quantui-batch launcher port. - An XYZ whose first line gives a different atom count from the atoms listed is now an error for `quantui submit` and `quantui-batch` (it was a log line, resp. a warning): a cut-off file must not run unattended. The count is checked before the charge/multiplicity check, since a cut-off file's odd electron count is a symptom. The app still warns. - test_jobdirs' sbatch mock hands job ids to sbatch only; since B2.9 the submit path polls the queue first, which consumed an id. Contributions: - Claude (Opus 5.5): code edits, review, and conceptual discussion - Jonathan Schultz: overall vision, planning, review, and orchestration Co-authored-by: Jonathan Schultz <nccu-schultz-lab@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
PySCF's Mole.build() runs dump_input() at verbose > NOTE, which writes the whole __main__ file into the output. QuantUI builds with verbose=4 and the job log as stdout, so in the batch worker (where __main__ is worker.py) every single point, frequency, NMR and TD-DFT run added ~900 lines of source to live.log (a toluene frequency log reached 3763 lines). In Jupyter/Voila __main__ has no file, so the app was unaffected. session_calc.build_mole() hides __main__.__file__ for the build only; the system info and [INPUT] summary are still written. Used by the four log-writing build sites. Real worker run, water frequency: 229-line log, no source dump, "[INPUT] num. atoms" present. Contributions: - Claude (Opus 5.5): code edits, review, and conceptual discussion - Jonathan Schultz: overall vision, planning, review, and orchestration Co-authored-by: Jonathan Schultz <nccu-schultz-lab@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Three batch-workflow bug fixes from M-BATCH2 (B2.9, B2.11) and a log cleanup.
Changes
Concurrent-job limit (B2.9):
quantui submitand Resubmit sync job states with the SLURM queue before counting active jobs. With no app open, finished jobs stayed "submitted" in the registry. After two submissions, every further one was refused. A failed queue poll leaves the registry as it is.Job names (B2.11): Pople bases are written the usual way in job and folder names:
6-31G*→6-31Gd6-31G(d,p)→6-31Gdp6-31+G*→6-31pGdThese used to come out as
6-31Gxand6-31Gxdxpx. Names stay distinct from6-31G. Thequantui-batchlauncher gets the same change.XYZ atom count (B2.11):
quantui submitandquantui-batchrefuse an XYZ file whose first line gives a different atom count from the atoms listed. Such a file is cut off or padded, and an unattended job shouldn't run it. The count is checked before the charge/multiplicity check, so the error names the real cause. The app still only warns, since there the student sees the structure.Job logs: PySCF's input dump copied the running script into every SCF-based batch log. In the worker that meant about 900 lines of
worker.py. A newsession_calc.build_mole()hides the script only while the molecule is built. PySCF's version info and[INPUT]summary are still logged. The app was unaffected.Testing
pytest -m "not network": 3827 passed, 19 skipped, 0 failed.live.log, no source dump,[INPUT] num. atomspresent.Authorship