Использование Python для выполнения программ на различных процессорах посредством многопроцессорной обработки.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Использование Python для выполнения программ на различных процессорах посредством многопроцессорной обработки.

Сообщение Anonymous »

Я хочу запускать разные исполняемые файлы на разных процессорах одновременно, поэтому я взял пример отсюда:
Есть ли способ назначить разные задания (процессы) определенному ядру в Linux с помощью Python?
и попытался запустить исполняемые файлы, однако цикл FOR ждет завершения исполняемого файла, чтобы назначить новый процесс. Есть ли способ без ожидания назначить новый процесс следующему ядру?
import os
from itertools import cycle
import multiprocessing as mp
import subprocess

def map_hack(AFF):
my_pid = os.getpid()
old_aff = os.sched_getaffinity(0)
os.sched_setaffinity(0,AFF)
return (my_pid, old_aff, os.sched_getaffinity(0))

PROCESSES = os.cpu_count()
_mycpus = cycle(os.sched_getaffinity(0))
cpus = [[next(_mycpus)] for x in range(PROCESSES)]

with mp.Pool(processes=PROCESSES) as pool:
for x in pool.map(map_hack, cpus, chunksize=1):
print("Try 2:My pid is {} and my old aff was {}, my new aff is {}".format(*x))
z = str( x[2])
z = z[:-1]
z = int( z[-1:])
print (z)
if (z == 0):
print("program waits for this executable to finish")
subprocess.run(["./exevision"])

pool.close()
pool.join()


Подробнее здесь: https://stackoverflow.com/questions/790 ... processing
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»