Почему параллельный Python работает так, как он делает?

StackOverflow https://stackoverflow.com/questions/4074297

Вопрос

В параллельном Python, почему необходимо обернуть любые модули. Прошедшая функция, понадобится вместе с переменными и пространствами имен в этом вызове заданий, насколько это необходимо, чтобы сохранить уровень модуля «Глобальные» переменные? (если это все, что происходит)

Отправить функцию:

submit(self, func, args=(), depfuncs=(), modules=(), callback=None, callbackargs=(),group='default', globals=None)
    Submits function to the execution queue

    func - function to be executed
    args - tuple with arguments of the 'func'
    depfuncs - tuple with functions which might be called from 'func'
    modules - tuple with module names to import
    callback - callback function which will be called with argument 
        list equal to callbackargs+(result,) 
        as soon as calculation is done
    callbackargs - additional arguments for callback function
    group - job group, is used when wait(group) is called to wait for
    jobs in a given group to finish
    globals - dictionary from which all modules, functions and classes
    will be imported, for instance: globals=globals()
Это было полезно?

Решение

Причина этого pp Работает так, как он делает, заключается в том, что он делает свежий экземпляр интерпретатора Python для каждого работника, который полностью независим от всего, что запускается до или с. Это гарантирует, что нет непреднамеренных побочных эффектов, таких как __future__ Импорт активен в рабочем процессе. Проблема с этим заключается в том, что это делает все более сложнее, чтобы получить право, а в моем опыте pp, не особенно крепкий. pp делает Попробуйте сделать вещи немного проще для пользователя, но, похоже, введет больше проблем, чем решает в его усилиях по этому поводу.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top