[Python] Migliorare le prestazioni usando i core?
Manlio Perillo
manlio.perillo a gmail.com
Dom 31 Mar 2013 22:02:39 CEST
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Il 31/03/2013 21:49, Aplemaser ha scritto:
> [...]
>
> Il codice è molto lungo e diviso in diversi file, copiarlo su pastebin
> non è davvero possibile. In linea di massima da fonti diverse che sono
> file CSV in prevalenza, ma anche alcune viste logiche (via ODBC), creo
> un solo database con tutti i dati, dopo averli mergiati e manipolati
> secondo necessità.
>
Ok.
Allora andiamo con ordine.
Che database usi?
Quanto tempo impiega il tuo codice, e quanto tempo vorresti impiegasse?
Ciascun file CSV e vista ODBC serve per inserire i dati in una tabella
diversa?
>
>
> In generale per parallelizzare del codice, lo devi partizionare in N
> pezzi indipendenti, ed eseguire ciascun pezzo in un thread. Di solito N
> = <numero di core> oppure N = n * <numero di core>, dipende da cosa fa
> il codice, in particolare dal tempo speso in I/O).
>
>
> Non mi è familiare, ma ho capito il senso.
Supponi che ciascun file CSV contenga i dati da inserire in una sola
tabella.
Invece di processare ciascun file CSV in seguenza, puoi farlo in
parallelo usando un processo separato.
Ciascun processo si occuperà di:
- - aprire il file CSV
- - aprire una connessione al database
- - fare il parsing del file CSV
- - inserire i dati nel database
Dai una occhiata alla documentazione del modulo multiprocessing,
disponibile da Python 2.6.
Ciao Manlio
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iEYEARECAAYFAlFYll8ACgkQscQJ24LbaUQjwACeJjYTWnsFaNeUUW17llTAsXyf
5aYAn2E0yQ75wOpAZDp0KtL1/4gzeiug
=jwtj
-----END PGP SIGNATURE-----
Maggiori informazioni sulla lista
Python