Запуск mpiexec с различными параметрами скрипта для каждого процесса - PullRequest
0 голосов
/ 14 сентября 2018

Извиняюсь за основной вопрос, но я не смог найти решение в Google.Я хочу запустить скрипт отдельно для каждой хромосомы в списке (называемый CHROMS в приведенном ниже коде), используя распараллеливание через MPI.Сценарий, который я вызываю (some_script.sh), принимает параметр хромосомы, который я хочу изменить для каждого вызова, и другой параметр, который я хочу сохранить постоянным во всех вызовах.По сути, мне нужно то, что делает приведенный ниже код, но с mpiexec вместо фоновых процессов.

#Run the pipeline for each chromosome separately.
#run_chromosome_iteration.sh
SOME_OTHER_PARAM="blah blah"
for c in $CHROMS;
    do 
        $SCRIPTS/some_script.sh $c $SOME_OTHER_PARAM &
    done

Редактировать: на самом деле в моем проекте происходит два уровня распараллеливания: я запускаю свою модель 100 раз, используя100 заданий, и я хотел бы распараллелить каждое задание по набору хромосом (в данном случае 11).Пожалуйста, смотрите код ниже:

#Submit all jobs.
for i in {1..100};
    do 
        qsub -v ITER=${i} run_chromosome_iteration.sh
    done 

Таким образом, я мог бы использовать массивы заданий на более низком уровне распараллеливания, но это привело бы к 1100 независимым заданиям и было бы менее эффективным по сравнению с распределением памяти между параллельными процессами.Я также не могу просто использовать фоновые процессы, потому что объем памяти, который я буду использовать, требует двух вычислительных узлов в моем кластере.Вот почему я хочу использовать MPI.

...