Hi
Ich arbeite grad mit Python 2.7 und habe gemerkt, dass Python nur 1 Kern von 4 benutzt.
Kann ich daran etwas ändern?
Weiter verwende ich:
- numpy 1.6.1
- scipy 0.9.0
- matplotlib 1.0.1
alles in der 32er Version, da keine 64er vorhanden
Kann ich irgend was machen, dass alle Kerne verwendet werden?
Python mit meinem Quad Core
@BlackJack
Waeren bei Numpy nicht schon threads ausreichend? Das heavy lifting ist doch in C, und gibt doch hoffentlich das GIL frei.
Waeren bei Numpy nicht schon threads ausreichend? Das heavy lifting ist doch in C, und gibt doch hoffentlich das GIL frei.
@deets: Wenn `numpy` das GIL hinreichend freigibt, würde das wohl auch ausreichen.
Das hängt davon ab,
- welche Funktionen aufgerufen werden (nicht alles ist parallelisiert)
- "wie groß die Herausforderung ist" (nicht alles lohnt sich parallel aufgerufen zu werden, numpy entscheidet teils selbständig)
- und ob eine parallelisierte BLAS/ATLAS-Version vorliegt.
Etwas präzisere und detaillierte info hier.
Gruß,
Christian
- welche Funktionen aufgerufen werden (nicht alles ist parallelisiert)
- "wie groß die Herausforderung ist" (nicht alles lohnt sich parallel aufgerufen zu werden, numpy entscheidet teils selbständig)
- und ob eine parallelisierte BLAS/ATLAS-Version vorliegt.
Etwas präzisere und detaillierte info hier.
Gruß,
Christian
Das heißt aber unterm Strich, dass ich die einzelnen Teile zur Berechnung selber festlegen muss.
Oder?
Jetzt habe ich eine Matrix-Berechnung, die immer und immer wieder durchgeführt werden muss,
d.h. ich sitzte für einen Durchlauf etwa 1 Stunde.
Ich brauche leider einige Tausend.
Gibt es keine Möglichkeit, dass das System das selber aufteilt?
Wird wohl aber nicht klappen glaub ich, da die Durchgänge nicht gleichzeitig ablaufen können.
Oder?
Jetzt habe ich eine Matrix-Berechnung, die immer und immer wieder durchgeführt werden muss,
d.h. ich sitzte für einen Durchlauf etwa 1 Stunde.
Ich brauche leider einige Tausend.
Gibt es keine Möglichkeit, dass das System das selber aufteilt?
Wird wohl aber nicht klappen glaub ich, da die Durchgänge nicht gleichzeitig ablaufen können.
-
- User
- Beiträge: 65
- Registriert: Samstag 9. Juni 2007, 23:45
Ich weiß nicht genau von was es abhängig ist, ob eine Matrixoperation auf mehreren Kernen berechnet werden kann, oder nicht. Aber du kannst ja mal testen, ob es bei dir überhaupt generell funktioniert:Jetzt habe ich eine Matrix-Berechnung, die immer und immer wieder durchgeführt werden muss [...]
Code: Alles auswählen
a = numpy.random.rand(10000, 500)
b = numpy.random.rand(500, 10000)
c = numpy.dot(a, b)
-
- User
- Beiträge: 65
- Registriert: Samstag 9. Juni 2007, 23:45
Ich kann es leider nicht ausprobieren. Aber zumindest gibt es ATLAS+LAPACK-Pakete auch für 32-bit Ubuntu.
Welches Betriebssystem nutzt du denn?
Welches Betriebssystem nutzt du denn?