Wenn Sie Worker-Ressourcen (http://distributed.readthedocs.io/en/latest/resources.html) in verteilten Multi-Processing-Worker definieren, ist der Ressourcenpool für alle Prozesse definiert?Diek-Worker-Ressourcen für verteilte Worker
Zum Beispiel auf dem Arbeiter-Host Ich betreiben:
dask-worker --nprocs 8 --resources HOST=1
Wenn ich nun Aufgabe einreichen (n), die resources={"HOST":1}
erforderlich macht diese Garantie, dass nur einer der Prozesse auf dem Computer diese Aufgabe ausgeführt wird zu einem bestimmten Zeitpunkt?
Ich sehe .. also in meinem Beispiel, was wäre der Weg, um sicherzustellen, dass nur einer dieser Arbeiter bestimmte Aufgabe ausführt? Wenn ich nprocs weiterhin verwende und die Anforderung HOST: 1 definiere, werden alle Prozesse gleichzeitig ausgeführt. Auf der anderen Seite, wenn ich HOST: 8 brauche, dann ... wird keiner von ihnen laufen? Gleiche Frage für getrennte Prozesse ohne gemeinsames Kindermädchen. – evilkonrex
Ressourcen beschränken Aufgaben nicht mehrfach, sie beschränken, welche Mitarbeiter welche Aufgaben ausführen können. Das obige Beispiel, das "--nprocs" vermeidet, sollte vollständig explizit sein. Ich empfehle, das Schlüsselwort '--nprocs' zu vermeiden. – MRocklin
Ich sehe, wir werden von --nprocs zu unserem eigenen Prozessmanager wechseln und mehrere Prozesse explizit starten. Lassen Sie mich meinen Fall ein wenig mehr erklären. Die Idee ist, dass Arbeitsprozesse auf einem einzelnen Host immer noch bestimmte Ressourcen teilen. Wenn ich also eine Aufgabe ausführe, die alle Ressourcen auf dem Host benötigt, kann nur einer der Worker auf diesem Host gleichzeitig ausgeführt werden. Ich denke, es ist einfach mit Multithread-Worker, aber gibt es eine Funktion, die diesen Fall für mehrere Arbeitsprozesse unterstützt? PS - wir können wahrscheinlich einige Ressourcen-Sync in unserem Worker-Code implementieren, aber es wird komplexer – evilkonrex