Многопроцестра медленнее, чем последовательная обработка в окнах (но не в Linux)Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Многопроцестра медленнее, чем последовательная обработка в окнах (но не в Linux)

Сообщение Anonymous »

Я пытаюсь параллелизировать для цикла , чтобы ускорить мой код, поскольку операции обработки цикла являются независимыми. Следуя онлайн -учебным пособиям, кажется, что стандартная многопроцессорная библиотека < /code> в Python - это хорошее начало, и я получил это для основных примеров. Однако, запустив один и тот же код на Linux, приводит к ускорению параллельной обработки ~ 25%по сравнению с серийным выполнением. Тем не менее, я не полностью понимаю это и задаюсь вопросом, может ли кто-нибудь подтвердить это, пожалуйста? < /p>

-> Если да, то может ли это быть избегать путем каким-то образом передачи копии (например, использования DeepCopy) класса в новые процессы? Я создал примерную структуру в стиле Pseucode, которая, как мы надеемся, показывает проблему. < /P>

# Imports
from my_package import MyClass
imports many other packages / functions

# Initialization (instantiate class and call slow functions that get it ready for processing)
my_class = Class()
my_class.set_up(input1=1, input2=2)

# Define main processing function to be used in loop
def calculation(_input_data):
# Perform some functions on _input_data
......
# Call method of instantiate class to act on data
return my_class.class_func(_input_data)

input_data = np.linspace(0, 1, 50)
output_data = np.zeros_like(input_data)

# For Loop (SERIAL implementation)
for i, x in enumerate(input_data):
output_data = calculation(x)

# PARALLEL implementation (this doesn't work well!)
with multiprocessing.Pool(processes=4) as pool:
results = pool.map_async(calculation, input_data)
results.wait()
output_data = results.get()
< /code>

Изменить: я не верю, что вопрос является дубликатом предложенного одного, поскольку это связано с разницей в Windows и Linunx, что вообще не упоминается в предлагаемом дубликате. < /p>

Подробнее здесь: https://stackoverflow.com/questions/524 ... t-in-linux
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

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

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