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

Print

Artur Koci, PhD

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

Ofron njohuri të avancuara mbi konceptet dhe arkitekturat e sistemeve të shpërndara. Përdor Python-in për ndërtimin e aplikacioneve të shpërndara dhe shkallëzueshme. Mëson teknikat e programimit paralel dhe shpërndarë, duke përdorur procese, fije (threads) dhe asinkroni.

Java
Tema
1
Hyrje ne sistemet e shperndara
2
Organizimi i memories: SISD, SIMD, MISD, MIMD Hyrja ne Python • Sintaksat • Llojet e datave • Kontrolli i rrjedhes...etj (Lit, fq 24-46)
3
Vazhdim Python • Klasat & Objektet • Exceptions handling
4
Paralelizmi me threde • Moduli i python per thredet. • Caktimi i thredeve • Caktimi i një nënklase threadi (Lit., fq. 47 – 61)
5
Sinkronizimi i thredeve • Sinkronizimi me kycje • Sinkronizimi me kycje R (Lit., fq. 62 – 68)
6
Sinkronizimi i thredeve • Sinkronizimi me semaforë • Sinkronizimi me kushte • Sinkronizimi me evente
7
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)
8
Midterm
9
Kalimi i mesazheve • Struktura mpi dhe moduli mpi i python • Komunikimi point-to-point • Shmangja e deadlocks (Lit, fq. 116 – 130)
10
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)
11
Programim asinkron • Module të tjera python • Menaxhimi i loops • Asyncio (Lit.1, fq. 153 – 181)
12
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)
13
Cloud Computing • Arkitektura dhe modelet e shërbimeve • Zhvillimi i aplikacioneve web me PythonAnywhere • Computing pa server (Lit, fq. 211 – 249)
14
Testimi i aplikacioneve dhe sherbimeve • Teste interaktive • Pdb • debug (Lit, fq. 302 – 333)
15
Prezantim Projektesh
16
Provim Final
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 25% 25%
Kuize
0 0% 0%
Projekte
1 30% 30%
Detyra
0 0% 0%
Laboratorët
1 15% 15%
Pjesëmarrja në mësim
0 0% 0%
Përqindja totale e vlerësimit
70%
Përqindja e provimit përfundimtar
30%
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
1 10 10
Gjysmë finale
1 8 8
Provimi përfundimtar
1 12 12
Të tjera
0 0 0
Ngarkesa totale e punës
150
Ngarkesa totale e punës / 25 (orë)
6.00
ECTS
6.00