<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">Il giorno 20 maggio 2016 14:12, Pietro Battiston <span dir="ltr"><<a href="mailto:ml@pietrobattiston.it" target="_blank">ml@pietrobattiston.it</a>></span> ha scritto:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Il giorno ven, 20/05/2016 alle 11.56 +0200, Marco Beri ha scritto:<br>
> 2016-05-20 11:46 GMT+02:00 Marco Beri <<a href="mailto:marcoberi@gmail.com">marcoberi@gmail.com</a>>:<br>
> > 2016-05-20 11:39 GMT+02:00 Strap <<a href="mailto:lab@strap.it">lab@strap.it</a>>:<br>
> > > Ciao a tutti,<br>
> > > per curiosità, ma soprattutto per vedere l'effetto che fa :-P,<br>
> > > condivido con<br>
> > > voi il seguente link: <a href="https://www.peterbe.com/plog/deco" rel="noreferrer" target="_blank">https://www.peterbe.com/plog/deco</a><br>
> > Bello! Certo che tre sleep(5) in parallelo vanno bene.<br>
> > Vedo meno bene tre loop che fanno robe cpu intensive :-)<br>
> ><br>
> Ho parlato troppo presto... Poi nel resto dell'articolo fa degli<br>
> esempi molto più fighi!<br>
><br>
<br>
Beh, l'obiezione non era insensata...<br>
<a href="https://www.peterbe.com/plog/time-to-do-concurrent-cpu-bound-work" rel="noreferrer" target="_blank">https://www.peterbe.com/plog/time-to-do-concurrent-cpu-bound-work</a><br>
menziona un calo di efficienza (ovviamente in termini di tempo di<br>
calcolo totale) notevole.<br>
<br>
Le due cose che _non_ menziona, e che credo possano essere rilevanti,<br>
sono:<br>
- il suo Macbook Pro ha (credo) 4 core fisici: se ne vede 8 è grazie<br>
all'hyperthreading, che però è meno effettivo (vado a braccio su cose<br>
lette qua e là) se tutti i processi "fanno la stessa cosa" (ma è<br>
curioso che comunque da 2 a 3 e da 3 a 4 processi un calo netto ci sia<br>
già)<br></blockquote><div><br></div><div>mica tanto curioso: anche il sistema vuol dire la sua, e se gli chiedi</div><div>tutti i core te li concede 'a singhiozzo'. Già imbattuto, e spesso, nel caso.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
- "multiprocessing" implica (a meno di eccezioni notevoli) "pickle di<br>
tutto"<br></blockquote><div><br></div><div>? cioè i dati vengono trasmessi via pickle e non via puntatori? Sure?</div><div>O invece non ho capito cosa affermi? Sorry per la mia ignoranza, ma</div><div>sono anziano e con i capelli MOLTO grigi. </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
(Per la cronaca: ci infila un paio di panzane, tipo che il secondo<br>
grafico dimostri "The individual work withing each process is not<br>
generally slowed down much", e che la curva blu sia "reverse<br>
logarithmic")<br></blockquote><div><br></div><div>Lo farò girare, ma in ogni caso il primo giudizio è solo soggettivo:</div><div>conta poco. Per la seconda curva hai ragione: sembra più che altro</div><div>una semplice proporzionalità inversa al numero dei thread fino ai 3.</div><div>Oltre, secondo me, si nota l'effetto sistema.</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Mi stupisce peraltro un po' che pydron, la libreria a cui i creatori di<br>
deco dicono di ispirarsi, sia stata pensata per l'astrofisica... perché<br>
per quel che riguarda le applicazioni scientifiche (o più precisamente,<br>
ovunque ci sia un array numpy), dask ( <a href="http://dask.pydata.org" rel="noreferrer" target="_blank">http://dask.pydata.org</a> ) mi<br>
sembra la salvezza (finora per quel che mi riguarda ci ho fatto solo<br>
prove molto semplici, ma mi sembra che batta ad occhi chiusi un<br>
approccio standard con multiprocessing o un suo wrapper).,<br></blockquote><div><br></div><div>Toh: un fiorire di suggerimenti :-) Bene, sarò occupato anche questo w.e. :-)</div><div> <br></div><div>Ma in realtà mi piace la semplicità dell'approccio. Il che vale tempo</div><div>nello sviluppare. L'unica cosa che non ho davvero capito è quanto sia</div><div>thread-safe maneggiare un dizionario in quel modo. Ci giocherò.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Pietro<br></blockquote><div><br></div><div>Alex. </div></div></div></div>