Я пытаюсь запустить некоторый параллельный код в кластере. Кластер использует slurm, и мой код находится в python. Код использует несколько ядер, когда я запускаю его на своем компьютере. Тем не менее, когда я пытаюсь запустить код в кластере, он работает очень медленно и не использует несколько ядер.
Вот соответствующий код из python:
from multiprocessing import Pool
Nz_i=range(1,13)
p=Pool()
p.map(Err_Calc,Nz_i)
p.close()
p.join()
, функция Err_Calc
определена ранее. Я не думаю, что его определение уместно.
SBATCH
, который я использую для запуска кода в кластере, выглядит следующим образом:
#!/bin/bash
#SBATCH -N 1
#SBATCH -p RM-shared
#SBATCH --ntasks-per-node 13
#SBATCH -t 03:10:00
module load python/intel_2.7.14
python Err_vs_Nz_Cl.py
Файл Err_vs_Nz_Cl.py
содержит код, который я показал выше. Я ожидаю, что этот SBATCH
предоставит мне 13 ядер, но код, похоже, использует только 1 ядро или, возможно, работает медленно по какой-то другой причине. Кто-нибудь знает, что идет не так?