Многопроцессорная обработка Python занимает значительно больше времени, чем последовательная обработка с использованием Python

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

Сообщение Anonymous »

Я пытаюсь сравнить эффективность модуля многопроцессорной обработки в Python, выполняя задачу с интенсивным использованием ЦП.
Последовательная задача:

Код: Выделить всё

import multiprocessing
import time

v1 = [0] * 5000000
v2 = [0] * 5000000

def worker1(nums):
global v1
for i in range(nums):
v1[i] = i*i

def worker2(nums):
global v2
for i in range(nums):
v2[i] = i*i*i

start = time.time()
worker1(5000000)
worker2(5000000)
end = time.time()

print(end-start)
Время выполнения последовательной задачи — ~ 1 секунда
Та же задача с использованием многопроцессорности:

Код: Выделить всё

import multiprocessing
import time

def worker1(nums,v1):
for i in range(nums):
v1[i] = i*i

def worker2(nums,v2):
for i in range(nums):
v2[i] = i*i*i

v1 = multiprocessing.Array('i',5000000)
v2 = multiprocessing.Array('i',5000000)

p1 = multiprocessing.Process(target=worker1, args = (5000000,v1))
p2 = multiprocessing.Process(target=worker2, args = (5000000,v2))

start = time.time()
p1.start()
p2.start()
p1.join()
p2.join()
end = time.time()

print(end-start)
Время, затрачиваемое на последовательную задачу — ~ 12 секунд
Разница между ними очень существенная, хотя я это понимаю в многопроцессорной обработке есть некоторые накладные расходы, она должна была быть быстрее, чем последовательная, верно?
Пожалуйста, дайте мне знать, если я делаю что-то неправильно или есть глупая ошибка, которую следует исправить .

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

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

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

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

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

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

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