Я пытаюсь использовать python для получения некоторой производительности для задачи, которая может быть сильно распараллелена с помощью http://docs.python.org/library/multiprocessing.Как выбрать chunksize для многопроцессорности python с большими наборами данных
При взгляде на свою библиотеку они говорят, что используют размер блока для очень длинных итераций. Теперь, мой итерабельный недолго, один из содержащихся в нем dicts: ~ 100000 записей, с кортежами в качестве ключей и массивами numpy для значений.
Как я могу установить chunksize для обработки этого и как я могу быстро передать эти данные?
спасибо.
О, это имеет смысл. В настоящее время рабочие захватывают гигантский диктофон, копируют его, модифицируют, а затем отправляют обратно свою версию. (не совсем легкий). Поскольку вы, похоже, знакомы с его многопроцессорностью на python: если гигантский диктофон, где читать только, есть способ разрешить всем рабочим доступ к своим данным по мере необходимости эффективно? (это было бы легко с потоками, но с многопроцессорной обработкой это становится сложно быстро) – Sandro
Если вы не в Windows, и вы делаете это «только для чтения», являетесь частью процесса * перед *, вы создаете рабочих и храните его в (например) глобальном или закрытом локальном, все рабочие могут получить к нему доступ, не страдая сериализацией. –
Э-э, я просто понимаю, что использую неправильную терминологию. Я использую функцию Pool.map_async() для выполнения всего этого. Правильно ли я предполагаю, что с помощью карты нет решения, только путем разветвления. Есть ли серьезные затраты на объединение вместе? – Sandro