[Python] Utilizzo completo della cpu

Matteo Perini perini.matteo a gmail.com
Gio 17 Nov 2011 17:19:12 CET


Ciao lista,
Vorrei sapere se è possibile utilizzare tutti i core della cpu per 
eseguire calcoli gravosi.
Ho guardato un po' in internet e  come risposta ho trovato il 
multithreading che ho già utilizzato un paio di volte.
Però non riesco a capire se è possibile applicarlo anche ad un unico 
comando.
Mi spiego meglio.

ho una funzione fp non lineare che deve essere ottimizzata...
fp = lambda v, x,y, 
phi:(1+v[0]*phi+v[1]*x+v[2]*x*phi+v[3]*y+v[4]*y*phi+v[5]*x**2...
+v[6]*phi*x**2+v[7]*y**2+v[8]*phi*y**2+v[9]*x*y+v[10]*phi*x*y)/(v[11]+v[12]*phi...
+v[13]*x+v[14]*x*phi+v[15]*y+v[16]*y*phi+v[17]*x**2+v[18]*phi*x**2+v[19]*y**2...
+v[20]*phi*y**2+v[21]*x*y+v[22]*phi*x*y)


imposto la funzione obiettivo
e = lambda v, x,y, phi, z: (fp(v,x,y,phi)-z)

e infine avvio il processo di ottimizzazzione ai minimi quadrati
v, success = leastsq(e, v0, args=(x,y,phi,z), maxfev=10000)

Questo va avanti per minuti e usa un solo core.
C'è un modo per suddividere i calcoli di leastsq tra più core?
(spero di si)
Grazie a tutti dell'aiuto sempre pronto
Ciao
Matteo


Maggiori informazioni sulla lista Python