[PARPRO] 3. laboratorijska vježba - 2021/2022
Uchenikowitz
Kako bi tocno ove grupe dretvi (parametar L u zadacima) trebale utjecati na performansu? Sta ce nam uopce te grupe ako svaka dretva ima jedinstveni globalni id iz skupa (0, G-1) pomocu kojeg se moze ravnomjerno rasporediti posao?
indythedog
Baca nekome u 1. zadatku OUT_OF_RESOURCES error za malo veća polja (Python)?
indythedog
indythedog Update: čini se da pomaže za velike N-ove staviti i veliku veličinu grupe G, valjda ako je G premalen zadataka ima malo ali su jako veliki pa processing unitu nestane lokalne memorije ili nešto slično (pretpostavljam)
Kasperinac
indythedog meni ak stavim G = 1 (za slijedno), uz preveliki N vrati 0 i crashaju se driveri od grafe 😃, tako da msm da def je nes oko memorije ili sl da je ograniceno.
Daeyarn
indythedog meni baci OUT_OF_RESOURCES za n > 210, ne znam zasto, cak i kada stavim velicinu grupe da je veca(kada je n > 210 radi za G do 512, nakon toga baci error)
theimprobableone
indythedog kako u pythonu postavljas velicine G i L?
WP_Deva
Netko rješio 3. zadatak?
Savjeti?
Kasperinac
IdeGas ja sam uzeo cijeli njihov kod i ovaj dio u velikom foru, di se poziva jacobianstep sam paralelizirao… I izvodi se brze, ali nz el to “dovoljno paralelizirano”. Ostatak koda nisam dirao.
Ardura
Je li u prvom moramo koristiti lokalnu memoriju? Tipa zapisati neki medurezultat u lokalnu pa sve zbrojiti u globalnoj? Ili je ok samo kako su oni napisali kostur++.cpp?
indythedog
Daeyarn Meni recimo za velike n, npr. 215, 216 radi samo ako stavim neki veliki G, tipa 212, ali za sve iznad 217 mi se ruši
I guess da je to zbog hardvera, sumnjam da će na ispitivanju praviti probleme zbog toga
SuperSjajan3
Jel zna netko sta im ovo znaci u prvom?
Prilikom računanja ukupnog broja prim brojeva, ispitajte razliku
između obične operacije uvećavanja (+=) i odgovarajuće atomičke (nedjeljive) operacije!
Kasperinac
SuperSjajan3 ak koristis += onda neces dobiti tocan broj, jer vise njih pokusava istovremeno pisati, i nezna se kak ce to zavrsiti, a onda imas msm atomic_add (ili tak nes), i on osigurava da samo jedan pise zbraja tu varijablu.
indythedog
Kasperinac Jesi paralelizirao na “običan” način ili korištenjem onih nekih fora sa podjelom u blokove i korištenjem lokalne memorije?
indythedog
theimprobableone Evo ovako:
G i L su mi varijable koje sam definirao prije jel, a parametri se moraju predati kao (G,), a ne samo G jer metoda očekuje da bude tuple, čak i ako ima samo jedan element
Reznox
indythedog Meni baca ovo ako mi je G razlicit od N, nije mi posebno ovo jasno haha
MsBrightside
ima netko da je ovo za python na windowsu pokrenija
SuperSjajan3
MsBrightside Jes, samo napravi pip install pyopencl i to je to, mozes pokretat iz pycharma. Preporuka za onaj guide sa githuba kojeg je kolega gore poslo.
wolfs_123
Kako je najlakše postaviti okolinu za pokretanje OpenCL-a?
https://marketplace.visualstudio.com/items?itemName=galarius.vscode-opencl
Radi li ovo za visual studio code?
https://www.intel.com/content/www/us/en/developer/tools/opencl-sdk/overview.html
Možda ovo za integriranu Intelovu grafiku?
wolfs_123
wLkR-74159 zna li itko ovo?
BTW ovaj drugi link za intel system studio (ili kako se vec zove) - nisam uspio pokrenuti
Kasperinac
indythedog “obican” valjda, neam pojma kak bi u openClu funkcioniralo to s lokalnom memorijom, predao sam nekoliko polja obradio i vratio u novom polju basically. Al sad kad gledam, cini mi se da to moje “paralelno” je sporije neg slijedno 🙃. Al fkt nz, runnam jedno i drugo na laptopu s integriranom grafom tak da idk el mby zbog tog moze biti… Msm da cu sam rec meni dost, “rjesio jesam”. A sad koliko dobro nek mi skinu bodove svj mi je.
indythedog
Kasperinac Ma da, tako sam i ja, mislim da će to bit oke
Meni je 2x brže paralelno, ali zato što sam prepisao slijedni program u Python kojem onda treba 20 minuta da izvrti 100 iteracija xD
dora
Jel bi mogao netko objasnit smisao koristenja radnih grupa dretvi za rjesavanje prvog zadatka?