Programimi i Shpërndarë

Programimi I Shpërndar

Programimi I shpërndarë është një fushë e kompjuterikës që studion sistemet e shpërndara. Një sistem I shpërndarë përbëhet nga kompjutera të shumtë autonom që komunikojnë ndërmjet një rrjeti kompjuterik. Kompjuterët ndërveprojnë me njëri-tjetrin për të arritur një qëllim të përbashkët. Një program kompjuterik që shkon në një sistem të shpërndarë quhet një programim I shpërndar, procesi I shkrimit të programeve të tilla është programimi I shpërndarë.
Programimi I shpërndar gjithashtu I referohet përdorimit të sistemve të shpërndara për të zgjidhur problemet kompjuterike. Në programimin e shpërndarë një problem është I ndarë në shumë detyra, secila prej tyre zgjidhet nga një ose më shumë kompjutera.
Hyrje
Fjala shpërndarje ka terma si “Sistem I shpërndarë” , “Programim I shpërndarë” dhe “Algoritm I shpërndarë”. Në ditët e sotme këta terma përdorën për një kuptim më të gjerë, duke iu referruar proceseve autonome që kompjuterët të bashkëveprojnë me njëri tjetrin duke dërguar mesazhe.
Nuk ka ndonjë përkufizim të vetëm për sistemin e shpërndarë, vetitë e mëposhtme janë definon rekuizitat që zakonisht përdoren:
* Ka disa entitete autonome kompjuterike, secila prej tyre ka memorien e saj lokale.
* Entitetet komunikojnë me njëri tjetrin duke dërguar mesazhe.
në këtë artikull subjektet kompjuterike janë quajtur kompjuterë ose nyje. Çdo kompjuteë mundë të ketë përdoruesin e tij për nevojat individuale , dhe qëllimi I sistemit të shpërndarë është që të ofrojë shërbimet e komunikimt të përdoruesve.
Rekuizitat tjera tipike të sistemeve të shpërndara janë si në vijim:
* Sistemi duhet të tolerojë dështimet në kompjuter individual.
* Struktura e sistemit nuk është e njohur më parë , sistemi mund të përbëhet nga lloje të ndryshmë të kompjuterëve dhe rrjetave, dhe sistemi mund të ndryshoj gjatë ekzekutimit të një programi të shpërndarë.
* Çdo kompjuter ka vetëm një pamje të kufizuar, jo të plotë të sistemit. Çdo kpmpjuter mundë të dijë vetëm një pjesë të hyrave.
### **Programimi I Shpërndarë dhe Paralel** 
Sistemet e shpërndara jane një rrjet operimi me kompjuterë që kanë procesorë të njejtë. Termat “Programimi në grup” , “Programimi Paralel” dhe “Programimi I shpërndarë” kanë shumë të përbashkëta , dhe nuk ndonjë dallim në mes tyre. I njejti sistem mund te karakterizohet edhe si paralel edhe si I shpërndarë, Procesorë në një sistem tipik të shpërndarë bëhen njëkohësisht në mënyrë paralele. Sistemi “Shpërndar” dhe “Paralel” klasifikohen kalsifikohen duke përdorur kriteret e mëposhtme.
* Në programimim paralel, të gjithë përdoruesit kanë qasje ë një kujtesë të përbashkët. Kujtesa e përbashkët përdoret për të shkëmbyer informacione në mes përpunuesve.
* Në programimin e shpërndarë, çdo procesor ka memorien e saj private. Informacionet shkëmbehen duke dërguar mesazhe në mes përdoruesve.
	 Skeda:Distributed-parallel.svg

## **Aplikimi** 
Ka dy arsye për përdorimin e sistemeve të shpërndara. Së pari natyra e kërkesës mund të kërkojë përdorimin e një rrjeti të komunikimit që lidh disa kompjutera.
Së dyti, ka shumë raste në të cilat përdorimi I një kompjuteri të vetëm do të jetë I mundur në parim, por përdorimi I një sistemi të shpërndarë është I dobishëm për arsye praktike.
Shembuj të sistemeve të shpërndara dhe aplikimi në informatikë:
### **Telekomunikacion** 
* Rrjete telefonike dhe rrejete celular
* Rrjetet kompjuteriek si Interneti
* Rrjetet Wireless
* Algortime
### **Aplikimi ne Rrjete** 
* WWW dhe rrjetat peer-to-peer
* Lojra online multiplayer dhe komunitete virtual
* Shpërndarjen e bazaës të dhënave dhe sistemet e menaxhimit të bazës së të dhënave të shpërndara
* File System Netëork
* Shpërndarjen dhe përpunimin e informacioneve si sistemet bankare dhe sisteme te rezervimit ajror.
### **Kontrolli në kohë reale** 
* Sistemet e kontrollit Avioneve
* Sistemeve të kontrollit industrial
### **Njëhsimi paralel** 
* Shkenca kompjuterike, duke përfshirë punën në grupe dhe rrjete
* Pasqyrimin e shpërndarë në grafikë kompjuterike

## **Modelet** 
### **Algoritmet paralele në memorien e përbashkët** 
* Të gjithë kompjuterat të kenë qasje në një kujtesë të përbashkët.
* Një model teorik është në makinat paralele(PRAM). Modeli klasik PRAM merr akses asinkron në kujtesën e përbashkët.
* Një model që është më afër Botës reale makinat multiprocesorike makina e tillë është (CAS)

### **Algoritmet paralele message-passing** 
* Dizajnuesit e Algoritmeve zgjedhin strukturën e rrjetit, si dhe programimin e ekzekutuar nga çdo kompjuter.
* Modele të qarqeve logjike dhe klasifikim e rrjetave. Një qark logjikë mundë të shihet si një rrjet kompjuterike, secila portë është një kompjuter që drejton një program I thjesht kompjuterik.
### **Algoritmet shpërndarëse ne message-passing** 
* Dizajnuesit e Algoritmeve zgjedhin programin kompjuterik. Të gjitha programet egzekutohen nga një kompjuter. Sistemi duhet të punojë në rregull pa marrë parasysh strykturën e rrjetit.
* Një model i përdorur zakonisht është një grafik menjë makinë të fundme-shtet në nyje Në rastin e algoritmeve të shpërndara, problemet kompjuterikë janë të lidhura në mënyrë tipike për grafikët.
### **Algoritmet e Centralizuara** 
* Grafika G është është I enkoduar si një string, dhe stringu I jepet si një input në një kompjuter.

### **Algoritmi Paralel** 
* Përsëri G grafika është enkoduar si një string. Çdo kompjuter mund të përqendrohet në një pjesë të kompjuterit për të ngjyrosur atë pjesë.
* Fokusi kryesorë është për një performancë te lartë të llogaritjeve që shfrytëzon fuqinë e kompjuterave të shumtë në menyrë paralele.
### **Algoritmi I Shpërndarë** 
* Grafika G është një strukturë e rrjetave kompjuterike është një kompjuter për çdo nyje G dhe një link komunikimi për secilin skaj G. fillimisht çdo kompjuter di vetëm për fqinjin e saj , kompjuterat duhet të shkëmbejn mesazhe me njëri-tjetrin për të zbuluar më shumë rreth strukturë së G. Secili kompjuter duhet të prodhojë ngjyrën e vet të prodhimit. Fokusi kryesor është në koordinimin e funksioneve e një sistemi arbitrar shpërndarë.

## **Referimet** 
Librat
* Andrews, Gregory R. (2000), Foundations of Multithreaded, Parallel, and Distributed Programming,http://en.wikipedia.org/wiki/Addison%E2%80%93Wesley"Addison-Wesley", ISBN 0-201-35752-6.

* Sanjeev"; Barak, Boaz (2009), Computational Complexity – A Modern Approach, http://en.wikipedia.org/wiki/Cambridge_University_Press"Cambridge", ISBN 978-0-521-42426-4.
* Thomas H."; Charles E."; Ronald L. (1990)", to Algorithms" (1st ed.),"MIT Press", ISBN 0-262-03141-8.
* http://en.wikipedia.org/wiki/Shlomi_Dolev"Dolev", Shlomi (2000), Self-Stabilization, Press", ISBN 0-262-04178-2.
* Elmasri, Ramez; Shamkant B." (2000), Fundamentals of Database Systems (3rd ed.), http://en.wikipedia.org/wiki/Addison%E2%80%93Wesley"Addison–Wesley", ISBN 0-201-54263-3.
* Ghosh, Sukumar (2007), Distributed Systems – An Algorithmic Approach, Chapman & Hall/CRC, ISBN 978-1-58488-564-1.
* http://en.wikipedia.org/wiki/Nancy_Lynch"Lynch", Nancy A. (1996), Distributed Algorithms, Kaufmann", ISBN 1-55860-348-4.
* Maurice P."; Nir N." (2008), The Art of Multiprocessor Programming, Kaufmann", ISBN 0-12-370591-6.
* Christos H." (1994), Computational Complexity, http://en.wikipedia.org/wiki/Addison%E2%80%93Wesley"Addison–Wesley", ISBN 0-201-53082-1.
* [David"](http://en.wikipedia.org/wiki/David_Peleg_(scientist)"Peleg,) (2000), Distributed Computing: A Locality-Sensitive Approach, SIAM, ISBN 0-89871-464-8.
Artikujt
* Cole, Richard; Uzi" (1986), "Deterministic coin tossing with applications to optimal parallel list ranking", Information and Control 70 (1): 32–53, doi:10.1016/S0019-9958(86)80023-7.
* Keidar, Idit (2008), "Distributed computing column 32 – The year in review", ACM SIGACT News 39 (4): 53–54, doi:10.1145/1466390.1466402.
* Nathan" (1992), "Locality in distributed graph algorithms", SIAM Journal on Computing 21 (1): 193–201, doi:10.1137/0221015.
* Moni"; Larry" (1995), "What can be computed locally?", SIAM Journal on Computing 24 (6): 1259–1277, doi:10.1137/S0097539793254571.
Website
* Godfrey, Bill (2002). "A primer on distributed computing".
* Peter, Ian (2004). "Ian Peter's History of the Internet". Retrieved 2009-08-04.