Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Aké sú kľúčové rozdiely medzi paralelným a distribuovaným výpočtom?

Zatiaľ čo paralelné aj distribuované výpočty zahŕňajú použitie viacerých procesorov na rýchlejšie riešenie problému, výrazne sa líšia v ich architektúre, komunikačných mechanizmoch a spôsobe, akým spracúvajú zdieľané zdroje. Tu je rozdelenie kľúčových rozdielov:

1. Architektúra a hardvér:

* paralelné výpočty:

* Zvyčajne zahŕňa pevne spojené procesory v jednom stroji alebo v malom klastri.

* Procesory často zdieľajú spoločný pamäťový priestor (architektúra zdieľanej pamäte) alebo majú veľmi rýchle prepojenia pre odovzdávanie správ (napr. V rámci superpočítača).

* Zamerajte sa na minimalizáciu latencie pre komunikáciu medzi procesormi.

* Často sa spolieha na špecializované hardvérové ​​architektúry, ako sú viacjadrové CPU, GPU alebo špecializované procesory.

* Distribuované výpočty:

* Zahŕňa voľne spojené Procesory sa šírili cez viacero strojov, často geograficky rozptýlené.

* Stroje Nezdieľajte spoločný pamäťový priestor . Každý stroj má svoju vlastnú miestnu pamäť.

* Komunikácia sa spolieha na sieťové pripojenia , ktoré sú všeobecne pomalšie a menej spoľahlivé ako prepojenia používané v paralelných systémoch.

* Používa komoditný hardvér (štandardné servery, stolné počítače atď.) Pripojené sieťou (napr. LAN, WAN, internet).

2. Komunikácia:

* paralelné výpočty:

* Zdieľaná pamäť: Spracovatelia komunikujú čítaním a písaním do umiestnenia zdieľanej pamäte. Vyžaduje starostlivé synchronizačné mechanizmy (zámky, semafory), aby sa predišlo rasovým podmienkam.

* Prejdenie správy: Explicitné správy sa odosielajú medzi procesormi. Toto je častejšie v prísne spojených zhlukoch, kde priame zdieľanie pamäte nie je možné alebo efektívne.

* Komunikácia je všeobecne rýchla a nízka latencia .

* Distribuované výpočty:

* Prejdenie správy: Komunikácia sa vyskytuje predovšetkým prostredníctvom správ prenášaných cez sieť. Príklady zahŕňajú TCP/IP, HTTP alebo špecializované protokoly.

* volania vzdialeného postupu (RPC): Bežná abstrakcia, keď program na jednom stroji vyvoláva postup na inom stroji.

* Komunikácia je všeobecne pomalšia a vyššia latencia Kvôli režijnom sieti. Zlyhania siete sú tiež hlavným problémom.

3. Programovací model:

* paralelné výpočty:

* Programovacie modely často predpokladajú zdieľaný pamäťový priestor a vyžadujú starostlivé riadenie synchronizácie a konzistentnosti údajov.

* Bežné modely programovania zahŕňajú:

* Zdieľaná pamäť: OpenMP, Pthreads

* Prejdenie správy: MPI (rozhranie odovzdávania správ)

*Ľahšie programovanie v porovnaní s distribuovaným výpočtom, *Pri používaní zdieľanej pamäte *, pretože vývojári nemusia explicitne spravovať detaily komunikácie. Správa prechádzajúce v paralelnom výpočte je stále zložitá, ale všeobecne jednoduchšia ako v distribuovaných systémoch.

* Distribuované výpočty:

* Programovacie modely sa často zameriavajú na toleranciu porúch, distribúciu údajov a riešenie problémov siete.

* Bežné modely programovania zahŕňajú:

* mapreduce (hadoop): Pre rozsiahle spracovanie údajov.

* mikroservis: Navrhovanie aplikácií ako zbierky malých nezávislých služieb.

* fronty správy (napr. RabbitMQ, kafka): Pre asynchrónnu komunikáciu medzi službami.

* Zložitejšie programovanie v porovnaní s paralelným výpočtom, pretože vývojári musia explicitne zvládnuť komunikáciu, serializáciu údajov a toleranciu porúch.

4. Tolerancia porúch:

* paralelné výpočty:

* Zlyhanie jedného procesora môže často znižovať celý systém, najmä v architektúrach zdieľanej pamäte.

* Tolerancia porúch je zvyčajne menšia obavy v porovnaní s distribuovanými systémami, pretože sa často používajú v kontrolovaných prostrediach.

* Distribuované výpočty:

* tolerancia porúch je kritickým zvážením dizajnu. Systém musí byť schopný pokračovať v prevádzke, aj keď niektoré stroje zlyhajú.

* Techniky zahŕňajú:

* Replikácia: Dáta a výpočty sú duplikované vo viacerých strojoch.

* kontrola: Pravidelné ukladanie stavu výpočtu, aby sa mohol reštartovať, ak dôjde k zlyhaniu.

* Algoritmy konsenzu (napr. Paxos, raft): Zabezpečiť dohodu medzi strojmi v prítomnosti zlyhaní.

5. Škálovateľnosť:

* paralelné výpočty:

* Škálovateľnosť je často obmedzená architektúrou stroja. Rozšírenie zvyčajne znamená pridávanie ďalších procesorov alebo pamäte do toho istého stroja, čo môže byť drahé a má fyzické limity.

* Škálovanie na veľmi veľké množstvo procesorov sa stáva čoraz ťažším v dôsledku komunikácie nad hlavou a synchronizáciou prekážok.

* Distribuované výpočty:

* vysoko škálovateľné. Ľahko škálujte pridaním ďalších strojov do siete.

* Dokáže zvládnuť obrovské množstvo údajov a výpočtov distribúciou pracovného zaťaženia do veľkého klastra.

* Horizontálne škálovanie (pridanie viacerých strojov) je často nákladovo efektívnejšie ako vertikálne škálovanie (aktualizácia jedného stroja).

6. Príklady:

* paralelné výpočty:

* Vedecké simulácie (predpovedanie počasia, výpočtová dynamika tekutín).

* Vysoko výkonné databázy bežiace na viacjadrovom serveri.

* Obrázok a video spracovanie na GPU.

* Distribuované výpočty:

* Vyhľadávacie nástroje (Google, Bing).

* Sociálne siete (Facebook, Twitter).

* Platformy cloud computingu (AWS, Azure, GCP).

* Platformy elektronického obchodu (Amazon, eBay).

* Siete kryptomeny (bitcoín, Ethereum).

v súhrne:

| Funkcia | Paralelné výpočty Distribuované výpočty

|--------------------|------------------------------------------------------|-------------------------------------------------------|

| architektúra | Pevne spojená, často zdieľaná pamäť. | Voľne spojené, žiadna zdieľaná pamäť. |

| komunikácia | Rýchla, nízka latencia (zdieľaná pamäť alebo rýchle prepojenia). | Pomalšia, vysoká latencia (sieť založená na sieti). |

| Programovanie | Simple (zdieľaná pamäť), komplex s odovzdávaním správ | Zložitejšia (explicitná komunikácia, tolerancia porúch). |

| tolerancia porúch | Menší dôraz, jediný bod zlyhania. | Kritické zváženie dizajnu, redundancia. |

| škálovateľnosť | Obmedzené hardvérovou architektúrou. | Vysoko škálovateľné, vodorovné škálovanie. |

Pomysli na to takto:

* paralelné výpočty: Tím kuchárov, ktorí pracujú bok po boku v tej istej kuchyni *, zdieľajúc ingrediencie a vybavenie, na rýchle pripravenie jedla.

* Distribuované výpočty: Sieť reštaurácií v rôznych mestách, z ktorých každá má vlastnú kuchyňu a personál, spolupracujúca na splnení veľkej objednávky stravovania. Potrebujú oznámiť objednávky a koordinovať dodanie.

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené