оптимизировать распараллеливание в кластере SLURM: случай выравнивания генома - PullRequest
0 голосов
/ 16 сентября 2018

Я хотел бы понять, как лучше всего использовать bwa параллельно в кластере SLURM. Очевидно, это будет зависеть от вычислительных ограничений, которые у меня есть как у пользователя.

Программное обеспечение bwa имеет аргумент "-t", указывающий количество потоков. Давайте представим, что я использую bwa mem -t 3 ref.fa sampleA.fq.gz, это будет означать, что bwa разделит работу на три задачи / потоки. Другими словами, он выровняет три чтения одновременно (я думаю).

Теперь, если я хочу выполнить эту команду на нескольких примерах и в кластере SLURM, я должен указать количество задач, как для bwa mem, и указать количество процессоров на задачу (например, 2)? Который будет:

sbatch -c 2 -n 3 bwa.sh

где bwa.sh содержит:

cat data.info | while read indv; do
bwa mem -t 3 ref.fa sample${indv}.fq.gz
done

У вас есть предложения? Или вы можете улучшить / исправить мои рассуждения?

1 Ответ

0 голосов
/ 17 сентября 2018

С -c 2 вы запрашиваете 2 ЦП на задачу.

С -n 3 вы просите выполнить 3 задания.

Эта конфигурация подготавливает набор ресурсов, который включает 6 процессоров в 3 разных узлах. Но в вашем сценарии использовались только 3 процессора (-t 3), поэтому вы тратите ресурсы и, вероятно, используете ресурсы, которые вам не принадлежат (поскольку задача будет использовать 3 процессора, а вы запрашивали только 2 процессора на задачу).

Для этого конкретного сценария -c 3 является подходящим параметром (по умолчанию это одно задание):

sbatch -c 3 bwa.sh
...