Slurm: используйте ядра из нескольких узлов для распараллеливания R
Но это для Python.
У меня есть Программа Python, которая может использовать несколько ядер на ПК, не использует MPI или OpenMP. Он использует функцию CreateProcess для использования ядра ЦП или потока на ПК.
Интересно, могу ли я запустить такую программу на Python в SLURM, используя ядра из нескольких узлов?
Я имею в виду, что он может назначить программу на один узел, и если узел в кластере SLURM имеет 20 ядер, то, конечно, эта программа может работать на этом узле так же, как она работает на ноутбуке с 20 ядрами.
Но я хочу использовать 100 ядер, поэтому потребуется 5 узлов. Можно ли использовать эти 100 ядер на 5 узлах для запуска этой программы Python?
Я попробовал приведенный ниже сценарий и отправил задание в Slurm
Код: Выделить всё
#!/bin/bash
#SBATCH -n 100 # Number of CPU cores
#SBATCH -t 0-24:00 # wall time (D-HH:MM) set to 24h to test
#SBATCH -p slgrid # partition
#SBATCH -o myoutput.%j.out # STDOUT (%j = JobId)
#SBATCH -e myoutput.%j.err # STDERR (%j = JobId)
#SBATCH --mail-type=ALL # Send when job starts, stops, or fails
source /scratch/xxx/.venv/bin/activate ! the python package is install in venv, and I activate it.
python -m darwin.run_search template.txt tokens.json options.json ! The python run command
Опять же, мне интересно, это способ позволить такой программе Python использовать несколько ядер с разных узлов?
Или есть ли какой-нибудь пакет Python или что-то еще, что поможет мне достичь этой цели?
Заранее большое спасибо!
Я пробовал разные варианты пакетного сценария, но похоже, что эта программа Python на самом деле работает только на одном узле.>
Подробнее здесь: https://stackoverflow.com/questions/791 ... lelization
Мобильная версия