Kampus šola visokozmogljivega računalništva (HPC) na začetku poletnih počitnic (7.-11. julij 2014)
Za vse študente (dodiplomske in podiplomske) na UL, FIŠ in ostale, ki si želijo vstopiti v svet superračunalništva, odkriti različne programske jezike in programe za simulacije ter pridobiti osnove v poganjanju vzporednih programov. Priporočeno je, da imajo študentje vsaj nekaj znanja iz programiranja. Prijavnina 10€ vključuje predavanja ter pogostitev med odmori. Prijavnina za zaposlene izven univerze, ki nimajo status študenta, je 150€. Prijave in podrobnosti na spletni strani: http://events.prace-ri.eu/event/cs14lj
Material z vaj in predavanj je na voljo na urniku HPC šole.
Program se bo hkrati izvajal na dveh lokacijah. Na Fakulteti za strojništvo v Ljubljani, Aškerčeva 6 in na Fakulteti za informacijske študije, Novo Mesto, Ulica talcev 3. Vaje bodo na superračunalniku HPCFS potekale iz obeh lokacij, le da bodo "inštruktorji" različni. Povabili bomo tudi različne strokovnjake, ki nam bodo v živo ali preko videokonferenčnega sistema pokazali še zanimive aplikacije, kot so posebne arhitekture koprocesorjev (GPU), simulacije in pa tudi teorija s tega in onega podočja, ki je zanimivo in potrebuje paralelizacijo.
Kampus šola HPC želi predvsem približati študentom na možnosti in lahkotnost uporabe superračunalnikov in pokazati konkretne primere skozi vaje na samem superračunalniku. Skozi vaje in ponavljanju primerov se boste naučili uporabljati okolje Linux na katerem HPC večinoma teče. Na primerih si bomo pogledali tudi programske jezike, ki omogočajo porazdelitev problema na več procesorjev. Običajno je to programski jezik C ali Fortran. Pa tudi Python je jezik, s katerim se da brez prevajanja preizkušati načelo deli in vladaj. Ob vsakih vajah bomo podrobno razložili programski jezik in njegove razširitve za vzporedno računanje.
Klasično v prevajalnikih C in Fortran obstajata dva načina doseganja hitrejšega računanja s porazdelitvijo. V enostavnejšem načinu z ukazi OpenMP kar v komentarje programa popišemo kako naj se določen del kode paralelizira. Z OpenMP lahko torej pričnemo paralelizirati, ko nam serijski program že preizkušeno deluje, naleteli pa smo na počasno delovanje. V OpenMP lahko tako program enkrat prevedemo serijsko in drugič paralelno ter tako enostavno preverimo ali je paralelizacija pravilna. Za paralelizacijo skrbi prevajalnik sam tako, da kreira niti (threads), za katere samo jedro operacjskega sistema že samo poskrbi, da se izvajajo na ločenih jedrih. Komentarji OpenMP v programih pa poskrbijo, da se skupen spomin, ki ga vse niti uporabljajo, pravilno sinhronizira in da ne prihaja do težav pri hkratnem dostopu pri pisanju v skupne spremenljivke. Slabost OpenMP pa je, da se niti lahko kreirajo le na enem vozlišu, ki ima v praksi od 2 - 32 jeder na voljo za paralelizacijo. OpenMP način paralelizacije je torej primeren že za zelo majhne "strojčke", kot so naši prenosniki ali celo prenosne naprave in prav to je tudi prednost OpenMP, da se lahko prav vsak preizkusi v vzporednem programiranju ne da bi pri tem potreboval drage strojne opreme.
Pri večjih zahtevah za paralelizacijo ali takrat ko že v začetku vidimo, da bo problem zahteven ga pišemo v MPI (Message passing Interface), ki je prav zaprav knjižnica za pošiljanje podatkov iz enega procesa v drugi. Procesi pa so lahko na različnih računalnikih, kar pomeni, da ni večjih omejitev glede števila procesov, ki sodelujejo pri reševanju problema. Tudi programskih jezikov je za MPI več. Kot že omenjeno, bomo poleg klasike pogledali tudi jezik Python in knjižnico MPI4Py ter primere s katerimi se bomo hkrati naučili jezika in še eksperimentirali paralelno.
Smisel HPC je običano prihraniti čas rešitve posameznega problema in orodje HPC nam to lahko bistveno pripomore. Če ga znamo uporabljati, seveda. Kampus šola HPC nam bo na "zabaven" načino pokazala kako. Udeležencem pa bomo izdali tudi potrdila o udeležbi.
Vabjeni!
Okvirni program Kampus šole HPC 2014Ura | Ponedeljek 7.7. | Torek 8.7. | Sreda 9.7. | Četrtek 10.7. | Petek 11.7. |
Dopoldne 9:00-12:30 | Linux uvod | Predavanja in teorija HPC | HPC v praksi (NM) in simulacije (FS) | Uvod v Python in MPI4Py na FS (organiziran prevoz iz NM v LJ in nazaj) | Paralelni algoritmi in vizualizacija |
Odmor 13:00 - 14:30 | Kosilo | Kosilo | Kosilo | Kosilo | Kosilo |
Popoldne 14:30 - ~17h | Linux okolje HPC | Vaje HPC | Praktičen preizkus dopoldanskih predavaj | Vaje Python in MPI4Py (tudi dopoldne je praktično delo) | Praktične vaje iz dopoldanske tematike |
Podrobnejši pregled (zeleno - vaje FIŠ, svetlo modro - vaje FS)Ura | Ponedeljek | Torek | Sreda | Četrtek | Petek |
9:00 - 9:30 | Sprejem na FS, Predstavitev poletne šole, ogled HPC, Uvod v GNU/Linux, GUI okolja
| Predstavitev HPC (video prenos v LJ), Osnovni ukazi v C-ju,
Predstavitev MPI na HPCFS | Uporaba GPU (Abelium) | Python + MPI, programiranje enostavnih primerov s pošiljanem sporočil z MPI4Py, | Uvod v pripravo in analizo paralelnih algoritmov, Predstavitev poletne šole HiPEAC (video prenos v LJ) |
9:30 - 10:00 |
10:00 - 10:30 | Problem max-klike (IJS) |
10:30 - 11:00 |
11:00 - 11:30 | Molekularne simulacije bioloških makromolekul (Kemijski inštitut) | Predstavitev PGAS prog. (X10, Chapel); Upravljanje sestavov s HPC-PUPPET (Arctur); Vizualizacija na HPC ; Predstavitev organizacije PRACE in dostopa do TIER-1 in TIER-0 superračunalnikov (Video prenos v NM) |
11:30 -12:00 |
12:00 - 12:30 | Predstavitev odprtokodnih simulacijskih programov (FS) |
12:30 - 13:00 |
13:00 - 14:30 | Kosilo | Kosilo | Kosilo | Kosilo | Kosilo |
14:30 - 15:00 | Bash, AWK skripte, Uvod v programiranje, Programski jeziki v Linuxu Praktični problemi preurejanja podatkov s sed, awk in lupine bash in LSF, | Sprejem na FIŠ, Kratek uvod v Linux, programska okolja, Vaje na HPC | Vaje MPI na HPCFS | Vaje na HPC | Simulacije na HPCFS: vaje iz CFD (Fluent, OpenFOAM) | Vaje na HPC | Zahtevnejši primeri MPI4Py z reševanjem nalog v manjših skupinah | Vaje iz vizuali-zacije (GNUplot, Inkscape, LLNL VisIt, ParaView, Inkscape, OpenGL, WebGL, ... ) | Različne vaje ter predstavite in analiza nalog študentov |
15:00 - 15:30 |
15:30 - 16:00 |
16:00 - 16:30 |
16:30 - 17:00 | Zaključek | Zaključek |
17:00 - 17:30 | |
17:30 - 18:00 | | |
- Obvestilo na UL - ARNES - SIO - Rač. novice