Question

En Python parallèle, pourquoi est-il nécessaire d'envelopper tous les modules de la fonction passée aura besoin ainsi que des variables et espaces de noms dans cet appel de soumission d'emploi - comment est-il nécessaire pour préserver au niveau du module des variables « globales »? (Si c'est tout ce qui se passe)

fonction d'envoi:

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()
Était-ce utile?

La solution

La raison pour laquelle pp fonctionne comme il le fait, est que cela fait une nouvelle instance de l'interpréteur Python pour tous les travailleurs, ce qui est tout à fait indépendant de tout ce qui a couru avant ou depuis. Cela garantit qu'il n'y a pas d'effets secondaires indésirables, tels que les importations de __future__ étant actif dans le processus de travail. Le problème est qu'il fait place des choses plus compliquées pour obtenir le droit, et dans mon expérience avec pp, pas particulièrement robuste. pp ne essayer de rendre les choses un peu plus facile pour l'utilisateur, mais semble présenter plus de problèmes qu'elle résout dans ses efforts pour le faire.

Si je devais écrire un code qui a été conçu pour être utilisé sur un cluster depuis le début, je finirais probablement à l'aide pp, mais je l'ai trouvé que l'adaptation du code existant au travail avec pp est un cauchemar.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top