multiprocessing vs candygram

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
mit
User
Beiträge: 285
Registriert: Dienstag 16. September 2008, 10:00

Hallo,
warum ist multiprocessing ( http://docs.python.org/dev/library/mult ... processing ) default in Python und nicht candygram ( http://candygram.sourceforge.net/node6.html )?

Vielen Dank in Vorraus.
BlackJack

@mit: Weil es keiner benutzen würde, und die Leute sich beschweren würden, dass sie statt etwas wo sie erst einmal Erlang-Bücher lesen sollen um es zu verstehen, viel lieber etwas hätten was wie `threading` funktioniert, aber eben wirklich parallel. ;-)

Apropos wirklich parallel: Dir ist klar das `candygram` im Hintergrund Threads benutzt, also in CPython die gleichen Einschränkungen hat wie das `threading`-Modul, und damit kein Ersatz für `multiprocessing` wäre!?

Und das Ziel wären auch keine Betriebssystem-Prozesse gewesen, wie bei `multiprocessing`, sondern "microthreads" wie in Erlang -- wenn die Candygram-Entwicklung nicht 2004 eingeschlafen wäre. Das was Erlang "Prozess" nennt, hat nämlich weniger mit *parallel* ausgeführtem Code zu tun. Das ist eher kooperatives Multitasking. Wie zum Beispiel "greenlets" bei Stackless-Python. Das Ziel und der Vorteil bei Erlang ist es, mehrere zehn- oder gar hunderttausende von diesen "Prozessen" zu haben, was die üblichen Betriebssysteme weder mit Prozessen, noch mit Threads hin bekommen.
mit
User
Beiträge: 285
Registriert: Dienstag 16. September 2008, 10:00

Danke fuer die Antwort. Wie gut ist Parallel Python ( http://www.parallelpython.com/ ) verglichen mit multiprocessing?
BlackJack

@mit: Nach welchen Kriterien? Parallel Python kann Aufgaben auf mehrere Rechner verteilen, `multiprocessing` beschränkt sich auf einen Rechner. Dafür erscheint mir die Übergabe von Funktionen samt expliziter Angabe von verwendeten Modulen und abhängigen Funktionen etwas umständlich.
Antworten