Analýza: Čipy s více jádry jsou výzvou pro vývojáře softwaru

22. 3. 2009

Sdílet

Přidání většího množství procesorových jader se zdá být správnou cestou, jak zvýšit výkon serverových a desktopových čipů, ovšem jen za předpokladu, že se podaří vyřešit některé technické a programové úkoly. Na takovém závěru se shodli účastníci Multicore Expo v kalifornské Santa Clara.

„Valná většina softwaru je v dnešní době stále určena pro jedno-jádrové čipy. Brzy tak bude nutné jej přepracovat a aktualizovat pro využití potenciálu většího počtu jader, které Intel, Sun Microsystems a další výrobci čipů přidávají do svých výrobků“ popsal aktuální požadavky trhu Linley Gwennap, prezident a hlavní analytik v The Linley Group.

Off-the-shelf (COTS) aplikace často běží rychleji na procesorech používajících až čtyři jádra, ovšem po překročení této hranice může naopak dojít k opačnému účinku. To ve své zprávě nedávno potvrdila i společnost Gartner, zabývající se výzkumem informačních technologií.

Tvůrci čipů a stavitelé systémů začali podle Gwennapa více podporovat vzdělávání vývojářů a poskytují jim lepší nástroje pro více-jádrové programování. Příkladem jdou i společnosti Intel a Microsoft, kteří již v minulém roce informovali o svém záměru investovat asi 20 milionů amerických dolarů do vytvoření dvou výzkumných center na amerických univerzitách, na kterých by se zabývali právě využitím více-jádrových čipů. „Nedostatek více-jádrových programovacích nástrojů je snad největším současným problémem průmyslu“ říká Gwennap.

Psaní aplikací způsobem, který umožňuje různé části výpočetní úlohy, jako je řešení matematického problému nebo renderování obrazu, rozdělit a provést současně ve více jádrech, není ničím novým. Tento způsob, který je často nazýván jako paralelní computing, byl však až dosud převážně omezený na specializovaná, vysoce výkonná výpočetní prostředí.

V posledních letech ale Intel či AMD používají zvyšování počtu jader jako energeticky účinný způsob jak zvýšit výkonnost čipu, což je výrazný odklon od tradičních postupů. Tak například, nadcházející čipy Nehalem-EX budou mít osm jader, zatímco AMD projektuje dvanácti-jádrové čipy určené pro servery. Obě firmy navíc počítají s přidáním multi-threading schopností, které každému jádru umožní pracovat na více řádcích kódu současně. To znamená, že mainstreamové aplikace musí být napsané cestou umožňující využití všech jader.

Několik paralelních programovacích nástrojů je již k dispozici, např. Parallel Studio pro C a C++ od Intelu. Dalšími tvůrci nástrojů jsou pak i společnosti Codeplay, Polycore Software či Click Arts. K dispozici je i nový OpenCL, založený na programovacím jazyce C a široce podporovaný společnostmi Apple, Intel, AMD či Nvidia. Hlavním problémem je tak zatím neochota vývojářů překlenout propast mezi hardwarem a softwarem a vytvářet dobré paralelní programy. Řada kodérů totiž více jádrům stále nepřišla na chuť a je proto důležité, aby začali studovat architekturu nových čipů pro pochopení toho, jak by jejich kód mohl fungovat lépe.