concurrent.futures с мультиинест - PullRequest
0 голосов
/ 13 ноября 2018

Каков лучший пакет на основе Python, оптимизированный для многопроцессорной обработки с concurrent.futures?

У меня были проблемы с многоадресной рассылкой для использования всех моих процессоров с чем угодно, кроме multiprocessing.pool; но многопользовательские операции в python, похоже, не могут это использовать.

1 Ответ

0 голосов
/ 14 января 2019

В разделе о проблемах github для dynesty (одного из двух самых распространенных, чистых Python MultiNest) мы обсуждали это также

https://github.com/joshspeagle/dynesty/issues/100

Не было окончательного, окончательного объяснения, но мысль в том, что

(1) Функция стоимости недостаточно велика, чтобы требовать все ядра одновременно (2) Флаг начальной загрузки должен быть установлен в 0, чтобы избежать начальной загрузки; Этот трюк реализован для скорости, которая, кажется, мешает.

Я использовал Nestle (github.com/kbarbary/nestle) и Dynesty (github.com/joshspeagle/dynesty); похоже, они оба имеют эту проблему независимо от сложности функции стоимости.

Я имел большой успех, используя PyMultiNest (github.com/JohannesBuchner/PyMultiNest); но для этого требуется версия MultiNest на Фортране (github.com/JohannesBuchner/MultiNest), которую очень трудно установить правильно - необходимо вручную установить OpenMPI. И MultiNest, и OpenMPI могут иметь проблемы с компилятором в зависимости от ОС, системы и их конфигурации.

Я бы предложил использовать PyMultiNest, за исключением того, что его так сложно установить; Использование Dynesty и Nestle тривиально; но у них была эта проблема с полным распараллеливанием.

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