[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