0

Я заинтересован в применении модуля многопроцессорности Python (или любого подходящего эквивалента) для ускорения независимой обработки нескольких файлов данных. В настоящее время код обработки ограничен ЦП на одном ядре, т.е. 100% -ный процессор, пока он не завершится.Многоядерная обработка независимых заданий

У меня есть несколько файлов данных, каждый из которых требует некоторых простых, но относительно интенсивных операций процессора. Операции обработки были добавлены в одну функцию, которая обрабатывает файл и несколько других аргументов. Поскольку каждая операция обработки полностью независима, многоядерная обработка представляется идеальным решением.

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

В сущности, я хочу использовать все 8 ядер в своей машине, чтобы пережевывать операцию обработки, используя систему очередей заданий. В начале одновременно обрабатываются 8 файлов, 1 обработка файлов на каждом ядре. Когда один из ядер завершил свои операции обработки, я хочу, чтобы он обработал следующий файл в очереди. Этот цикл продолжается до тех пор, пока все файлы не будут обработаны. Поскольку операции обработки являются независимыми, не требуется никакой взаимной связи.

Есть ли у кого-нибудь простой пример того, как это сделать в Python?

Благодаря

+0

Это может быть полезно прочитать для вас: https://www.praetorian.com/blog/multi-core-and-distributed-programming-in-python – Dyrborg

+0

https://mikecvet.wordpress.com/2010/ 07/02/parallel-mapreduce-in-python/может дать вам хорошие результаты. – boardrider

ответ

0

Если вы не против внешнего бегуна и связанного с ним над головой его, один из возможных вариантов является использование очереди задач, таких как Celery. Он содержит все необходимые механизмы из коробки. Вам просто нужно обернуть ваши отдельные рабочие единицы в декораторе @task и вставить их в очередь.

+0

Спасибо за ваш ответ. Я надеялся использовать «стандартный» Python, где это возможно. т.е. минимизировать внешние пакеты, такие как бегуны – Mark

Смежные вопросы