am imresia ca daca ai fire putine si le poate mapa pe procesoare/core-uri, atunci zboara mai bine. daca baietul asta are un parallelfor(i=0; i<10000; i++) faceva(i), nu stiu daca mai merita sa povestim. va dau un EDP cu n+1 dimensiuni spatiale si 1 temporala si va las sa va jucati in teste de care vreti voi. conditiile pe frontiera sunt si dirichlet si neuman si ecuatii. cine se baga? voi va alegeti cu benchmarkul, io cu ecuatia rezolvata. win-win.
t. 2015-09-01 15:28 GMT+03:00 Razvan Deaconescu <[email protected]>: > Alex 'CAVE' Cernat <[email protected]> writes: > > in cazul meu operatiile de final (daca exista) nu se bazeaza pe cele in > > paralel (decat cel mult niste coduri de ok / eroare), astfel incat cu > > procese le-as putea scoate usor, dar daca se poate cu thread-uri si e > > mai performant ... de ce nu ? > > Nu știu când am făcut ultima oară benchmarking pe tema asta, dar timpul > de creare a proceselor și de schimbare de context între procese (context > switch) nu este drastic mai mare decât cel între thread-uri pe > Linux. Partea cu "lightweight" nu aș considera-o un avantaj foarte mare > al thread-urilor; cel mai important este că partajează mai ușor > (implicit) datele. > > Procesele rămân cu avantajul izolării; dacă un thread o ia pe ulei > riscă să-ți bușească tot procesul. Așa un proces când pică, rămân altele > în viață. De exemplu, chrome/chromium este multi-proces (un proces per > tab), iar Firefox este multi-threaded (un thread per tab) (sau ceva > similar). La fel cu mpm-prefork și mpm-worker. > > Eu vorbesc mai mult la nivel teoretic, nu am experiență în sisteme mai > mari. Cele de sus sunt cu bulgărele de sare aferent. > > > problema la care nu-i dau de cap (cel mai probabil pentru ca nu am > > inteles inca prea bine cum functioneaza threadurile) este cum fac o > > copie locala a unei variabile, astfel incat variabila respectiva sa aiba > > valorea doar pentru threadul respectiv, in alt thread putand avea o alta > > valoare, iar o asignare a acelei variabile intr-un thread sa nu > > influenteze valoarea aceleiasi variabile dintr-un altul > > > > rezumand, in principiu ma intereseaza daca se poate face exact acelasi > > lucru ce as putea sa fac cu multiproces ('copie' a datelor), dar > > folosind threaduri (cel putin unele variabile sa fie 'locale' threadului) > > Se cheamă "thread local storage" sau "thread specific data"[1]. > > [1] > http://pubs.opengroup.org/onlinepubs/009695399/functions/pthread_key_create.html > > Răzvan > _______________________________________________ > RLUG mailing list > [email protected] > http://lists.lug.ro/mailman/listinfo/rlug > _______________________________________________ RLUG mailing list [email protected] http://lists.lug.ro/mailman/listinfo/rlug
