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

Print

Sadije Bushati, Prof. Dr

Code
CMP 503
Name
Advanced Distributed Programming
Semester
3
Lecture hours
3.00
Seminar hours
1.00
Laborator hours
0.00
Credits
3.50
ECTS
6.00
Description

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.

Objectives

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.
Quantity Percentage Total percent
Midterms
1 25% 25%
Quizzes
0 0% 0%
Projects
0 0% 0%
Term projects
0 0% 0%
Laboratories
1 15% 15%
Class participation
1 10% 10%
Total term evaluation percent
50%
Final exam percent
50%
Total percent
100%
Quantity Duration (hours) Total (hours)
Course duration (including exam weeks)
16 4 64
Off class study hours
14 5 70
Duties
0 0 0
Midterms
1 10 10
Final exam
1 10 10
Other
0 0 0
Total workLoad
154
Total workload / 25 (hours)
6.16
ECTS
6.00