-
Gruppo ufficiale della community Python Italia https://python.it Codice di Condotta: https://github.com/pythonitalia/code-of-conducts/blob/master/online/italian.md
Che ni notebook non è presente nella cartella dove c'è venv e quindi quando eseguo la cella del notebook mi da errore di import
Читать полностью…
Salve a tutti, domanda ma su Collab è possibile usare uv?
Читать полностью…
Comunque credo che riscrivero' la funzione in modo da fare prima tutte le cose pythoniche e poi chiamare una funzione C parallelizzata con OpenMP.. grazie comunque!
Читать полностью…
Puoi provare a settare l'affinity lato Python, ma non so quanto aiuti
Читать полностью…
certo, ho una CPU con 2 thread fisici e vorrei che i chunk venissero eseguiti su due thread fisici dello stesso core cosi - essendo che condividono le stesse linee di cache - ottimizzo il trasferimento di memoria da RAM a cache
Читать полностью…
Posso sapere cosa intendi per “thread dello stesso core”? Non sto capendo se stai chiedendo una cosa o il suo opposto
Читать полностью…
come viene fatto il pinning dei thread sui thread del core? o e' assicurato che threading usera' i thread dello stesso core?
Читать полностью…
Una roba del genere
import threadingЧитать полностью…
import time
def worker(chunk):
elaborate(chunk)
threads = []
for ichunk in range(nchunks):
t = threading.Thread(target=worker, args=(ichunk,))
t.start()
threads.append(t)
for t in threads:
t.join()
print("All threads completed")
potresti provare bocpy, fresco fresco da mamma microslop :P
Читать полностью…
microslop ha fatto anche cose buone. ad esempio https://microsoft.github.io/bocpy/
Читать полностью…
Cerco un developer che possa realizzare uno script python, per fare scraping, contattatemi direttamente in privato, grazie.
Читать полностью…
Ma non mi vedo il codice nel notebook mi da errore negli import
Читать полностью…
Sì, scusami, dalla prima descrizione avevo frainteso e pensavo volessi usare due thread sullo stesso core per l’intero lavoro, non semplicemente di distribuire i thread su tutti i core in modo ottimale
Читать полностью…
si o hyperthreading su Intel,ma ecco, non volevo necessarimente nemmeno soffermarmi sull'hyperthreading, se ne spawno 8 di thread vorrei che coprano i thread dei core della stessa regione NUMA
Читать полностью…
quello che temevo, speravo ci fosse una libreria che cercasse di otimmizzare l'uso almeno delle regioni NUMA
Читать полностью…
I thread di Python son pthread, non green thread, decide l'OS lo scheduling
Читать полностью…
Ovviamente dipende anche dalla funzione C, se si tiene il lock GIL non parallelizzi nulla
Читать полностью…
ho visto il messaggio di prima, sembra un po' un overshoot perche' mi pare centrato sul cosidetto "task-based parallelism", mentre io voglio parallelizzare un ciclo for... anche se ho letto spesso la parola "core" nella loro guida quindi almeno forse il punto (1) lo rispettano... speravo in una soluzione che fosse meno elefantesca XD
Ciao ragazzi, ho un loop di questo tipo for ichunk in range(nchunks): elaborate(ichunk) dove elaborate chiama una funzione C che agisce un chunk di un array numpy che potrebbe occupare qualche GB (qunindi, se puo servire, elaborate non usa molto l'interprete python dato che devo aspettare i risultati di una chiamata C).
Ora, vorrei parallelizzare questo loop su piu threads.
So che ci sono diverse opzioni (threadpool, multiprocessing, asyncio, e librerie non standard come joblib, mincemeat)
Qual e' l'approccio che mi puo assicurare (1) che i thread siano effettivamente quelli dello stesso core (2) che non venga spawnato un nuovo processo python (che quindi copierebbe inutilmente tutta la memoria)
grazie se avete qualche info
uhm, però non riesco a replicare il risultato in https://github.com/microsoft/bocpy#scaling-with-cores , con 10 power core ottengo
workers | throughput | stdev | speedup | efficiencyЧитать полностью…
--------+------------+-------+---------+-----------
1 | 225.3 | 4.2 | 1.00x | 100%
2 | 386.0 | 23.2 | 1.71x
| 86% 3 | 427.9 | 1.1 |
1.90x | 63% 4 | 490.2 | 4
.9 | 2.18x | 54% 5 | 545.8
| 1.0 | 2.42x | 48% 6 |
601.4 | 0.8 | 2.67x | 44% 7
| 645.2 | 1.4 | 2.86x | 41%
8 | 682.2 | 9.9 | 3.03x |
38% 9 | 723.9 | 5.6 | 3.
21x | 36% 10 | 760.3 | 3.9
| 3.37x | 34% 11 | 751.4
| 8.0 | 3.33x | 30% 12 | 73
3.9 | 11.2 | 3.26x | 27% 13
| 724.2 | 18.4 | 3.21x | 25%
14 | 724.0 | 30.4 | 3.21x | 23% 15 | 726.9 | 17.1 | 3.23x | 22% 16 | ERROR | - | - | -