本文へ移動
cccskills
無料GitHub で公開

lsf-memory-scaling

LSF 作业内存不足时的调整技能。当作业因内存不够被挂起(SSUSP)或终止(EXIT/MEMLIMIT)时,通过调整 bsub -n 的节点(核数/slot)数量来扩大可用内存——可用运行内存 ≈ 5GB × 申请节点数。

当用户说内存不足、作业被杀、OOM、需要更大内存,或排查 EXIT/SSUSP 作业时,配合 lsf-ncpgr skill 一起使用。

インストール方法を見る

含まれるファイル(1)

  • SKILL.md3.8 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

LSF 作业内存调整(5GB × 节点数)

核心规则

本集群作业可用运行内存 = 5GB × 申请节点数(#BSUB -n 的 slot 数)。

内存不够时不要加 -M / rusage[mem=...](违反 lsf-ncpgr 编写规范,队列已自动管理内存), 而是增加 -n 的数值:每多申请 1 个 slot,作业多获得约 5GB 可用内存。

需要内存计算申请
10 GB10 ÷ 5#BSUB -n 2
20 GB20 ÷ 5#BSUB -n 4
40 GB40 ÷ 5#BSUB -n 8
80 GB80 ÷ 5#BSUB -n 16
100 GB100 ÷ 5(向上取整)#BSUB -n 20

公式:slots = ceil(需要的GB数 / 5),宁多勿少。

什么时候触发本技能(内存不足的信号)

满足以下任意一条,即按"内存不足"处理:

  • bjobs 显示作业状态为 SSUSP(节点内存不足被系统挂起)
  • 作业 EXIT,且 .err / bjobs -l <jobid> 输出中出现:
    • TERM_MEMLIMIT、Exceeded job memory limit
    • Out of memory、Cannot allocate memory、std::bad_alloc
    • Killed / exit code 137(OOM killer)
  • 程序日志提示内存分配失败(如 samtools/bwa 的 allocation 报错)
  • 用户直接说"内存不够/加大内存/OOM"

处理流程(必须按顺序执行)

  1. 确认是内存问题:bjobs -l <jobid> 或查看 <jobid>.err,找到上面的信号之一。不要凭空猜测。
  2. 估算所需内存:询问用户该任务大概需要多少内存;用户不清楚时,按上次申请量翻倍估算。
  3. 换算节点数:slots = ceil(所需GB / 5)。
  4. 先征得用户同意再操作(用 ask_user,把换算结果做成选项):

    "该作业因内存不足失败。按 5GB×节点数 计算,需要 N 个 slot(约 5N GB)。是否改为 -n N 重新提交?" 候选选项示例:改为 -n N 重新提交、改为 -n 2N 保险一点、换 smp/high 大内存队列、先不处理

  5. 执行调整(二选一):
    • 作业还在排队(PEND):bmod -n <slots> <jobid>
    • 作业已结束(EXIT/DONE):修改 .lsf 脚本中的 #BSUB -n <slots>,重新 bsub < job.lsf
  6. 汇报:说明 原配置 → 新配置(slots 数与约等于的内存量)、作业 ID。

注意事项

  • 不要在脚本中设置 #BSUB -M 或 #BSUB -R "rusage[mem=...]"——本集群队列已配置自动内存限制,遵循 lsf-ncpgr 的极简编写规范。
  • 软件实际使用的线程数应继续用 $LSB_DJOB_NUMPROC 引用,改 -n 后无需改命令行。
  • 单 slot 内存上限受队列约束:normal 约 6-10GB/slot,smp 约 12-20GB/slot,high 约 11-15GB/slot。 若用户需要的是单节点超大内存(如 >100GB 且核数不多),建议换 smp 或 high 队列,而不是无限堆 slot。
  • 增加 slot 会延长排队时间;内存够用时不要多申请(参考 lsf-ncpgr 的资源规划规则)。
  • 调整后若仍因内存失败:按新估算值继续上调(每次至少翻倍),并提醒用户检查程序是否存在内存泄漏或输入数据异常。

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

生成图文并茂的分析报告/实验报告/质检报告(固定模版)。当用户要求"生成报告/总结报告/实验报告/质检报告/QC报告",或分析流程收尾需要交付报告时使用。报告必须基于真实分析输出,包含固定章节结构、关键指标表格和真实结果图。

日本語の概要は準備中です。原文の説明を表示しています。

peacezha/TRACE32026年10月11日 更新

Predicts ADMET properties using ADMETlab 3.0 (119 endpoints with uncertainty), ADMET-AI, DeepChem MolNet, and chemprop D-MPNN with explicit handling of OECD QSAR principles, applicability domain assessment, calibration, hERG/CYP/AMES gold-standard endpoints, and PAINS / Lipinski / Ro5 / Veber / BBB druglikeness filters. Use when filtering compounds for drug-likeness, prioritizing leads by predicted safety, or building an in-house ADMET QSAR model.

日本語の概要は準備中です。原文の説明を表示しています。

peacezha/TRACE32026年10月11日 更新

Trim PCR primers from aligned reads in amplicon-panel BAMs using samtools ampliconclip. Use when processing SARS-CoV-2 ARTIC, hereditary cancer panels, ctDNA hot-spot panels, or any amplicon assay where primer-derived bases would falsely confirm reference at primer footprints.

日本語の概要は準備中です。原文の説明を表示しています。

peacezha/TRACE32026年10月11日 更新

Filter alignments by flags, mapping quality, and regions using samtools view and pysam. Use when extracting specific reads, removing low-quality alignments, or subsetting to target regions.

日本語の概要は準備中です。原文の説明を表示しています。

peacezha/TRACE32026年10月11日 更新

Create and use BAI/CSI indices for BAM/CRAM files using samtools and pysam. Use when enabling random access to alignment files or fetching specific genomic regions.

日本語の概要は準備中です。原文の説明を表示しています。

peacezha/TRACE32026年10月11日 更新

Read, write, and convert multiple sequence alignment files using Biopython Bio.AlignIO. Supports Clustal, PHYLIP, Stockholm, FASTA, Nexus, and other alignment formats for phylogenetics and conservation analysis. Use when reading, writing, or converting alignment file formats.

日本語の概要は準備中です。原文の説明を表示しています。

peacezha/TRACE32026年10月11日 更新

peacezha のスキルをすべて見る

このスキルの問題を報告する