Realizacija porazdeljenega algoritma za izra un drevesa ... porazdeljenega algoritma za izra un drevesa

  • View
    212

  • Download
    0

Embed Size (px)

Text of Realizacija porazdeljenega algoritma za izra un drevesa ... porazdeljenega algoritma za izra un...

UNIVERZA V LJUBLJANIFAKULTETA ZA RAUNALNITVO IN INFORMATIKO

Miha Baloh

Realizacija porazdeljenega algoritma zaizraun drevesa najkrajih poti

DIPLOMSKO DELONA VISOKOOLSKEM STROKOVNEM TUDIJU

Mentor: doc. dr. Botjan Slivnik

Ljubljana, 2010

I Z J A V A O A V T O R S T V U

diplomskega dela

Spodaj podpisani/-a Miha Baloh ,

z vpisno tevilko 63060015 ,

sem avtor/-ica diplomskega dela z naslovom:

Realizacija porazdeljenega algoritma za izraun drevesa najkrajih poti__________________

___________________________________________________________________________

S svojim podpisom zagotavljam, da:

sem diplomsko delo izdelal/-a samostojno pod mentorstvom (naziv, ime in priimek)

doc. dr. Botjan Slivnik_________________________________________________

in somentorstvom (naziv, ime in priimek)

____________________________________________________________________

so elektronska oblika diplomskega dela, naslov (slov., angl.), povzetek (slov., angl.)ter kljune besede (slov., angl.) identini s tiskano obliko diplomskega dela

soglaam z javno objavo elektronske oblike diplomskega dela v zbirki Dela FRI.

V Ljubljani, dne ____________________ Podpis avtorja/-ice: ________________________

ZahvalaDoc. dr. Botjanu Slivniku za pomo, pregledovanje in nasvete pri izdelavi diplomskenaloge.

Sodelavcem v slubi za razumevanje pri izdelavi diplomske naloge.

Druini in punci, ki so mi vedno stali ob strani in so mi vedno v opomin, da v ivljenjuobstajajo tudi pomembneje stvari od raunalnikov.

Hvala vsem.

Kazalo

Povzetek ..................................................................................................................................... 1Abstract ...................................................................................................................................... 31. Uvod ................................................................................................................................... 5

1.1. Moorov zakon.............................................................................................................. 51.2. Vejedrni procesorji .................................................................................................... 71.3. Vzporedni raunalniki ................................................................................................. 7

1.3.1. Sistem s porazdeljenim pomnilnikom .................................................................. 81.3.2. Sistem s skupnim pomnilnikom ........................................................................... 9

1.4. Porazdeljeni sistemi ..................................................................................................... 91.5. Porazdeljeno procesiranje in programiranje .............................................................. 10

2. Porazdeljen algoritem za izraun drevesa najkrajih poti ................................................ 132.1. Pregled ....................................................................................................................... 132.2. Definicija problema drevesa najkrajih poti .............................................................. 132.3. Metode reevanja problema na klasien nain .......................................................... 15

2.3.1. Dijkstrin algoritem ............................................................................................. 152.3.2. BellmanFordov algoritem ................................................................................ 15

2.4. Definicija reevanja na porazdeljen nain ................................................................. 162.5. Algoritem poplavljanja .............................................................................................. 16

2.5.1. Slabe lastnosti..................................................................................................... 162.5.2. Dobre lastnosti.................................................................................................... 162.5.3. Prikaz delovanja algoritma................................................................................. 16

2.6. Metoda reevanja na porazdeljen nain z metodo poplavljanja ................................ 173. Java RMI programska tehnologija ................................................................................... 19

3.1. Osnovni primer delovanja tehnologije ...................................................................... 193.1.1. Definicija oddaljenega vmesnika ....................................................................... 193.1.2. Implementacija strenika.................................................................................... 203.1.3. Implementacija odjemalca.................................................................................. 213.1.4. Potek povezovanja odjemalca s strenikom....................................................... 233.1.5. Prevajanje izvornih datotek ................................................................................ 233.1.6. Zagon registra Java RMI, strenika in odjemalca .............................................. 24

4. Java program Vozlie ..................................................................................................... 274.1. Predstavitev programa Vozlie ................................................................................ 274.2. Programska arhitektura programa Vozlie .............................................................. 27

4.2.1. Glavni strenik (Server) ..................................................................................... 27

4.2.2. Glavni odjemalec (Client) .................................................................................. 294.2.3. Seznam klientov sosedov (Neigbours) ............................................................... 304.2.4. Seznam klientov vozli (Nodes) ....................................................................... 30

4.3. Implementacija .......................................................................................................... 304.3.1. Nastavitve programa Vozlie ........................................................................... 304.3.2. Korensko vozlie .............................................................................................. 324.3.3. Navadno vozlie ............................................................................................... 344.3.4. Algoritem za izraun usmerjevalnih tabel.......................................................... 344.3.5. Algoritem za izris drevesa najkrajih poti .......................................................... 35

5. Zakljuek .......................................................................................................................... 37Slovar tujk ................................................................................................................................ 39Dodatek .................................................................................................................................... 41

A: Izvorna koda .................................................................................................................... 41Kazalo slik................................................................................................................................ 43Kazalo tabel.............................................................................................................................. 45Viri in literatura ........................................................................................................................ 47

1

PovzetekDanes uporabljamo vejedrne procesorje in irokopasovni internet, ki nam je skoraj

vedno na voljo. Da bi v dananjih asih im bolj izkoristili vire, ki so nam na voljo, bipotrebovali porazdeljene algoritme. Porazdeljeni algoritmi se uporabljajo v sistemih kjerimamo na voljo ve raunalnikih enot ali ve procesorskih jeder in za izraun reitveproblema uporabimo vso razpololjivo strojno opremo. Za dober izkoristek virov potrebujemoporazdeljeno programsko opremo, ki bi tekla na vseh procesnih enotah hkrati.

V diplomski nalogi sem reil problem iskanja drevesa najkrajih poti v grafu sporazdeljenim algoritmom. Porazdeljeni algoritem je zasnovan tako, da vsakemu vozliugrafa pripada njemu lastna procesna enota in da ima vsako vozlie zgolj informacijo o svojihsosedih, ne pa tudi informacije o celotnem grafu. Tako sem procesne enote razbil na vozlia.Iz pogleda na izvirni problem vidimo, da je graf sestavljen iz vozli in povezav. Napisal semprogram Vozlie, ki tee na eni procesni enoti in se povee z drugimi Vozlii, skupaj patvorijo mreo Vozli, ki predstavlja graf v katerem iemo drevo najkrajih poti. Zasporoanje med Vozlii sem uporabil Javino RMI tehnologijo.

Kljune besede: porazdeljeni algoritem, porazdeljeni sistemi, drevo najkrajih poti,tehnologija Java RMI.

2

3

AbstractNowadays we use multi-core processors and broadband internet, which is usually

available. If we want efficient use of available resources, we should use distributedalgorithms. Distributed algorithms are used in systems with more computer units or moreprocessor cores and for computing a result we use all available hardware. For efficient use ofresources we need distributed software, which runs on all computers at the same time.

In thesis I had written and solved the problem of shortest paths tree with distributedalgorithm. The distributed algorithm is designed in a way, that every graph node belong itsown process unit. And every node has information only about its neighbours and notinformation about co