Я пытаюсь распараллелить программу python (program_to_parallelize.py) на 16 подпроцессов на моем 16-ядерном компьютере. Я использую этот код, который является частью сценария Python:
import subprocess
subprocess.call("mpiexec -n 16 python program_to_parallelize.py", shell=True)
. Он выполняется без каких-либо ошибок, но когда я смотрю на использование ЦП, я вижу, что все подпроцессы работают на одном ЦП. (Нажмите здесь , чтобы увидеть, что я получу, набрав «top 1» в командной строке). Но я бы предпочел, чтобы каждый из 16 процессов занимал 100% одного ЦП, а не все разделял первый.
Я работаю на 16 ядрах Ubuntu 16.04.6 LTS. Я использую версию 3.0.3 mpi4py Я использую версию 3.3.2 mpiexe c