Si vous êtes prêt à installer par pip un paquetage open source, vous devriez considérer les points suivants Ray qui, parmi les frameworks de cluster Python, est probablement l'option qui se rapproche le plus de l'expérience Python monofilaire. Il vous permet de paralléliser à la fois des fonctions (en tant que tâches) et des classes à état (en tant qu'acteurs) et effectue automatiquement le transport et la sérialisation des données ainsi que la propagation des messages d'exception. Il permet également une flexibilité similaire à celle de Python normal (les acteurs peuvent être transmis, les tâches peuvent appeler d'autres tâches, il peut y avoir des dépendances de données arbitraires, etc.) Plus d'informations à ce sujet dans le documentation .
À titre d'exemple, voici comment vous feriez votre exemple de carte multitraitement dans Ray :
import ray
ray.init()
@ray.remote
def mapping_function(input):
return input + 1
results = ray.get([mapping_function.remote(i) for i in range(100)])
L'API est un peu différente de l'API de multiprocessing de Python, mais devrait être plus facile à utiliser. Il existe un guide tutoriel qui décrit comment gérer les dépendances des données et les acteurs, etc.
Vous pouvez installer Ray avec "pip install ray" et ensuite exécuter le code ci-dessus sur un seul nœud, ou il est également facile de mettre en place un cluster, voir Support du cloud y Soutien aux clusters
Clause de non-responsabilité : je suis l'un des développeurs de Ray.
2 votes
Essayez peut-être JUG : paquets.python.org/Jug