При использовании многопроцессорной обработки Python что считается как ввод-вывод, а что считается ограничением процессора? - PullRequest
0 голосов
/ 08 апреля 2019

Это общий вопрос.Я разработал некоторый код, который изначально был просто длинной серией команд.Как только все заработало, я попытался ускорить время выполнения, используя многопроцессорный модуль Python.Тем не менее, кажется, что польза от старого последовательного кода и нового параллельного кода почти одинакова, а обработка этого списка файлов занимает почти одинаковое время.

Чтобы получить некоторые подробности.Код идентифицирует список файлов, и для каждого файла:

  • Использует модуль регулярных выражений для поиска кодов начала и конца данных
  • извлекает данные в pandas df
  • нарезает часть df и создает массив numpy и сплайн данных
  • извлекает некоторые значения (max, min и т. Д.) Из данных numpy
  • отображает сплайн с помощью matplotlib

Последовательная версия скрипта перебирает список файлов, в то время как многопроцессорная версия скрипта, по сути, передает список файлов в функцию pool.map (которая, я думаю, затем назначает файл на процессор).

Я знал, что операции ввода-вывода плохо масштабируются с помощью многопроцессорного модуля.Но я думал, что единственной операцией ввода-вывода здесь является первоначальное открытие и чтение каждого файла.Мое понимание того, что представляет собой ввод-вывод, ошибочно?Я также читал, что numpy плохо работает с многопроцессорностью, что также может быть частью проблемы.

На самом деле, во время записи мне пришло в голову, что ввод / вывод относится к чтению и записи в память, а не только на диск (думаю, пенни упал).Этот скрипт выполняет много вызовов и генерирует новые массивы, а также новые списки, так что теперь я думаю, что все они представляют собой маневры ввода / вывода, и поэтому улучшения не происходит?

Итак, я на самом деле не прошу исправить, а просто объяснить, если мое понимание неверно.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...