Параллельный Python не дает ошибок, но параллельная обработка не происходит

Я новичок в Python и Parallel Python. Проблема в том, что у меня есть 4 задания: создание 4 масок, умножение их на мое входное изображение с последующей дальнейшей обработкой. Ниже приведен фрагмент кода, написанный для параллельной обработки.

inputs = range(4)
jobs = [(inpt, job_server.submit(PP, (inpt,input_data,size,(imageMultiply,blockCounter,imageQuantizer ), ("numpy","Image"))) for inpt in inputs]
job_server.print_stats()
for inpt, job in jobs:
  print "No of blocks in ", inpt, "is", job() ## accessing the result of pp

Вывод, который я получаю:

Starting pp with 4 workers
Job execution statistics:
 job count | % of all jobs | job time sum | time per job | job server
         4 |        100.00 |       0.0000 |     0.000000 | local
Time elapsed since server creation 0.0219678878784
4 active tasks, 4 cores

No of blocks in  0 is 52
No of blocks in  1 is 61
No of blocks in  2 is 104
No of blocks in  3 is 48

Я не могу понять, что если он не обрабатывается одновременно, я все еще могу получить желаемый результат, но затраченное время слишком велико, поэтому я хочу использовать стр. Пожалуйста, помогите мне с этим, чтобы я мог успешно сократить время. Заранее спасибо...

1 ответ

От твоего print_stats() вывод (переформатирован здесь,)

Job execution statistics:
 job count | % of all jobs | job time sum | time per job | job server
         4 |        100.00 |      16.0401 |     4.010028 | local
Time elapsed since server creation 4.04183793068
0 active tasks, 4 cores

все вроде бы хорошо. У вас есть 4 ядра процессора; Вы можете выполнить 4 задания в течение 4 секунд после создания сервера заданий; система потратила всего 16 процессорных секунд, чтобы выполнить все задания.

Вы можете попробовать top -H, htop или же Windows Sysinternals Process Monitor наблюдать за потреблением процессора в режиме реального времени.

Другие вопросы по тегам