Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
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.