Webové stránky

Paralelismus potřebuje Killer Application for Mass Adoption

Komentáře pod videi: počítejme vždy s co nejvíce možnostmi zároveň

Komentáře pod videi: počítejme vždy s co nejvíce možnostmi zároveň
Anonim

Přidání více jader k mikroprocesorům vytvořilo významnou příležitost pro paralelní programování, ale je zapotřebí zaváděcí aplikace, která by posunula koncept do hlavního proudu, říkali výzkumníci během panelové diskuse na konferenci Hot Chips.

Většina softwaru dnes je stále psána pro postupné provádění a programovací modely je třeba změnit, aby bylo možné využít rychlejšího hardwaru a rostoucího počtu jader na čipu. Programátoři potřebují psát kód způsobem, který umožňuje rozdělit úkoly a provádět je současně na více jádrech a vláknech.

Spousta zaměření a peněz se dostala do budování rychlých strojů a lepších programovacích jazyků, uvedl David Patterson, počítač profesor vědy na University of California, Berkeley, na konferenci v Stanfordu v pondělí. Srovnatelně se věnuje malá pozornost psaní desktopových programů paralelně, ale aplikace jako hry a hudba by to mohly změnit. Uživatelé takových programů vyžadují nejlepší výkon v reálném čase, takže programátoři možná budou muset přijmout modely, které rozdělují úkoly na více vláken a jader.

Například nové formy paralelismusů by mohly přinést zlepšení kvality hudby přehrávané na počítačích a smartphony, řekl Patterson. Kód, který dělá lepší práci o oddělení kanálů a nástrojů, by mohl nakonec generovat zvuk prostřednictvím paralelních interakcí.

Kalifornská univerzita v Berkeley má paralelní výpočetní laboratoř, kde se výzkumníci snaží pochopit, jak se aplikace používají, což by mohlo pomoci optimalizovat kód pro kapesní zařízení. Cílem jednoho projektu je přenést kvalitní stolní počítače do kapesních zařízení optimalizací kódu na základě konkrétních úkolů, jako je vykreslování a analýza stránek. Dalším projektem je optimalizace kódu pro rychlejší získávání zdravotních informací. Laboratoř je financována především firmami Intel a Microsoft.

Vědci z Berkeley se pokoušejí dosáhnout paralelnosti tím, že nahradí bity kódu původně napsané pomocí skriptovacích jazyků jako Python a Ruby on Rails s novým C kódem nízké úrovně. Nový kód se konkrétně zaměřuje na konkrétní úkoly, jako je analýza konkrétního hlasového vzoru v aplikaci pro rozpoznávání řeči, řekl Patterson v rozhovoru ve středu. Kód je napsán pomocí OpenMP nebo MPI, aplikačních programovacích rozhraní určených k psaní strojově paralelních aplikací.

Odborníci potřebují napsat tento vysoce specializovaný paralelní kód, řekl Patterson. Snižuje dobu vývoje programátorů, kteří by jinak používali Python a Ruby on Rails, což ulehčuje vývoj aplikací, ale nezaměřují se na paralelismus, řekl Patterson v rozhovoru. Laboratoř ukázala specifické skoky výkonu úkolů o faktor 20 s kódem strojů na nízké úrovni.

Koncept paralelismus není nový a byl většinou doménou vysoce výkonných počítačů. Nízká úroveň rovnoběžnosti byla vždy možná, ale programátoři se setkali s hrozivým úkolem s nedostatkem softwarových nástrojů a stále se měnícího hardwarového prostředí.

"Nitě musí správně synchronizovat," řekl profesor elektrotechniky Christos Kozyrakis a počítačové vědy na Stanfordské univerzitě během prezentace před panelovou diskusí. Kód musí být napsán ve formě, která se bude chovat předvídatelně a bude měřit, jak budou k dispozici další jádra.

Kompilátory musí být také chytřejší a dostatečně vnímavé k tomu, aby rozdělily vlákna včas, takže výstupy jsou přijímány ve správném pořadí, řekl Kozyrakis. Chybné pokusy o vytvoření paralelního kódu by mohly způsobit chybný software, pokud konkrétní výpočty nejsou provedeny v určitém pořadí. To je problém, který se běžně označuje jako rasové podmínky. Kodéry mohou také potřebovat naučit se používat více programovacích nástrojů k dosažení jemnějších rovnoběžností, uvedli účastníci.

"Neexistuje žádný lazy-boy přístup k programování," řekl Patterson na konferenci.

Paměť a latence sítě vytvořily úzká místa v datové propustnosti, což by mohlo negovat výkon dosažený paralelním úkolem. Existují také různé programovací nástroje pro různé architektury, které ztěžují využití všech dostupných hardwarových nástrojů.

Mnoho dostupných nástrojů pro paralelní řešení je navrženo tak, aby využívaly paralelní procesní procesy procesorů a grafických jednotek pro zlepšení výkonu systému. Apple, Intel, Nvidia a Advanced Micro Devices jsou mezi společnostmi podporujícími OpenCL, což je paralelní programovací prostředí, které bude podporováno v nadcházejícím operačním systému Mac OS X 10.6, nazývaném také Snow Leopard, který má být vydán v pátek. OpenCL soutěží s Microsoftem, který propaguje své vlastní paralelní programovací nástroje DirectX a Nvidia, který nabízí rámec CUDA.

OpenCL obsahuje programovací jazyk podobný C s API (aplikačními programovacími rozhraními) pro správu distribuce jádra přes hardware jako jádra procesorů a další zdroje. OpenCL může pomoci Mac OS rychleji dekódovat video rozdělením zpracování pixelů na více procesorů a grafických procesorů v systému.

Všechny existující nástroje jsou zaměřeny na různé softwarové prostředí a využívají různých zdrojů, řekl Patterson. OpenCL, například, je zaměřen více na provádění úkolů na GPU. Vlastní modely, jako je DirectX, se těžko používají v heterogenních počítačích, zatímco některé modely, jako je OpenCL, se přizpůsobují pouze konkrétním prostředím, které se opírají o GPU.

"Nemyslím si, že [OpenCL] bude přijata ve všech architekturách. Řekl Patterson. "Musíme mezitím zkoušet jiné věci", jako by se snažil zlepšit programovací modely s běžně používanými vývojovými nástroji, jako je Ruby on Rails.

Zatímco členové publika uvedli, že paralelismus je problémem pro desetiletí říkali, že univerzity nyní přistupují k novému přístupu k práci s více programovacími nástroji, které umožňují paralelismus. Po letech financování vývoje čipů vláda také věnuje větší pozornost paralelnímu zpracování programů financování.

Kozyrakis uvedl, že Stanford zřídil do roku 2012 laboratoř, jejímž cílem je "učinit paralelní vývoj aplikací praktickým pro masy" do roku 2012.Výzkumníci pracují s firmami, jako jsou Intel, AMD, IBM, Sun, Hewlett-Packard a Nvidia.

Test okamžitých úkolů pro vývojáře by mohl být pokus o přeměnu stávajícího staršího kódu paralelně pro provedení na moderní čipy, Berkeley's Patterson řekl. Několik společností nabízí automatickou paralelizaci, ale přepsání a sestavování staršího kódu původně napsaného pro postupné provádění by mohlo být velkou výzvou.

"V těchto oblastech je třeba vynaložit peníze," řekl Patterson.