Berta Sándor

Intel: akár 1000 magos processzorok is jöhetnek

A gyártó olyan modelleken dolgozik, amelyek a jelenlegi termékeknél sokkal több processzormagot tartalmaznak, ugyanakkor a munka igazi kihívást jelent a mérnökök számára.

A New Orleansban rendezett Supercomputer 2010 nevű szakmai konferencián Timothy Mattson, az Intel egyik kutatója mutatta be a társaság Single Chip Cloud Computer (SCC) nevű chipjét, amelyben sikerült 48 processzormagot elhelyezni. A szakember szerint ez az architektúra lehetővé teszi, hogy akár 1000 magot is használhassanak egyetlen chipben. Az egyre több processzormag integrálása viszonylag egyszerű, azonban komoly kihívást jelent a folyamatosan növekvő számú CPU-magok közötti összeköttetés megteremtése és biztosítása. Mattson szerint ez a feladat annyira bonyolult, hogy hiába lenne a chipben egyre több processzormag, annak a teljesítménye végül nem nőne, sőt mivel átlépné a teljesítményhatárt inkább egyre jobban csökkenne. Az Intel kutatói így most ennek a problémának a megoldásán dolgoznak, azonban ez némi időbe telik.


A Single Chip Cloud Computer a Polaris program utódjának számít. A gyártó már 2007-ben azt ígérte, hogy képes lesz egyetlen chipen 80 processzormagot elhelyezni. Az ígéretét sikerült is tartania, igaz, végül a prototípusba CPU-magok helyett egyszerű FPU-egységeket integráltak. A bemutatott modellt a TeraScale Research Program keretében fejlesztették ki és még nem került be a vállalat termék-ütemtervébe. Az Intel a kutatóprojekttel azt szeretné bebizonyítani, hogy igenis át lehet lépni a jelenlegi teljesítményhatárokat és le lehet küzdeni a fejlesztés során felmerülő nehézségeket.

A már korábban bemutatott 48 magos SCC-nél az egyes processzormagok közötti kommunikációra egy úgynevezett Mesh-hálózat szolgál, amely egy saját RCCE nevű protokollt használ. Az eddigi tesztek azt bizonyították, hogy az RCCE legalább annyira hatékonyan dolgozik, mint egy Linux-cluster, de 1000 mag integrálása és használata esetén már elérnék a szinkronizációs lehetőségek felső határát, így a rendszer összteljesítménye csökkenni kezdene.

A cég szerint ugyanakkor az SCC esetében nem a teljesítmény a fontos, ehelyett inkább a jövőbeli asztali alkalmazások többmagos processzorokra optimalizálására helyezik a fő hangsúlyt. A 45 nanométeres gyártási eljárással készülő és üresjáratban 25 Wattot, míg maximálisan 125 Wattot fogyasztó SCC teljesítménye akár 2 Teraflops is lehet. A CPU prototípusait világszerte 100 kiválasztott intézmény teszteli idén ősz óta.

Hozzászólások

A témához csak regisztrált és bejelentkezett látogatók szólhatnak hozzá!
Bejelentkezéshez klikk ide
(Regisztráció a fórum nyitóoldalán)
  • J3Surno #35


    Az! Sajnos
  • torzsvendeg #34
    Intel: akár 1000 magos processzorok is jöhetnek
    Én: akár piros hó is eshet
  • Komolytalan #33
    Az F1 pilóták meg általában nagyon lusták, mert ha mondom nekik hogy szántsák már ki a kertet a 600 lóerős traktorukkal, akkor mind azt mondja, hogy ezzel nem is lehet szántani. Holott a lóerő megvan hozzá bőven, szóval biztos kamuznak.
  • Komolytalan #32
    Víruskeresés adatbázisban az jellemzően memória intenzív feladat. Kép szerkesztés memória intenzív (egy pixelhez kellenek a szomszédos pixelek is gyakran). Beszéd felismerés mivel adatbázis alapú, így szintén. Kódoló/dekódoló/tömörítés szintén, ráadásul ott az előző eredményekre nagyon sokszor szükség van. Neurális háló alapú rendszerek szintén rengeteg memória, egyszerű kód.

    Sajnos az van, hogy a modern algoritmusok arra épülnek, hogy a memória gyors, és ez az alapvetés dől meg a sok magos rendszereknél. Eleve a fordítók is elég gyakran stack orientáltak - kevéssé használják ki a regisztereket. És ugye a stack az memória.
  • Komolytalan #31
    Értem én amit te írtál, meg te is érted amit én írtam - ne vitázzunk tovább:-) Szerintem azon kell elgondolkodni, hogy a memória (vagy közös használatú cache) hányszor lehet lassabb, mint az össz proci teljesítmény. Mert ez itt a kulcskérdés, hogy hány ütemciklusnyi nem memóriahasználó utasítás lehet egymás után egy gépi kódú programban. 1000? Biztos nem. 10? Inkább. Túl sok azért nem lehet, mert akkor már inkább táblázatot kellene használni - a modern programozás sok adat, kompakt kód -, ami meg megint csak memória hozzáférés...

    Szerintem nem elég a több és gyorsabb memória. 100x nem lehet memóriát gyorsítani, mondjuk 1 év alatt. Inkább a memória Random Access tulajdonságát kellene felülbírálni. Kellenének Semi-ROM, vagy ritkán írható, konstans memóriák is a gépbe. Ha egy memória részt lehetne hosszabb ideig "konstansnak" definiálni, akkor abból megérné akár 1000 különböző mag számára is másolatot készíteni a saját dedikált cacheükbe, mert biztos lehetne benne a cache/memória vezérlő, hogy ritkán kell az 1000x lemásolást elvégeznie. De amíg 3 bytenyi memóriaterület változik miliszekundumonként, az utána következő 10K meg a program futása alatt végig statikus - mert a programban konstansnak vettük fel -, addig ezt nem lehet megcsinálni. Szóval szerintem a magok számának hatékony növeléséhez a jelenlegi memória felépítést alapvetően kell megváltoztatni.
  • krk #30
    Ezer mag? Annyi még a görögdinnyében sincs...
  • philcsy #29
    A programozók nagy része igenis lusta és inkább elintézi annyival hogy: "ezt nem lehet hatékonyan párhuzamosítani".
  • philcsy #28
    A párhuzamosítás nem azt jelenti hogy minden létező dolgot erőszakosan párhuzamosítani kell.

    Nyugi, nem fognak kihalni az egymagos magas órajelű processzorok.

    Viszont van egy rakás olyan feladat - lényegében a számításigényes feladatok nagy része ilyen - amely igen is jól párhuzamosítható. Azért mert az adat amin dolgozik nagyságrendekkel kissebb mint az elvégzendő utasítások száma. És nem csak a HPC-ben hanem hétköznapi használatban is.

    Csak egy:
    A vírusírtók azért terhelni szokták a rendszert.
    Vírusellenőrzés egyik formája az adatbázisban lévő víruskód direkt keresése. (Tudom régi meg van más jobb is, és vannak erős korlátai is, mégis ez az egyik legálltalánosabb és folyamatos frissítéssel hatékony is.) Minden probléma nélkül lehet párhuzamosítani GPU-val. (Azt már nem fogom idírni hogy hogyan :).)

    Képszerkesztő/képfeldolgozó rendszerek. Beszédfelismerő rendszerek. Kódoló/dekódoló eljárások. Tömörítési eljárások. Neurális háló alapú rendszerek. Soroljam még?
  • philcsy #27
    Ha az egyik szál megtalálja a megfelelő elemet akkor leáll és tudatja mindenkivel hogy hol találta. A többi szál pedig csak akkor áll le ha vagy túlmentek, vagy ők is találtak egyet. Ez már az elsőt fogja visszaadni és párhuzamos.

    Nayon sokmindent lehet párhuzamosítani.
    Viszont ha azt mondod hogy nagy adatmennyiségnél és egyszerű keresésnél (az elem vizsgálata egy vagy néhány lépésből megvan) a memóriahozzáférés lesz a szűk keresztmetszet akkor igazad van. Ez addig gyorsul amíg a memsávszélesség bírja. 1000 magnál pedig ...
  • Komolytalan #26
    Amit ha 1000 mag használ, akkor szerinted mennyire effektív? Mert ok, 2-3-4 magnál még _elmegy_. De 1000-hez már tetves lassú. És ezen nem segít a méret növelés se, mert nem a mérettel van baj, hanem azzal, hogy egy átlagos programkódban x soronként van memória hozzáférés (mittomén, x=10). Így ha a memória több mint 10x lassabb mint a magok "össz" sebessége, akkor onnan kezdve hiába programozol tökéletesen, hiába csinálod meg a legjobb cache architekturát, hiába csinálsz baszott nagy L3 cache-t - fogni fogja az egészet a memória hozzáférés.