[Python] multiprocessing
Ciao a tutti, tempo fa ho iniziato una discussione sul multi-threading da cui è emerso che per lanciare più threads con python per aumentare le prestazioni è più conveniente utilizzare la libreria multiprocessing. Tuttavia no so se la mia scelta è sensata o meno. Ho a disposizione più di un processore multi-core. Il mio script effettua un loop su una lista di file ed esegue per ogni iterazione una specifica funzione su ogni file, per esempio: miaLista=[file1,file2,file3] for file in miaLista: miaFunzione(file) Vorrei poter lanciare la mia funzione sulla lista sfruttando più processi. Se scelgo di avviare 2 processi, i primi due file della lista vengono analizzati. Come faccio a dire allo script di continuare ad eseguire la funzione sul file successivo una volta che uno dei primi due processi è terminato? Grazie in anticipo, Ernesto ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] efficiente data storage
Leggendo qualcosa in merito sembra possa essere la soluzione giusta. Tuttavia, non saprei come utilizzarlo in python, ovvero mi piacerebbe avere qualche esempio concreto. Dove posso vedere (ho saltato qualcosa nel link di sopra)? Allora, non l'ho mai usato personalmente, mi era solo venuto in mente mentre leggevo la tua richiesta. Per quanto riguarda il modulo python, lo trovi qui: http://github.com/andymccurdy/redis-py/. Nel README del modulo sta scritto: Documentation is in redis.py as docstrings and doctests. You can also view the Redis API at http://code.google.com/p/redis/wiki/CommandReference; Grazie mille per il suggerimento. Sono riuscito a far funzionare il tutto. Il sistema è abbastanza potente anche se un po' lento nella fase di upload o almeno per le mie finalità. Ernesto ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] efficiente data storage
Il 17 dicembre 2009 12.27, Ernesto e.pica...@unical.it ha scritto: Grazie mille per il suggerimento. Sono riuscito a far funzionare il tutto. Il sistema è abbastanza potente anche se un po' lento nella fase di upload o almeno per le mie finalità. Prego, figurati. Per quanto riguarda la lentezza in upload, prova a contattare Salvatore Sanfilippo (antirez, lo sviluppatore di Redis) magari riuscite insieme ad individuare il collo di bottiglia, se ce fosse uno. Saluti, -- Marco Dalla Stella web: http://thediracsea.org twitter: http://twitter.com/kra1iz3c ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] multiprocessing
2009/12/17 Ernesto e.pica...@unical.it: Ciao a tutti, tempo fa ho iniziato una discussione sul multi-threading da cui è emerso che per lanciare più threads con python per aumentare le prestazioni è più conveniente utilizzare la libreria multiprocessing. Tuttavia no so se la mia scelta è sensata o meno. Ho a disposizione più di un processore multi-core. Il mio script effettua un loop su una lista di file ed esegue per ogni iterazione una specifica funzione su ogni file, per esempio: miaLista=[file1,file2,file3] for file in miaLista: miaFunzione(file) Vorrei poter lanciare la mia funzione sulla lista sfruttando più processi. Se scelgo di avviare 2 processi, i primi due file della lista vengono analizzati. Come faccio a dire allo script di continuare ad eseguire la funzione sul file successivo una volta che uno dei primi due processi è terminato? puoi usare il pool del modulo multiprocessing. http://docs.python.org/library/multiprocessing.html#module-multiprocessing.pool oppure in alternativa un lock (però mi sa che cosi ti vai ad impantanare più di quanto ti serve). Ciao Fabrizio ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python