Programim në Ambient të Shpërndarë i Avancuar

Print

Sadije Bushati, Prof. Dr

Kodi
CMP 503
Emri
Programim në Ambient të Shpërndarë i Avancuar
Semestri
3
Leksione
3.00
Seminare
1.00
Laboratore
0.00
Kredite
3.50
ECTS
6.00
Përshkrimi

Në këtë lëndë, studentët do të njihen me programimin dhe platformat që realizojnë programimin në ambjent të shpërndarë. Do të njihen me paralelizmin e thredeve dhe si bëhet komunikimi i thredeve duke shmangur deadlock.

Objektivat

Objektivat e lëndës janë dizajnuar në mënyre te tillë që të mundësohet një kuptim themelor i programimit në ambjent të shpërndarë. Mësimi i koncepteve të programimit parallel dhe platformat cloud ku mund të implementohet.

Java
Tema
1
Komputimi paralel: • Taksonomia Flin: SISD. MISD, SIMD, MIMD. • Organizimi i Memories • Modele paralele dhe eficanca e tyre (Lit, fq. 8 – 31)
2
Hyrja e Python • Sintaksat • Llojet e datave • Kontrolli i rrjedhes...etj • Programim paralel me python (Lit.1, fq. 32 – 45)
3
Paralelizmi me threde • Moduli i python per thredet. • Caktimi i thredeve • Caktimi i një nënklase threadi (Lit, fq. 46-60)
4
Sinkronizimi i thredeve • Sinkronizimi me kycje • Sinkronizimi me kycje R • Sinkronizimi me semaforë • Sinkronizimi me kushte • Sinkronizimi me evente (Lit., fq. 61 – 86)
5
Paralelizmi i bazuar në procese • Moduli i python per multi-procese • Emerimi i proceseve • Proceset ne background • Asgjesemi i proceseve • Nënklasat e proceseve dhe shkëmbimi i të dhënave (Lit, fq. 87-115)
6
Kalimi i mesazheve • Struktura mpi dhe moduli mpi i python • Komunikimi point-to-point • Shmangja e deadlocks (Lit, fq. 116 – 130)
7
Komunikimi • Komunikimi me broadcast • Komunikimi me funksionin scatter • Komunikim duke përdorur funksion mbledhës • Komuniki “all-to-all” • Optimizimi i komunikimit (Lit, fq. 131-152)
8
Midterm
9
Programim asinkron • Module të tjera python • Menaxhimi i loops • Asyncio (Lit.1, fq. 153 – 181)
10
Distributed Python • Programim i shpërndarë në aplikacione të shpërndara • Moduli Socket i Python • Përdorimi i Celery për menaxhimin e punëve • RMI Pyro4 (Lit, fq. 182-210)
11
Cloud Computing • Arkitektura dhe modelet e shërbimeve • Zhvillimi i aplikacioneve web me PythonAnywhere • Computing pa server (Lit, fq. 211 – 249)
12
Computing heterogjen • CUDA • OpenCL (Lit, fq. 250 – 300)
13
Computing heterogjen... vazhdim • CUDA vs PyCUDA • OpenCL vs PyOpenCL (Lit, fq. 250 – 292)
14
Programim GPU • Futja e Numba (Lit, fq. 293-301)
15
Testimi i aplikacioneve dhe sherbimeve • Teste interaktive • Pdb • debug (Lit, fq. 302 – 333)
16
Final Exam
1
Në fund të lëndës pritet që studentët të njohin konceptet programimit të shpërndarë.
2
Të jenë të aftë të njohin modelet e shërbimeve IaaS, PaaS, SaaS.
3
Studentët do të njihen me serverat në mjedis cloud dhe si u shëebejnë klientëve.
4
Studentët do të zotërojnë njohuri mbi programimin heterogjen.
5
Në fund të lëndës studentët do të jenë të familjarizuar me gjuhën Python dhe modulet e tij.
6
Studentët do të jenë të aftë të shqyrtojnë algoritmet CUDA dhe OpenCL.
Sasia Përqindja Përqindja totale
Gjysmë finale
1 40% 40%
Kuize
0 0% 0%
Projekte
0 0% 0%
Detyra
0 0% 0%
Laboratorët
0 0% 0%
Pjesëmarrja në mësim
0 0% 0%
Përqindja totale e vlerësimit
40%
Përqindja e provimit përfundimtar
60%
Përqindja totale
100%
Sasia Kohëzgjatja (orë) Gjithsej (orë)
Kohëzgjatja e kursit (përfshirë javët e provimit)
16 4 64
Orë studimi jashtë klasës
14 4 56
Detyrat
0 0 0
Gjysmë finale
1 10 10
Provimi përfundimtar
1 20 20
Të tjera
0 0 0
Ngarkesa totale e punës
150
Ngarkesa totale e punës / 25 (orë)
6.00
ECTS
6.00