Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Povídky paralelistické: počítače von Neumannovského typu

Minule jsme si trochu přiblížili architekturu procesorů rodiny Intel P6. Přitom se nejedná o žádnou paralelní architekturu. Počítače s takovými procesory jsou klasické, von Neumannovského typu, přičemž principu paralelismu využívají pouze uvnitř svých výkonných jednotek. Navenek se chovají jako sekvenční systémy.

Tweetni to Twitter Jaggni to! Jagg Del.icio.us Delicious

Pro takové stroje zavedl pan Flynn někdy v 60. letech označení SISD. Tato zkratka má ještě tři sestřičky a spolu dohromady rozškatulkovávají počítačové architektury z hlediska paralelismu do čtyř částí:

Tabulka č. 461
Zkratka Paměť Typ počítače
SISD – Single Instruction Single Data (jedna instrukce na jedna data)   počítač von Neumannovského typu
SIMD – Single Instruction Multiple Data (jedna instrukce na více dat) sdílená vektorové počítače
MISD – Multiple Instruction Single Data (více instrukcí na jedna data)   (?)
MIMD – Multiple Instruction Multiple Data (více instrukcí na více dat) sdílená symetrické multiprocesory
soukromá masivně paralelní procesory nebo klastry pracovních stanic

Počítače von Neumannovského typu asi všichni dobře známe, protože je máme doma, a tak si zkusme trochu přiblížit skutečné paralelní architektury.

Vektorové počítače

Vektorové počítače pomáhají urychlit výpočet tím, že dovolují provádět instrukce na řadě (vektoru) hodnot najednou. Vektorové počítače obvykle obsahují jednu řídící a několik výkonných jednotek, přičemž každá výkonná jednotka je schopna zároveň s ostatními provádět stejnou instrukci na „svých“ datech.

Tím, že procesor nepracuje se skalárními veličinami, ale rovnou s vektory, se ve speciálních aplikacích dosahuje výrazného zrychlení. Tak například součet dvou vektorů B a C se na sekvenčním stroji musí provádět takto:

for (int i = 0; i <= n; i++) {
  A[i] = B[i] + C[i];
}

…zatímco vektorový procesor může vykonat uvedený kus kódu jako jedinou vektorovou instrukci:

A[0:n] = B[0:n] + C[0:n]

Příklady strojů: Cray, NEC SX-4

Za zmínku stojí, že i obyčejná Pentia mají několik vektorových instrukcí. Jsou jimi instrukce MMX (Multimedia Extensions – Pentium, Pentium II) a SSE (Streaming SIMD Extensions – Pentium III) určené pro zrychlení práce s multimédii, audio/video a ve 3D oblasti.

Zkratkou MMX se souhrnně nazývá 57 instrukcí, které se poprvé objevily u posledních procesorů Pentium a u nástupce procesoru Pentium Pro – u Pentia II. Dovolují paralelně provádět nad více datovými vstupy různé matematické operace vyskytující se typicky v aplikacích pro zpracování zvuku, grafiky a videa.

SSE jsou obdobou instrukcí MMX. Poprvé spatřily světlo světa v procesorech Pentium III. Streaming SIMD Extensions zavádí 70 nových SIMD instrukcí. Na rozdíl od MMX, které dokáží pracovat jen s celými čísly, instrukce SSE zvládají výpočty s pohyblivou desetinnou čárkou.

Symetrické multiprocesory

Symetrické multiprocesory jsou charakteristické tím, že se skládají z několika (obvykle do desítek) procesorů a sdílené paměti. Vše je propojeno nějakým komunikačním subsystémem (sběrnicí). Každý procesor má svůj vlastní proud instrukcí a dat, někdy mohou mít i trochu své lokální paměti (cache), jednotlivé procesory spolu mohou přes sdílenou paměť komunikovat.

Z ostatních zástupců symetrických multiprocesorů zmiňme alespoň SGI Power Challenge.

Masivně paralelní počítače

Masivně paralelní počítače se skládají z relativně samostatných uzlů, kterých může být dohromady propojeno až na tisícovky. Každý uzel má svůj procesor a vlastní paměť; na každém běží jeho vlastní kopie operačního systému. Úlohy běžící na procesech spolu komunikují předáváním zpráv po meziuzlových linkách. Komunikace je tady na rozdíl od symetrických multiprocesorů pomalejší, ale zase je možno využít řádově vyššího počtu procesorů.

Příklad: IBM SP

Klastr (cluster) pracovních stanic

Tento typ paralelní architektury je občas označován jako distribuovaný systém. V podstatě jde o řadu počítačů propojených sítí (LAN/WAN) tak, aby na nich mohla běžet paralelní úloha (n * PC + síť + software pro komunikaci mezi procesy).

Na klastrech pracovních stanic je kouzelné právě to, že jsou často tvořeny obyčejnými („pomalými“) počítači, které jiní používají ke kancelářským pracím, hraní nebo čtení Roota na Internetu. Jedná se tedy o velice levné řešení potřeby superpočítače a asi nebude těžké uhodnout, že v něm bude mít prsty i nějaký ten tučňák.

Hlavním rozdílem mezi klastrem a obyčejnou lokální sítí je, že klastry kladou veliký důraz na rychlost komunikace – předávání zpráv mezi procesory. A tak zatímco pro obyčejnou síť postačí Ethernet (popř. Fast Ethernet), klastry se staví na bázi vícenásobného Fast/Giga Ethernetu, Myrinetu a podobně. Komunikační subsystém je rovněž narozdíl od standardní sítě izolovaný od vnější síťové infrastruktury.

Uzly klastru jsou narozdíl od pracovních stanic počítačové sítě zpravidla (ale není to podmínkou) hardwarově/sof­twarově identické a jsou vyhrazeny pouze pro spolupráci v rámci klastru. Jednotlivými uzly klastrů jsou obvykle pouze základní jednotky bez periferií (tj. bez klávesnic, monitorů apod.). Parametry OS jsou optimalizovány pro dávkovou průchodnost na rozdíl od pracovních stanic, kde se preferuje interaktivní přístup.

Software klastrů umožňuje jednoznačnou identifikaci procesů v rámci celého klastru. Díky tomu může proces na nějakém uzlu poslat signál druhému procesu, který běží na jiném uzlu. To u pracovních stanic není možné.

Klastry mohou plnit různé úlohy. Mohou být sestaveny tak, aby dokázaly vyvažovat zátěž (load balancing), kdy požadavky různých klientů jsou směrovány na jednotlivé uzly podle současného zatížení, nebo aby přinesly vysokou dostupnost (high availability), kdy díky určité redundanci přebírá práci jednoho uzlu v případě výpadku jiný uzel, popřípadě lze klastry specializovat na provádění paralelních výpočtů – pak hovoříme o

výpočetních klastrech.

Na bázi GNU/Linuxu vznikl stále se vyvíjející systém pro práci s klastry: Beowulf. Ale o něm až příště.

davame_internetu_obsah
       

Odkazy:

Top500 – žebříček nejrychlejších superpočítačů svě­ta

Michal Burda

Michal Burda

Michal Burda vystudoval informatiku a aplikovanou matematiku a nyní pracuje na Ostravské univerzitě jako odborný asistent. Zajímá se o data mining, Javu a Linux.

Školení: Linux – Zálohování, Vysoká dostupnost, SNMP dohled

Na třídenním školení se naučíte nainstalovat a spravovat systém zálohování, replikace dat a vysoké dostupnosti dat. Dále také pracovat s RAID a LVM poli a nainstalovat a spravovat si vlastní dohledový systém.

Podrobnější informace a přihláška

Ohodnoťte jako ve škole:
Průměrná známka 2,68

Přehled názorů

High available, Load balancing, Fail safe
Kamen 7. 8. 2003 07:27
Nový
└ 
Re: High available, Load balancing, Fail safe
Yenya 7. 8. 2003 09:25
Nový
 
└ 
Re: High available, Load balancing, Fail safe
Pichi 7. 8. 2003 13:14
Nový
Cim dal lepsi
Jirka Mares 7. 8. 2003 09:22
Nový
A co [cc-]NUMA?
Yenya 7. 8. 2003 09:33
Nový
└ 
Re: A co [cc-]NUMA?
hkmaly 7. 8. 2003 17:30
Nový
MISD
Michal 8. 8. 2003 22:25
Nový
aktualny zoznam TOP500
wintermute 10. 8. 2003 12:10
Nový
a co 3DNOW!
Matus "fantomas" Uhlar 19. 8. 2003 10:11
Nový
       

Tento text je již více než dva měsíce starý. Chcete-li na něj reagovat v diskusi, pravděpodobně vám již nikdo neodpoví. Pro řešení aktuálních problémů doporučujeme využít naše diskusní fórum.

Zasílat nově přidané příspěvky e-mailem