Я пытаюсь параллелизировать для цикла , чтобы ускорить мой код, поскольку операции обработки цикла являются независимыми. Следуя онлайн -учебным пособиям, кажется, что стандартная многопроцессорная библиотека < /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
Многопроцестра медленнее, чем последовательная обработка в окнах (но не в Linux) ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Многопроцестра не работает на моем компьютере, но работает на компьютере моей компании
Anonymous » » в форуме Python - 0 Ответы
- 41 Просмотры
-
Последнее сообщение Anonymous
-