Disa komputado
Disa komputado estas kampo de komputadscienco, kiu temas pri disaj sistemoj. Disa sistemo konsistas el multaj aŭtonomaj komputiloj, kiuj komunikas tra komputilreto. La komputiloj interagas inter si por atingi komunan celon. Komputila programo, kiu funkcias en disa sistemo estas nomata disa programo, kaj disa programado estas la procezo skribi tiajn programojn.[1]
Disa komputado referencas ankaŭ al la uzo de disaj sistemoj por solvi komputajn problemojn. En disa komputado, problemo estas dividita en multajn taskojn, ĉiu el ili estas plenumata de unu komputilo.[2]
Enkonduko
[redakti | redakti fonton]La vorto disa en esprimoj kiaj "disa sistemo", "disa programado", kaj "disa algoritmo" origine referencis al komputilretoj kie la individuaj komputiloj estis fizike disaj en iu geografia regiono.[3] La terminoj estas nun uzataj en multe pli larĝa senco, eĉ reference al aŭtonomaj procezoj kiuj funkcias en la sama fizika komputilo kaj interagas inter si per mesaĝoj.[4]
Kvankam ne estas nur unu difino de disa sistemo,[5] la sekvantaj difinaj propraĵoj estas komune uzataj:
- Estas pluraj aŭtonomaj komputaj entoj, ĉiu el ili havas sian propran lokan memoron.[6]
- La entoj komunikas inter si per mesaĝado.[7]
En tiu artikolo, la komputaj entoj estas nomataj komputiloj aŭ nodoj.
Disa sistemo povas havi komunan celon, kia la solvadon de granda komputa problemo.[8] Alternative, ĉiu komputilo povas havi sian propran uzanton kun apartaj bezonoj, kaj la celo de la disa sistemo estas la kunordigo de la uzo de komunaj rimedoj aŭ la provizo de komunikaj servoj al la uzantoj.[9]
Aliaj tipaj propraĵoj de disaj sistemoj inkluzivas la sekvantajn:
- La sistemo devas toleri misfunkciojn de individuaj komputiloj.[10]
- La strukturo de la sistemo (reta topologio, reta atendotempo, nombro de komputiloj) ne estas antaŭe konata, la sistemo povas konsisti el diversaj tipoj de de komputiloj kaj retaj ligiloj, kaj la sistemo povas ŝanĝiĝi dum la plenumo de disa programo.[11]
- Ĉiu komputilo havas nur limigitan, nekompletan vidon de la sistemo. Ĉiu komputilo povas koni nur parton de la enigo.[12]
![](https://upload.wikimedia.org/wikipedia/commons/thumb/c/c6/Distributed-parallel.svg/260px-Distributed-parallel.svg.png)
(c) A parallel system.
Paralela aŭ disa komputado?
[redakti | redakti fonton]La terminoj "konkura komputado", "paralela komputado", kaj "disa komputado" multe sin interkovras, kaj neniu distingo ekzistas inter ili.[13] La sama sistemo povas estis konsiderata kiel "paralela" kaj "disa"; la procesoroj en tipe disa sistemo funkcias konkure paralele.[14] Paralela komputado povas esti vidata kiel aparta strikte ligita formo de disa komputado,[15] kaj disa komputado povas esti vidata kiel malstrikte ligita formo de paralela komputado.[5] Tamen, eblas klasifiki konkurajn sistemojn kiel "paralelaj" aŭ "disaj" uzante la sekvantan kriterion:
- En paralela komputado, ĉiuj procesoroj aliras komunan memoron. Komuna memoro povas esti uzata por interŝanĝi informon inter procesoroj.[16]
- En disa komputado, ĉiu procesoro havas sian propran privatan memoron. Informo estas interŝanĝata per mesaĝoj inter la procesoroj.[17]
La bildo dekstre, ilustras la diferencon inter disa kaj paralela sistemoj. Bildo (a) estas skema vido de tipe disa sistemo; kiel kutime, la sistemo estas prezentita kial diagramo en kiu ĉiu nodo estas komputilo kaj ĉiu linio inter du nodoj estas komunika ligilo. Bildo (b) montras la saman disan sistemon pli detale: ĉiu komputilo havas sian propran lokan memoron, kaj informo estas interŝanĝebla nur per mesaĝoj de nodo al alia uzante la haveblajn komunikajn ligiloj. Bildo(c) montras paralelan sistemon, en kiu ĉiu procesoro havas rektan aliron al iu komuna memoro.
La situacio estas ankoraŭ pli komplika pro la tradiciaj uzoj de la terminoj paralela kaj disa algoritmoj, kiuj ne tute respondas al tiuj de paralela kaj disa sistemoj; vidi la sekcion Teoriaj fundamentoj sube por pli detala diskuto. Tamen, altkapabla paralela komputado en komunmemora procesoraro uzas paralelajn algoritmojn kiam la kunordigo de grandaj disaj sistemoj uzas disajn algoritmojn.
Referencoj
[redakti | redakti fonton]- ↑ Andrews (2000). Dolev (2000). Ghosh (2007), p. 10.
- ↑ Godfrey (2002).
- ↑ Lynch (1996), p. 1.
- ↑ Andrews (2000), p. 291–292. Dolev (2000), p. 5.
- ↑ 5,0 5,1 Ghosh (2007), p. 10.
- ↑ Andrews (2000), p. 8–9, 291. Dolev (2000), p. 5. Ghosh (2007), p. 3. Lynch (1996), p. xix, 1. Peleg (2000), p. xv.
- ↑ Andrews (2000), p. 291. Ghosh (2007), p. 3. Peleg (2000), p. 4.
- ↑ Ghosh (2007), p. 3–4. Peleg (2000), p. 1.
- ↑ Ghosh (2007), p. 4. Peleg (2000), p. 2.
- ↑ Ghosh (2007), p. 4, 8. Lynch (1996), p. 2–3. Peleg (2000), p. 4.
- ↑ Lynch (1996), p. 2. Peleg (2000), p. 1.
- ↑ Ghosh (2007), p. 7. Lynch (1996), p. xix, 2. Peleg (2000), p. 4.
- ↑ Ghosh (2007), p. 10. Keidar (2008).
- ↑ Lynch (1996), p. xix, 1–2. Peleg (2000), p. 1.
- ↑ Peleg (2000), p. 1.
- ↑ Papadimitriou (1994), Chapter 15. Keidar (2008).
- ↑ See references in Introduction.