为什么不同内核数量的多处理代码的运行时间相同?

时间:2019-06-20 23:36:25

标签: multiprocessing mpi slurm

我的代码有些奇怪。实际上,我有一个多处理代码。

因此,当我以1 cpu运行此代码时,大约需要218分钟。如果使用32 cpus和每个CPU 12 gb,则大约需要35分钟。 10 cpus和12 gb大约需要35分钟。注意,我的代码加载了两个文件,它们总共有10gb。

有人可以通过诊断帮助我如何检查为什么10和32核的运行时间相同吗?

通常情况下,使用32 cpus的时间应该更少,不是吗?

代码正在通过这样的脚本运行:

#!/bin/bash
#SBATCH --account=def-hmcheick
#SBATCH --cpus-per-task 32
#SBATCH --mem-per-cpu=12G
#SBATCH --time=02:00:00
module load python/3.5.4
source "/project/ENV3.5.4/bin/activate"

time mpirun python /project/myproject/executor.py

在executor.py中,我有一个字典,其中每个键都有一个值列表,我想将该键与该列表中的每个值进行比较。我怎样才能做到这一点?换句话说,我该如何传递要并行计算的键和值列表。我所做的是:

with concurrent.futures.ProcessPoolExecutor(32) as executor:
            for key, vector in executor.map(unwrap_self_alignment, zip([self]*len(keyList), keyList)):

0 个答案:

没有答案