Juozo Kaziukėno blogas

Gyvenimo klystkeliai Škotijoje

Susirgau paralelizmu

November30

Kai dirbau ties konkurso programa pirmą kartą paliečiau kompiuterių paralelizmą. Kadangi mano programa nieko daugiau be matematinių skaičiavimų nedarė, tai paraleliniai skaičiavimai su dviem procesoriaus branduoliais leido pasiekti daugiau nei 40% paspartėjimą. Nuo to laiko labai smarkiai susidomėjau paralelizmu.

Namų kompiuteriuose procesoriai su keliais branduoliais atsirado jau gana senokai, bet gana ilgai programos jų nesugebėdavo išnaudoti. Turbūt ne visos juos išnaudoja ir dabar, bet žinoma ne visada efektyviai tą galima ir padaryti. Tačiau labai efektyviai skaičiavimams galima išnaudoti vaizdo plokštes. Netikite?

Šiame grafike aiškiai matosi, kad 2000 metų viduryje vaizdo plokščių skaičiavimo pajėgumas aplenkė procesorių, o 2006 metais atotrūkis jau yra milžiniškas. Šiuo metu, be abejo, šis atotrūkis yra dar didesnis. Tai nėra kažkokia klaida ar reklamos triukas, tiesiog šie du procesoriai naudojami skirtingoms operacijoms ir skiriasi jų veikimo principas (daugiau Pixel.lt).

Nvidia žengė labai svarbų žingsnį, kai pristatė CUDA. Įrankių visumą leidžiančią rašyti programas vykdomas grafikos procesoriuje. Keliuose projektuose vaizdo plokštės panaudojimas skaičiavimams leido pasiekti 100, 200 ar net dar daugiau kartų didesnę spartą. Na bet jau matau, kad per daug panirau į technines puses (besidomintys gali žvilgtelėti čia), taigi grįžkime prie manęs.

Taigi aš sugalvojau atlikti projektą ir panaudojant grafikos plokščių skaičiavimo pajėgumus perkelti savo fraktalo programą (apie ją parašysiu daugiau šią savaitę) į visai kitą lygį. Dar nesu visko gerai apgalvojęs, bet bandysiu gauti 500£ savo tyrimams (viskas bus skirta sistemos įsigijimui). Turbūt tai nėra pats realiausias planas, bet manau reikia tik susiekti su tinkamais žmonėmis ir kažką bus galima suderėti.

Juk sakiau, kad aš išprotėjęs.

Švenčiame gimtadienį - mums metukai!

November28

Šiandien man ypatinga dienai - mūsų įmonė švenčia pirmąjį savo gimtadienį. Taigi sudainuoju sau „Ilgiausių metų“ ir turbūt po kelių akimirkų jau kulniuosiu į vietinę parduotuvę torto su viena žvakute. Kas nežinot, tai metinuko vardas yra UAB „Barzda“ ir šiandien turim oficialią šventę, taigi visi rikiuokitės į gražią eilutę ir laukiu sveikinimų :)

Tiesa sakant, labai daug žmonių nesuprato kodėl mes įkūrėme šią įmonę, kodėl skiriame tiek laisvalaikio ir kodėl iš vis lindom į visą šitą ****. Nesupranta turbūt ir iki šiol, bet neteršiu šio įrašo paaiškinimais - šiandien mes švenčiame!

Ką nuveikėm per metus? Nieko ypatingo, be ManoKnyga.lt atidarymo. Daugiausiai dėl to kaltės prisiimu aš, nes ypač dabar kai pradėjau studijuoti nebegaliu dirbti pakankamai produktyviai ir įgyvendinti visų darbų, kurie manęs laukia. Visgi tikiuosi bendradarbiai labai nepyksta ir supranta to priežastis.

Tikiuosi jau greitu laiku pereisime į kitą lygį, nes pradžia buvo labai sunki ir pradėję su nuliu patirties, niekinėmis lėšomis sugebėjome kažką pasiekti. Tai tikrai nėra kažkoks super projektas, bet su ištekliais kuriuos turėjome, pasiekėme išties nemažai. Jau neskaitant to, kiek visi asmeniškai įgijome patirties pačiose įvairiausiose sferose.

Ačiū visiems draugams, pažįstamiems, šeimos nariams, kurie tikėjo, palaikė ir padėjo sunkiais periodais. Mums tau buvo labai svarbu ir be visų jūsų indėlio tikrai nebūtume čia, kur esame dabar. Jei nebūčiau Škotijoje, turbūt su kolegomis pakeltume šampano taures, bet šį gimtadienį teks atšvęsti atskirai. Šaunu!

Universiteto programuotojų konkursas

November18

Kiekvienais metais mūsų universitetas rengia programuotojų konkursą. Prizas simbolinis, bet turbūt didžioji dalis vertės ateina iš garbės ir nuveikto darbo. Suprogramuoti reikia ne bet ką, o Haskell kalbos programą generuojančią kuo įdomesnį/gražesnį paveikslėlį (tikėtina - „fraktalinį“ ).

Kadangi su paprastu L sistemos paveikslėliu išsisukti nepavyks, tai teko sugalvoti kažką gudresnio. Nusprendžiau, kad įspūdingiausiai atrodys trimatis pseudo-fraktalas arba tiesiog rekurisškai aprašytas objektas. Nežinau kaip tai apibūdinti aiškiai, taigi pateikiu mano programos pavyzdį (alpha stadija, demo scena).

500×500 scenoj yra apie 500 objektų, 2 šviesos šaltiniai ir sudėtingas algoritmas - matomas vaizdas turi ir keletą esminių savybių: objektai turi šešėlius ir atspindžius. Iš esmės tai netgi daugiau matematikos nei programavimo. Visgi, kelios dienos vartant Google ir Wikipedia užpildo visas žinių spragas.

Pradinė programos versija tokį paveikslėlį sugeneruodavo per pusantros valandos, paskutinė versija - tik 5 min. Tokį paspartėjimą išgavau perdaręs šviesos atspindžių sekimą ir sugrupavęs objektus į medžio struktūrą (ką galėjau padaryti dėl viso objekto savybių). Plačiau neišsiplėsiu, nes žmonėms nesusipažinusiems su trimatės grafikos generavimu gali paskausti galva.

Dar nenusprendžiau kokį galutinį paveikslėlį pateikti konkursui - juk galiu sugeneruoti bet kokią struktūrą. Nors tiesą sakant paveikslėlyje matoma struktūra man atrodo gana graži, galbūt tik paskutinius mėlynus taškus pakeisiu į žalius, taip gaudamas struktūrą su Lietuvos motyvais. Na ir beliks tikėtis, kad paveikslėlis ir mano algoritmas sužavės vertintojus.

P.S. „gudruoliams“
Taip, aš galėjau naudoti OpenGL ir viską padaryti žymiai paprasčiau, bet to nedariau, nes manau, kad mano pačio sukurtas grafikos variklis yra žymiai vertingesnis visais atžvilgiais. Be to, žinau, kad generavimo laikas toli gražu nėra spartus (paspartinsiu perkeldamas į gijas).