You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Triage of the full de.NBI run of 2026-08-17 (5w8BFLN1vMRRLW). Nextflow reported SUCCEEDED, but exitStrat() in labels_denbi.config ignores most non-zero exits after retrying, so 263 of 4369 tasks actually failed. One metric produced no scores at all, and five methods produced no results at all.
Results: s3://openproblems-data/resources/task_batch_integration/results/run_2026-08-17_16-18-21/ with trace.txt, score_uns.yaml, report/ and logs/ (all .command.* and .exitcode, 4369/4369 tasks present, logs/_index.tsv maps work dir hash to task)
Fetched off the cluster with common/scripts/fetch_denbi_run --logs --upload 5w8BFLN1vMRRLW. The full work dirs are not synced -- those only live on the cluster's /vol/scratch, which is deleted when the cluster is terminated, so grab anything you still need from there before teardown.
19 of 26 scored methods have all six datasets. fadvi, geneformer, scanorama_correct, scgpt_finetuned and scprint produced nothing at all, and kbet_pg is absent from score_uns.yaml entirely.
Must fix: non-method components
kbet_pg: 124/124 SIGILL, metric missing from the whole run.pegasuspy pulls hnswlib, which ships no PyPI wheels and whose setup.py compiles with -march=native. The image was built on an AVX-512 runner, so bare import hnswlib dies on the de.NBI workers (EPYC-Rome and Broadwell, AVX2 at most). docker run ghcr.io/openproblems-bio/task_batch_integration/metrics/kbet_pg:build_main python -c "import hnswlib" exits 132. The twin kbet_pg_label drew an AVX2-only runner and passed 248/248 -- same source, same version, different lottery ticket. The image on build_main still has 47 zmm references today, so a re-run fails again unchanged.
bbknn: same landmine, not yet triggered.annoy has the same -march=nativesetup.py, and methods/bbknn:build_main currently carries 136 zmm references. It passed in this run; it will not pass in the next one.
Pin the ISA at build time so this stops being a lottery. Both packages have an escape hatch, and viash emits the ENV lines correctly from a type: docker setup step placed before the pip step:
Verified against openproblems/base_python:1: no AVX-512 in either extension, AVX2 kernels retained, both import. Affects kbet_pg, kbet_pg_label, bbknn, scanorama_correct, scanorama_integrate, scalex.
Move those env vars into the base images (openproblems/base_python, in openproblems-bio/openproblems) so no derived image anywhere can draw a bad ticket. The per-component fix above is the stopgap.
kbet: 65 OOM + 4 walltime, all on hypomap and mouse_pancreas_atlas. Successful tasks peak at ~398 GB RSS against veryhighmem (200 GB x attempt, clamped to maxMemory = 480.GB), so this is the hardware ceiling and not a mislabel. Needs a decision rather than a patch: subsample, or drop kbet now that kbet_pg_label measures the same thing for a fraction of the cost.
Method bugs
scanorama_correct: 6/6 SIGILL. Same -march=native problem as kbet_pg, via annoy. Confirmed by pulling the exact digest from the run, sha256:fc42f62d660a8804dc4469a4d489023f37076d348276b15aecc29278efbe3240: its annoylib.so has 136 AVX-512 references and reproduces the SIGILL on the real dkd input. The image has since been rebuilt and the current one runs clean, which is exactly the problem. Covered by the ISA pin above.
scgpt_finetuned: 8/10, one line.script.py:176 uses adata.X.A; .A was removed from scipy sparse matrices in scipy 1.14. Use adata.X.toarray().
geneformer: 8/10, HF 404. Duplicate of Method for geneformer has been blocked by new geneformer model! #96. Upstream ctheodoris/Geneformer renamed *_gc95M.pkl to *_gc104M.pkl and replaced gf-*-95M-i4096/ with Geneformer-V2-104M/ in the "add V2 models" commits of 2025-06-18, and every hf_hub_download tracks main, so it broke silently. Quickest unblock is to pin revision="42dbf0ae41244b93f1c3735fa393a966ffe64dfa" (2025-06-13, verified to still carry all four gc95M dictionaries and all four model directories); migrating to V2 is a separate call about what we are benchmarking.
scprint: 12/12, triton vs CUDA. The image has torch 2.2.0+cu121 and triton 2.2.0, but openproblems/base_pytorch_nvidia:1 now ships CUDA 13.1 at /usr/local/cuda. Triton 2.2's ptx_get_version() only maps CUDA 10/11/12 and raises RuntimeError: Triton only support CUDA 10.0 or higher. Triton bundles its own CUDA 12.3 ptxas; setting TRITON_PTXAS_PATH=/usr/local/lib/python3.12/dist-packages/triton/third_party/cuda/bin/ptxas makes detection return 12.3 (verified in-image). Bumping scprint/torch is the real answer. Related: Inconsistent preprocessing for scPRINT #81.
Resource labels
fadvi: 6/6 walltime, and it is a misconfiguration.config.vsh.yaml:100 is [midtime,midmem,midcpu] with no gpu, so SLURM sent it to -p cpu with no --gpus -- the log says GPU available: False, used: False -- and it hit the 4 h midtime ceiling on all six datasets. Add gpu and raise the time tier.
scalex: 5/6 walltime, same shape.script.py:41 passes gpu=0, but the engine is openproblems/base_python:1 (no CUDA) and the label has no gpu, so it always runs on CPU. dkd took 28 min, everything larger blew past 8 h. Needs base_pytorch_nvidia:1 plus a gpu label.
uce: 5/6 walltime, genuine. It did get its T4. dkd finished in 5 h 05, the rest hit hightime with ~40 h ETAs on a single card. veryhightime (24 h) is defined in _viash.yaml and used by no component; this is what it is for, though even 24 h may not cover hypomap and tabula_sapiens.
mnnpy (5/6) and batchelor_mnn_correct (5/6): walltime, probably real limits.dkd in 23 min and 4 h 57 respectively, everything larger over 8 h. Worth one bump to veryhightime, and if they still time out we record it as a scaling limit of the methods rather than chasing it.
Not a bug
The 10 exit-99 tasks are correct: cellplm, scgpt_zeroshot, scimilarity and geneformer declaring themselves human-only on the two mouse datasets.
Suggested order
The two AVX-512 images first, since they are broken right now and one of them silently deletes a metric from the benchmark. Then the one-liners (scgpt_finetuned, geneformer, scprint, fadvi), then scalex, then the time tiers. kbet needs a decision, not a patch.
Triage of the full de.NBI run of 2026-08-17 (
5w8BFLN1vMRRLW). Nextflow reported SUCCEEDED, butexitStrat()inlabels_denbi.configignores most non-zero exits after retrying, so 263 of 4369 tasks actually failed. One metric produced no scores at all, and five methods produced no results at all.Where the data is
s3://openproblems-data/resources/task_batch_integration/results/run_2026-08-17_16-18-21/withtrace.txt,score_uns.yaml,report/andlogs/(all.command.*and.exitcode, 4369/4369 tasks present,logs/_index.tsvmaps work dir hash to task)common/scripts/fetch_denbi_run --logs --upload 5w8BFLN1vMRRLW. The full work dirs are not synced -- those only live on the cluster's/vol/scratch, which is deleted when the cluster is terminated, so grab anything you still need from there before teardown.Failures
19 of 26 scored methods have all six datasets.
fadvi,geneformer,scanorama_correct,scgpt_finetunedandscprintproduced nothing at all, andkbet_pgis absent fromscore_uns.yamlentirely.Must fix: non-method components
kbet_pg: 124/124 SIGILL, metric missing from the whole run.pegasuspypullshnswlib, which ships no PyPI wheels and whosesetup.pycompiles with-march=native. The image was built on an AVX-512 runner, so bareimport hnswlibdies on the de.NBI workers (EPYC-Rome and Broadwell, AVX2 at most).docker run ghcr.io/openproblems-bio/task_batch_integration/metrics/kbet_pg:build_main python -c "import hnswlib"exits 132. The twinkbet_pg_labeldrew an AVX2-only runner and passed 248/248 -- same source, same version, different lottery ticket. The image onbuild_mainstill has 47zmmreferences today, so a re-run fails again unchanged.bbknn: same landmine, not yet triggered.annoyhas the same-march=nativesetup.py, andmethods/bbknn:build_maincurrently carries 136zmmreferences. It passed in this run; it will not pass in the next one.ENVlines correctly from atype: dockersetup step placed before the pip step:openproblems/base_python:1: no AVX-512 in either extension, AVX2 kernels retained, both import. Affectskbet_pg,kbet_pg_label,bbknn,scanorama_correct,scanorama_integrate,scalex.openproblems/base_python, inopenproblems-bio/openproblems) so no derived image anywhere can draw a bad ticket. The per-component fix above is the stopgap.kbet: 65 OOM + 4 walltime, all onhypomapandmouse_pancreas_atlas. Successful tasks peak at ~398 GB RSS againstveryhighmem(200 GB x attempt, clamped tomaxMemory = 480.GB), so this is the hardware ceiling and not a mislabel. Needs a decision rather than a patch: subsample, or dropkbetnow thatkbet_pg_labelmeasures the same thing for a fraction of the cost.Method bugs
scanorama_correct: 6/6 SIGILL. Same-march=nativeproblem askbet_pg, viaannoy. Confirmed by pulling the exact digest from the run,sha256:fc42f62d660a8804dc4469a4d489023f37076d348276b15aecc29278efbe3240: itsannoylib.sohas 136 AVX-512 references and reproduces the SIGILL on the realdkdinput. The image has since been rebuilt and the current one runs clean, which is exactly the problem. Covered by the ISA pin above.scgpt_finetuned: 8/10, one line.script.py:176usesadata.X.A;.Awas removed from scipy sparse matrices in scipy 1.14. Useadata.X.toarray().geneformer: 8/10, HF 404. Duplicate of Method for geneformer has been blocked by new geneformer model! #96. Upstreamctheodoris/Geneformerrenamed*_gc95M.pklto*_gc104M.pkland replacedgf-*-95M-i4096/withGeneformer-V2-104M/in the "add V2 models" commits of 2025-06-18, and everyhf_hub_downloadtracksmain, so it broke silently. Quickest unblock is to pinrevision="42dbf0ae41244b93f1c3735fa393a966ffe64dfa"(2025-06-13, verified to still carry all four gc95M dictionaries and all four model directories); migrating to V2 is a separate call about what we are benchmarking.scprint: 12/12, triton vs CUDA. The image hastorch 2.2.0+cu121andtriton 2.2.0, butopenproblems/base_pytorch_nvidia:1now ships CUDA 13.1 at/usr/local/cuda. Triton 2.2'sptx_get_version()only maps CUDA 10/11/12 and raisesRuntimeError: Triton only support CUDA 10.0 or higher. Triton bundles its own CUDA 12.3ptxas; settingTRITON_PTXAS_PATH=/usr/local/lib/python3.12/dist-packages/triton/third_party/cuda/bin/ptxasmakes detection return 12.3 (verified in-image). Bumping scprint/torch is the real answer. Related: Inconsistent preprocessing for scPRINT #81.Resource labels
fadvi: 6/6 walltime, and it is a misconfiguration.config.vsh.yaml:100is[midtime,midmem,midcpu]with nogpu, so SLURM sent it to-p cpuwith no--gpus-- the log saysGPU available: False, used: False-- and it hit the 4 hmidtimeceiling on all six datasets. Addgpuand raise the time tier.scalex: 5/6 walltime, same shape.script.py:41passesgpu=0, but the engine isopenproblems/base_python:1(no CUDA) and the label has nogpu, so it always runs on CPU.dkdtook 28 min, everything larger blew past 8 h. Needsbase_pytorch_nvidia:1plus agpulabel.uce: 5/6 walltime, genuine. It did get its T4.dkdfinished in 5 h 05, the rest hithightimewith ~40 h ETAs on a single card.veryhightime(24 h) is defined in_viash.yamland used by no component; this is what it is for, though even 24 h may not coverhypomapandtabula_sapiens.mnnpy(5/6) andbatchelor_mnn_correct(5/6): walltime, probably real limits.dkdin 23 min and 4 h 57 respectively, everything larger over 8 h. Worth one bump toveryhightime, and if they still time out we record it as a scaling limit of the methods rather than chasing it.Not a bug
The 10 exit-99 tasks are correct:
cellplm,scgpt_zeroshot,scimilarityandgeneformerdeclaring themselves human-only on the two mouse datasets.Suggested order
The two AVX-512 images first, since they are broken right now and one of them silently deletes a metric from the benchmark. Then the one-liners (
scgpt_finetuned,geneformer,scprint,fadvi), thenscalex, then the time tiers.kbetneeds a decision, not a patch.