You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Bash中为多进程分配专属CPU并行运行NGSadmix?

问题:NGSadmix并行任务的CPU核分配优化

我有一个支持并行运行的程序NGSadmix(通过-P参数启用),希望同时运行该程序的3轮迭代(1至3),每轮包含10个不同的命令。我计划使用72个CPU核心,将其划分为3组,每组24核,让每个NGSadmix命令使用24核进行计算。

当前使用的命令如下:

SLURM_CPUS_PER_TASK=72
TASKCPU=$(($SLURM_CPUS_PER_TASK/3))

parallel -j $SLURM_CPUS_PER_TASK "NGSadmix -likes myfile.gz -P 1 -K {2} -outfiles out_{2}_it{1}.m -minMaf 0.05" ::: {1..3} ::: {1..10}

上述命令会并行运行72个进程,但每个NGSadmix程序仅使用1核(-P 1)。我不确定将-P 1替换为-P $TASKCPU是否可行,因为parallel进程已占用全部72核。

以下是我期望的核分配示意图:

3 different iterations that will run 10 different commands 
          24 cpus NGSadmix_iter1 process 1..10
        / 
(main) /
72 cpus-- 24 cpus NGSadmix_iter2 process 1..10
       \
        \ 
          24 cpus NGSadmix_iter3 process 1..10
更新

来自@Cobra_Fast的测试代码:

# test parallel
DIVTASK=2
TASKCPU=4
cd ~/Desktop
mkdir -p testpar
cd testpar
parallel -j ${DIVTASK} "echo ${TASKCPU} > test_iter.{1}_k.{2}.txt | sleep 5" ::: {1..4} ::: {1..10}

内容的提问来源于stack exchange,提问作者M. Beausoleil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 18:01:18