Python Multi-Processing Вопрос? - PullRequest
5 голосов
/ 01 июля 2011

У меня есть папка с 500 входными файлами (общий размер всех файлов ~ 500 [МБ]).

Я хотел бы написать сценарий python, который выполняет следующее:

(1) загружает все входные файлы в память

(2) инициализирует пустой список python, который будет использоваться позже ... см. Маркер (4)

(3) запуск 15 различных (независимых) процессов: каждый из них использует одни и те же входные данные [из (1)] - но использует различные алгоритмы для их обработки, таким образом генерируя разные результаты

(4) Я бы хотел, чтобы все независимые процессы [из шага (3)] сохранили свои выходные данные в одном и том же списке python [тот же список, который был инициализирован в шаге (2)]

Один раз все 15процессы завершили свою работу, у меня будет one python list, который включает в себя результаты всех 15 независимых процессов.

Мой вопрос: возможно ли сделать все это эффективно в python?если да, можете ли вы предоставить схему / пример кода, который иллюстрирует, как это сделать?

Примечание # 1: Я буду работать на сильном многоядерном сервере;поэтому цель здесь - использовать всю вычислительную мощность при совместном использовании некоторой памяти {input data, output list} среди всех независимых процессов.

Примечание № 2: Я работаю в среде Linux

1 Ответ

6 голосов
/ 01 июля 2011

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

...