Erhalte Arbeiter ID in Sellerie

8

Ich möchte mit Sellerie Jobs auf einem GPU-Server mit vier Tesla-Karten ausführen. Ich betreibe den Sellerie-Arbeiter mit einem Pool von vier Arbeitern, so dass jede Karte immer einen Job hat.

Mein Problem ist, wie man die Arbeiter dazu anleitet, jede einzelne GPU zu beanspruchen. Zurzeit gehe ich davon aus, dass die Worker-Prozesse alle zusammenhängende Prozess-IDs haben sollten:

%Vor%

Allerdings funktioniert das nicht immer, d. h. wenn Arbeitsprozesse im Laufe der Zeit neu gestartet werden. Im Idealfall möchte ich die ID jedes Arbeiters direkt erhalten. Kann mir jemand sagen, ob es möglich ist, den Mitarbeiter innerhalb einer Aufgabe zu inspizieren, oder kann er eine andere Lösung vorschlagen, um die Aufträge auf die GPUs zu verteilen?

    
oceanhug 18.06.2013, 19:41
quelle

1 Antwort

11

Wenn Sie CELERYD_POOL = 'processes' verwenden, wird der Worker-Pool von billiard verarbeitet, was seinen 0-basierten Prozessindex offen legt:

%Vor%

Das index ist 0-basiert, und wenn ein Worker zufällig neu gestartet wird, behält es seinen Index bei.

Ich konnte jedoch keine Dokumentation zum index -Wert finden: /

    
Nicolas Cortot 18.06.2013, 21:22
quelle

Tags und Links