[QGHG-it-dev-list] Zadatak 3 - seed fja za D-simpleks
Dusan Cvijetic
dusancvijetic2000 at gmail.com
Sat Oct 8 19:44:08 CEST 2022
Pozdrav,
Izvinjavam se zbog kasnog odgovaranja. Želeo sam tokom prethodne nedelje
da namestim dual boot konfiguraciju, da bih mogao da koristim i Linux,
pa sam odlagao da započnem sa radom i odgovaram na mejlove dok to ne
uradim. Međutim, čini se da ću morati da ostanem samo na Windows-u još
neko vreme.
CERN je bio sjajno iskustvo. Radio sam na razvoju VecGeom biblioteke
<https://gitlab.cern.ch/VecGeom/VecGeom> za simulaciju geometrije
detektora čestica. Na kraju borvka sam napisao i izveštaj
<https://cds.cern.ch/record/2825399?ln=en>, u kome možete naći i više
detalja o mom delu posla.
U suštini, simuliraju sudare čestica sa raznim strukturama. Taj posao
zahteva vrlo mnogo resursa i vremena, pa pokušavaju da paralelizuju sva
izračunavanja koliko god mogu. Trenutno se trude da to postignu tako što
će prilagoditi svoj kod radu na GPU. Da bi simulirali razne oblike,
ranije su koristili zapreminske modele (simulirali bi ceo cilindar,
kocku, nepravilno telo kao jedinstvenu strukturu), međutim oni izazivaju
dosta divergencije u paralelnom radu. Zato sad prevode ove zapreminske
modele u površinske, gde će svako telo razložiti na više manjih
površina. To bi trebalo da pojednostavi jednačine koje se rešavaju i
smanji divergenciju pri pokretanju koda na GPU.
Što se samog CERN-a tiče, mesto je prelepo. Kompleks je ogroman, i
potrebno je više od pola sata da se prešeta "naselje" u kome sam ja bio.
Postoji više takvih "naselja" koja su raspoređena širom akceleratorskog
prstena, i za njihov obilazak bili bi potrebni sati. Priroda oko
laboratorija je predivna, negovana i čista. U daljini se, preko planina,
može videti i Mont Blanc kada je vreme lepo. Zanimljivo mi je bilo što
plaćaju pastirima da dovedu ovce do laboratorija i pasu travu po CERN-u,
da ne bi morali mašinski da kose travu.
Ljudi tamo su me oduševili. Moj mentor
<https://www.linkedin.com/in/agheata/> je bio izuzetno posvećen i
ažuran, i mnogo sam naučio od njega. Iznenadilo me je koliku mi je
autonomiju u radu dao, nije mi postavio bilo kakva ograničenja - samo
generalni cilj ka kome treba da idem. U početku mi je ovo bilo čudno,
ali sam se vremenom navikao i dosta oslobodio u programiranju.
Imao sam odlično društvo, kako iz komšijskih zemalja, tako i iz dalekog
inostranstva. Zaista je bilo uživanje provoditi vreme sa tim ljudima,
svim visoko motivisanim, vrednim i sposobnim, a opet uvek spremnim za
dobar provod. I stariji su, takođe, bili jako interesantni. Desilo se da
mi, tokom prezentacije mog projekta, jedan čovek postavi pitanje za
typesafe alternativu za switch strukturu u C++. Uvek sam mislio da dobro
i detaljno poznajem C++, no njegovo pitanje uopšte nisam ni razumeo, pa
je moj mentor odgovorio umesto mene. Ispostavilo se da je čovek koji je
postavio pitanje u timu za postavljanje standarda C++ i da me je pitao
za nešto što su u jezik ubacili u poslednjoj verziji. Desilo mi se prvo
u Petnici, pa na fakultetu, a najskorije u CERN-u, da me oduševi
količina znanja koju ljudi oko mene imaju.
Sve su šanse da ću ponovo otići u CERN sledećeg leta, pošto mi je menor
ponudio da se opet vratim. Trenutno mi se ne sviđa ideja da tamo živim i
radim za stalno. Švajcarska je, iako prelepa, prilično sterilna, i mnogo
su mi draži ljudi koje znam u Srbiji. Ipak, biće mi drago ako nastavim
tamo da radim po par meseci godišnje.
Hteo sam da se ponovo zahvalim što ste me primili na ovaj projekat. Jako
mi je zabavno da radim naučno programiranje. Mentor mi je rekao da me je
pozvao jer je video da sam radio na QGHG, tako da bez rada na Institutu
ne bih imao priliku da vidim ni CERN.
Pozdravi,
Dušan
On 27-Sep-22 8:26 PM, Marko Vojinovic wrote:
>
> Pozdrav Dusane i Nenade (i ostali),
>
> Evo tekuceg statusa koji zadaci su uradjeni a koji nisu:
>
> 1-5: done
> 6: in progress
> 7: done
> 8: to do
> 9: in progress
> 10: done (for the moment)
> 11-13: done
> 14: to do
> 15-23: to do
> 24: to do
> 25-32: to do
>
> Formulacije svih zadataka imate na arhivi mailing liste [1,2,3].
>
> Neki zadaci su reseni, Jaroslav privodi kraju kostur za gui (zadaci 6
> i 9), a neresene zadatke mozemo da grupisemo u dva "paketa" zadataka,
> i tri samostalna zadatka:
>
> * Paket 15-23 je posvecen Pachner-ovim potezima (u D=2,3,4). Zadatke
> za Pachner-a za proizvoljno D nisam jos precizno formulisao --- imamo
> samo one fotke sa table kada sam Nenadu objasnjavao konceptualno kako
> radi Pachner u proizvoljnoj dimenziji (treba da ih posaljem na listu),
> ali to sve je skica, treba bolje i preciznije da se formulisu ti zadaci.
>
> * Paket 25-32 je posvecen crtanju kompleksa na ekran, i
> implementaciju svega toga uskoro treba da uradimo jer je Jaroslav
> maltene pri kraju sa konstrukcijom kostura za gui i uskoro ce doci
> vreme da se taj kostur "popuni mesom", tj. rutinama iz biblioteke i da
> pocne zaista da "radi" (Jaroslav je namestio maltene svu
> funkcionalnost elemenata gui-ja, ali se jos uvek ne radi nista sa
> bibliotekom tj. realnim podacima).
>
> * Tri "samostalna" zadatka su --- 8 (ucitavanje kompleksa iz fajla),
> 14 (kacenje novog simpleksa na granicu postojeceg kompleksa), i 24
> (dodavanje topology parametra u SimpComp klasu). Ova tri zadatka vec
> duze vreme cekaju na resavanje, a nisu deo neke vece grupacije zadataka.
>
> Moj predlog za Dusana je da proba da uradi prvo ova tri samostalna
> zadatka, 8, 14 i 24, za zagrevanje. Posto je vec svojevremeno lepo
> uradio zadatak 7 (snimanje kompleksa u fajl), zadatak 8 je prirodno
> vezan za istu tu temu, a 14 i 24 su nezavisni od onih paketa, i mogu
> da posluze kao dobro zagrevanje za pakete.
>
> Zatim je ideja da se i Dusan i Nenad koncentrisu na resavanje dva
> paketa, jer to u principu treba da imamo gotovo kad budemo krenuli da
> povezemo biblioteku sa gui-jem. Neki okvirni plan je da gui "progleda"
> do kraja godine, a gornja dva paketa zadataka nisu mali posao, pa
> imajte to na umu.
>
> To je otprilike presek dokle smo stigli i sta nas jos ceka za ovu godinu.
>
> Naravno, ne zelim da vam ja pravim raspored ko ce sta da radi, svako
> neka uzme sta mu je zanimljivo, ali ovo gore je neka prirodna podela
> zadataka po smislu, pa imajte to u vidu.
>
> Btw, Dusane, sta se desilo sa tvojim kolegom Nikolom, jel' on jos tu,
> i jel' zainteresovan da ucestvuje u ovome, ili ne? I drugo, kako je
> bilo u CERN-u, kakvi su ti utisci? Mozes da sastavis jedan e-mail za
> nas ostale, da nam prepricas sta si tamo radio, kako sta i na kom
> nivou rade programeri tamo, i generalno sta si pokupio od znanja i
> iskustva odande... Mislim da bi nas sve zanimalo da cujemo o tome, pa
> 'ajde sastavi neki neformalni report o svom boravku u CERN-u, i
> posalji ga na listu... ;-)
>
> :-)
> Marko
>
> [1]
> http://mail.ipb.ac.rs/pipermail/qghg-it-dev-list/2022-February/date.html
> [2] http://mail.ipb.ac.rs/pipermail/qghg-it-dev-list/2022-March/date.html
> [3] http://mail.ipb.ac.rs/pipermail/qghg-it-dev-list/2022-April/date.html
>
>
> Dr. Marko Vojinovic
> Group for Gravitation, Particles and Fields
> Institute of Physics
> University of Belgrade
> ======================
> home page: www.markovojinovic.com
> e-mail: vmarko at ipb.ac.rs
>
>
>
> On Mon, 26 Sep 2022, Nenad Korolija wrote:
>
>> Zdravo Dušane,
>>
>> Odlično!
>> Ovaj zadatak je urađen.
>> Možeš da baciš pogled na 4 funkcije:
>> collect_vertices sakuplja vertices u set<KVertex*>.
>> // Finds a k-simplex with given vertices, if exists:
>> KSimplex* SimpComp::find_vertices(set<KSimplex*> &s){
>> build_simplex_one_level_up
>> seed_single_simplex_or_sphere (generalna).
>>
>> Za još dosta zadataka imam ideju kako ih rešiti (prodiskutovane sa
>> Markom), pa ako se odlučiš za neki, možemo da budemo na vezi
>> (najverovatnije će nam se ideje preklapati) kako bi svi
>> ispratili šta kako radimo, jer nam to može značiti za dalje.
>>
>> Marko, možda bi bilo previše, mada najkorisnije, da radi generalni
>> Pachner-ov potez? Ali ako pređe par zadataka, verovatno će biti
>> uhodan u strukture i funkcije koje već postoje na
>> raspolaganju.
>>
>> Pozdrav,
>> Nenad
>>
>> On Mon, Sep 26, 2022 at 6:12 PM Dusan Cvijetic
>> <dusancvijetic2000 at gmail.com> wrote:
>> Pozdrav svima,
>>
>> Završene su mi obaveze, pa bih preuzeo sad ovaj zadatak da radim.
>> Potvrdite mi samo da ovo nije već odrađeno.
>>
>> Pozdravi,
>> Dušan
>>
>> On 11-Feb-22 10:44 PM, Marko Vojinovic wrote:
>> >
>> > Implementirati seed f-ju za jedan D-simpleks (za proizvoljnu
>> dimenziju
>> > D):
>> >
>> > SimpComp* seed_single_simplex( int D );
>> >
>> > Input: dimenzija D (pozitivan ceo broj).
>> > Output: pointer na instancirani simplicijalni kompleks koji se
>> > sastoji od jednog D-simpleksa.
>> >
>> > Ova f-ja predstavlja opsti slucaj f-ja seed_single_edge(),
>> > seed_single_triangle() i seed_single_tetrahedron(), koje rade
>> isti
>> > posao za D=1,2,3. Postupak i ovde ide u tri glavna koraka:
>> >
>> > (1) Instancirati nov simplicijalni kompleks zadate dimenzije D i
>> > metodom create_ksimplex() kreirati simplekse svih nivoa od
>> k=0 do k=D.
>> > Broj simpleksa datog nivoa k je jednak "D+1 nad k+1" (broj
>> kombinacija
>> > k+1-vog reda od D+1 elemenata), tj. (D+1)! / ( (k+1)! (D-k)! ).
>> > Specijalno, ukupan broj verteksa (k=0) je D+1.
>> >
>> > (2) Popuniti podklasu neighbors svakog simpleksa pointerima
>> na njegove
>> > susede, koristeci add_neighbor(). Za slucaj proizvoljnog
>> D-simpleksa
>> > ne mozemo da se oslonimo na sliku, vec se mora implementirati
>> > algoritam za prepoznavanje suseda (vidi nize).
>> >
>> > (3) Simpleksima nivoa k = D-1 dodeliti boju boundary, i za svaki
>> > simpleks zadati vrednost boje na true.
>> >
>> > Algoritam za odredjivanje da li je dati n-simpleks podsused
>> datog
>> > k-simpleksa se realizuje na sledeci nacin:
>> >
>> > (2.1) Prvo se za svaki k-simpleks (k>0) zadaju njegovi susedi
>> nivoa
>> > k=0 (verteksi). Posto u celom kompleksu imamo tacno D+1
>> verteksa,
>> > svaki k-simpleks ima tacno "D+1 nad k+1" razlicitih verteksa, po
>> > definiciji D-simpleksa. Drugim recima, treba birati redom svaku
>> > kombinaciju k+1-ve klase od D+1 verteksa, i dodeljivati ih
>> kao susede
>> > nivoa k=0 redom svakom k-simpleksu (jedna kombinacija u jedan
>> > k-simpleks, tako da ne postoje dva k-simpleksa sa istim
>> skupom 0-suseda).
>> >
>> > (2.2) Kada je korak (2.1) zavrsen, mozemo da odgovorimo na
>> pitanje da
>> > li je dati n-simpleks podsused datog k-simpleksa (n<k), tako sto
>> > proverimo da li su svi 0-susedi n-simpleksa istovremeno i
>> 0-susedi
>> > k-simpleksa. Ako jesu, onda je n-simpleks podsused
>> k-simpleksa, a ako
>> > postoji makar jedan verteks koji pripada n-simpleksu a ne
>> pripada
>> > k-simpleksu, onda nije podsused.
>> >
>> > Koristeci kriterijum (2.2), za dati k-simpleks prodjemo kroz sve
>> > n-simplekse 0<n<k, i one koji ispune kriterijum stavimo u
>> pod-susede
>> > k-simpleksa nivoa n, i takodje u n-simpleks stavimo
>> k-simpleks kao
>> > nad-sused nivoa k. Ovo ponoviti za sve k-simplekse 1<k<=D.
>> >
>> >
>> > :-)
>> > Marko
>> >
>> >
>> > Dr. Marko Vojinovic
>> > Group for Gravitation, Particles and Fields
>> > Institute of Physics
>> > University of Belgrade
>> > ======================
>> > home page: www.markovojinovic.com
>> > e-mail: vmarko at ipb.ac.rs
>> >
>> >
>> --
>> QGHG-it-dev-list mailing list
>> QGHG-it-dev-list at ipb.ac.rs
>> http://mail.ipb.ac.rs/mailman/listinfo/qghg-it-dev-list
>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.ipb.ac.rs/pipermail/qghg-it-dev-list/attachments/20221008/285ffb16/attachment-0001.htm>
More information about the QGHG-it-dev-list
mailing list