Il giorno 01 aprile 2013 16:54, Daniele Varrazzo <p...@develer.com> ha scritto:
> Hai ragione: facendo andare in parallelo i core sfrutteresti meglio la > macchina, e il tuo problema non è I/O bound altrimenti non vedresti neanche > quel singolo core maxxato. > Esatto, è il mio punto di partenza questo. > Come farlo non è gratis e non c'è una ricetta generica. Se il tuo input è > su tanti file, lancia 4 processi in parallelo e fai lavorare ognuno su 1/4 > dell'input. Se il file di input è uno solo puoi spezzare il processo in due > parti: uno che legge l'input, lo spezza e ne manda i pezzi in una coda; > altri 3-4 processi che leggono dalla coda in round-robin e fanno il loro > lavoro sul pezzetto. Per questo tipo di lavori ZeroMQ è perfetto: ha poco > overhead e le primitive giuste per questo tipo di coordinazione. Come detto > non esistono ricette generiche, ma esistono dei pattern generici, e 0MQ > rende abbastanza semplice implementarli. > Non conosco quanto citi e quindi approfondirò sicuramente. Sono consapevole che nulla ti è regalato e che devi sporcarti le mani per ottenere i migliori risultati. > Tieni conto che, dopo l'elaborazione, passare i dati a MySQL come stai > probabilmente facendo (con delle INSERT) non è il modo più efficiente. Su > PostgreSQL usare COPY è almeno 20 volte più efficiente di INSERT per il > bulk-load dei dati. Se MySQL è opzionale come dici, abbandonalo e usa > postgres: psycopg offre supporto a COPY da Python < > http://initd.org/psycopg/**docs/usage.html#copy<http://initd.org/psycopg/docs/usage.html#copy>>. > Se resti in MySQL penso tu possa usare LOAD DATA INFILE per velocizzare il > caricamento, ma è un po' più articolato (devi salvare i dati in un file > temporaneo o creare una pipe). > Bene, come dicevo è opzionale l'utilizzo di MySQL e quindi analizzerò volentieri il passaggio a PostgreSQL, almeno un test lo farò sicuramente. Grazie per le risposte.
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python