-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Il 17/11/2011 17:19, Matteo Perini ha scritto: > Ciao lista, > Vorrei sapere se è possibile utilizzare tutti i core della cpu per > eseguire calcoli gravosi.
Si. Come è possibile usare anche tutte le cpu dei computer in una rete. Il come è un altro discorso... > Ho guardato un po' in internet e come risposta ho trovato il > multithreading che ho già utilizzato un paio di volte. Il multithreading in Python non va bene, a meno di condizioni particolari (cerca su Internet Python GIL). > Però non riesco a capire se è possibile applicarlo anche ad un unico > comando. Che intendi come "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) > Scusa, ma perchè usi lambda? Nel tuo caso rende il codice meno leggibile. Fai un più semplice: def fp(v, x, y, phi): ... Le lambda dovrebbero essere usate *solo* se ti serve una funzione anonima (ad esempio per passarla come argomento ad un altra funzione). > > 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) Devi parallelizzare l'algoritmo, e di solito non è banale. In letteratura dovresti trovare algoritmi per l'ottimizzazione ai minimi quadrati paralleli, magari trovi anche implementazioni già pronte. Una volta che hai l'algoritmo, l'altro problema è l'implementazione (anche questo non banalissimo). Ciao Manlio -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAk7FR/UACgkQscQJ24LbaUQWyQCaAwJJ3RG49Tavy19BBSRDvXl3 9P0An1g1oS7rfLK4quLwRXUvsFqbXfEz =UcKu -----END PGP SIGNATURE----- _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python