Kirjaudu

Uutiskirje

Rekisteröidy Sektoriin ja tilaa itsellesi joko aamuisin tai iltaisin ilmestyvä uutiskirje sähköpostiisi.

Maanantai, 12.2.2007

Intel esitteli "tera-aikakauden" tutkimussirua

Intelin tutkijat ovat kehittäneet maailman ensimmäisen ohjelmoitavan prosessorin, jonka suorituskykyä voi verrata supertietokoneeseen. 80 ytimen siru on kuitenkin kooltaan vain hieman sormen kynttä suurempi ja käyttää vähemmän virtaa kuin useimmat tämän päivän kodinkoneista. Tera-luokan tietojenkäsittelyyn liittyvä tutkimustyö tähtää siihen, että pc- ja palvelinvalmistajat voivat tulevaisuudessa tarjota teraflopsin (tuhat miljardia laskutoimitusta sekunnissa) edestä laskentatehoa. Tekniset yksityiskohdat tutkimussirusta kerrotaan San Franciscossa pidettävässä vuotuisessa ISSCC-seminaarissa (Integrated Solid State Circuits Conference) tänään.

Siru on suunniteltu siten, että sen pienemmät ytimet on monistettu "tiilinä". Tämä tekee moniytimisten sirujen suunnittelun helpommaksi. Intelin uuden keksinnön ja kehittyneiden materiaalien myötä voidaan rakentaa transistoreja niin, ettei Mooren laille ole näkyvissä välitöntä loppua. Teraflopsin siru sisältää myös mesh-tyyppisen "verkko sirulla" -arkkitehtuurin, jonka ansiosta kommunikointi sirun sisällä olevien ytimien välillä tapahtuu erittäin korkealla kaistanleveydellä ja voi siirtää terabiteittäin dataa sekunnissa sirun sisällä. Lisäksi tutkittiin metodeja, joilla yksittäiset ytimet voidaan sammuttaa, jolloin voidaan säästää energiaa, kun ainoastaan tehtävän vaatima määrä ytimiä on käytössä.

Intel ei suunnittele tämän nimenomaisen sirun tuomista markkinoille. Sen merkitys näkyy tulevaisuuden piisuunnitteluun liittyvissä metodologioissa, suuren kaistanleveyden omaavissa liitännöissä ja eri tavoissa hallita virrankulutusta. "Tutkijamme ovat saavuttaneet merkittävän rajapyykin, jolla viedään eteenpäin moniytimisyyttä ja rinnakkaisen tietojenkäsittelyn suorituskykyä", kertoo Intelin teknologiajohtaja ja Senior Fellow Justin Rattner. "Näemme tien lähitulevaisuuteen, kun teraflopsin tietojenkäsittely yleistyy ja muuttaa käsityksemme tietokoneista ja internetistä kotona ja toimistolla."

K2, 12.2.2007 12:42. Lähde: Intel
Rekisteröidy ja kirjaudu sisään, jos haluat kommentoida.

Kommentit ( 11 uutta / 11 )
pistettä.
Näytä vain kommentit joilla on vähintään
susi Re: Intel esitteli...
susi, 12.2.2007 13:17:59
Pisteet: +1
Vielä kun tämä kehitys näkyisi sovelluksissa. Kuten moni varmaan tietää rinnakkaisohjelmoinnista löytyy omat haasteensa. Lähitulevaisuudessa useat ytimet todennäköisesti lojuvat suurimman osan toimettomina yhden tai parin tehdessä kaikki työt.
hanska Re: Intel esitteli...
hanska, 12.2.2007 19:53:19
Pisteet: +1
Kuten moni varmaan tietää rinnakkaisohjelmoinnista löytyy omat haasteensa.
Tuntuu, että koodareilla on ongelmia hahmottaa jo yhdenkin ohjelman säikeen toiminta, niin rinnakkaisuuden luomat haasteet ovatkin sitten jo kertaluokkaa hankalampia käsittää. Lisäksi ohjelmointikielet ovat pitkälle sekventiaalisia. Niidenkin on syytä muuttua jouhevampaan suuntaan. Toisaalta, paljonko hyötyä kovasta rinnakkaistamisisesta peruskäyttäjälle olisi, moni asia kun on että ensin sitä ja sitten jotain toista.

Hanska
Erehtyminen on inhimillistä, mutta täydelliseen sekoiluun tarvitaan tietokone
TeknoHog Re: Intel esitteli...
TeknoHog, 12.2.2007 21:24:22
Pisteet: +1
Kuten moni varmaan tietää rinnakkaisohjelmoinnista löytyy omat haasteensa.
Tuntuu, että koodareilla on ongelmia hahmottaa jo yhdenkin ohjelman säikeen toiminta, niin rinnakkaisuuden luomat haasteet ovatkin sitten jo kertaluokkaa hankalampia käsittää.
Tieteellisen laskennan puolella rinnakkaiskoodia on väännetty vuosikymmeniä. Kummallista, että se olisi juuri nyt jotenkin uusi ja ihmeellinen ongelma, jota ei olisi ratkaistu.

Lisäksi ohjelmointikielet ovat pitkälle sekventiaalisia. Niidenkin on syytä muuttua jouhevampaan suuntaan.
Niin kuin vaikka Fortran muuttui joskus 1980-luvulla? Fiksuja kieliä on, miksei niitä käytetä?

Oikeastaan Fortran on huono esimerkki, koska se on periaatteessa sekventiaalinen, mutta osaa käsitellä rinnakkaista dataa hyvän kääntäjän avulla useammallakin prosessorilla. Pointti onkin siinä, että rinnakkaisprosessoinnissa ei voi vain pistää assembler-gurua optimoimaan koodia tietylle prossulle, vaan on katsottava suurempaa kokonaisuutta yhtä aikaa. Tarvitaan siis korkeamman tason kieli.

Toisaalta, paljonko hyötyä kovasta rinnakkaistamisisesta peruskäyttäjälle olisi, moni asia kun on että ensin sitä ja sitten jotain toista.
Tämä taitaakin vastata pointteihin, joita juuri ihmettelin. Miksi sitten yleinen keskustelu tekee rinnakkaiskoodista niin suuren ongelman myös peruskäytössä? Jos kerran ainoa tapa lisätä konetehoa on useammalla prosessorilla, täytyy ensin kysyä tarvitseeko ns. peruskäytössä ensinkään niin paljon konetehoa. Mikä on taas ikuisuuskysymys, joka tosin mielellään herää näin Vistan aikoina.

Toisaalta moniprosessorikoneesta on hyötyä nykyisilläkin softilla, kunhan käyttis osaa jakaa resursseja fiksusti. Perustyöasemissakin on yleensä aika monta prosessia yhtä aikaa käynnissä.
-><-
Good shit, huh? Dozer makes it. It's good for two things: degreasing engines and killing brain cells.
w-ber Re: Intel esitteli...
w-ber, 13.2.2007 12:38:24
Pisteet: +1
Tieteellisen laskennan puolella rinnakkaiskoodia on väännetty vuosikymmeniä. Kummallista, että se olisi juuri nyt jotenkin uusi ja ihmeellinen ongelma, jota ei olisi ratkaistu.
Rinnakkaisuus on toki vanha ongelma, mutta sitä ei ole myöskään ratkaistu kokonaan edes tieteen piirissä, saati tavallisen rivikoodaajan kohdalla. Tämä johtuu osin siitä, että rinnakkaisten säikeiden tai prosessien atomaaristen käskyjen lomitusmahdollisuuksia on tajuton määrä. Testaaminen on suoraan sanottuna mahdotonta, eikä oikeellisuutta pysty hahmottamaan, jos koittaa ajatella suoritusta peräkkäisenä jonona käskyjä.

Yksinkertainen esimerkki, jossa tieteelliseen tapaan jätetään silmukat ja ehtolauseet huomiotta: Säikeessä A on n atomaarista käskyä ja säikeessä B yksi. Miten monella tavalla käskyt voidaan lomittaa? B:n käsky voidaan sijoittaa mihin tahansa väliin sekä kaikkien A:n käskyjen jälkeen tai ennen niitä, eli n&#43;1 eri lomitusta. Jos B:ssä on kaksi käskyä, voidaan ensimmäiselle valita ensin paikka n&#43;1 tavalla, sitten toiselle n&#43;1-i tavalla, missä i on ensimmäisen käskyn indeksi (n&#43;1-mittaisessa käskyjonossa).

Samalla tavalla voidaan jatkaa ja saadaan varmasti kiva suljettu muoto yleiselle tapaukselle, mutta pointti on siinä, että tuo on taatusti suurempi luku kuin 1 tai edes n.

Toki on olemassa tekniikoita, joilla säikeitä ja prosesseja voidaan synkronoida (kuten semaforit), eivätkä kaikki käskyt käytä samaa muistialuetta, joten käytännössä tilanne ei ole ihan noin paha. Lomituksia on silti todella suuri määrä peräkkäisiin ohjelmiin verrattuna.
TeknoHog Re: Intel esitteli...
TeknoHog, 14.2.2007 02:11:34
Pisteet: 0
Rinnakkaisuus on toki vanha ongelma, mutta sitä ei ole myöskään ratkaistu kokonaan edes tieteen piirissä, saati tavallisen rivikoodaajan kohdalla. Tämä johtuu osin siitä, että rinnakkaisten säikeiden tai prosessien atomaaristen käskyjen lomitusmahdollisuuksia on tajuton määrä. Testaaminen on suoraan sanottuna mahdotonta, eikä oikeellisuutta pysty hahmottamaan, jos koittaa ajatella suoritusta peräkkäisenä jonona käskyjä.
Viittasinkin itse lähinnä sellaiseen datatason rinnakkaisuuteen, jota hyödynnetään esim. grafiikkaprosessoreissa ja MMX/SSE-tyylisissä käskykannoissa. En ole itse säikeitä koodannut, mutta ymmärrettävästi ne ovat aivan toinen juttu eikä niihin ole vastaavia yleisiä ratkaisuja. Uskon kuitenkin että rinnakkaisprosessoinnista saadaan paljon irti myös datan rinnakkaisuutta tutkimalla. Varsinkin kun ajattelee miten paljon säikeistetty koodi mutkistuu, jos prosessoreita on vaikka kahden sijasta 80.
-><-
Good shit, huh? Dozer makes it. It's good for two things: degreasing engines and killing brain cells.
Bream Re: Intel esitteli...
Bream, 13.2.2007 14:08:53
Pisteet: 0
Toisaalta, paljonko hyötyä kovasta rinnakkaistamisisesta peruskäyttäjälle olisi, moni asia kun on että ensin sitä ja sitten jotain toista.
Kuten TeknoHog jo mainitiskin, mitä se sellainen peruskäyttö on? Nettisurffailu jos mikä liennee peruskäyttöä ja siinä jos missä rinnakkain voidaan tehdä melkoisesti asioita. Peruskäyttäjälle raskasta laskentaa edustaa pelit joissa myös olisi paljon tarvetta rinnakkaisuudelle.

Kuvankäsittely on sellaista raskasta laskentaa joka kaikkein helpoimmin skaalautuu useammalle ytimelle. Vertauksen vuoksi reaalimaailmasta, jos palju pitää täyttää vedellä niin sehän on suoraviivainen operaatio - otetaan sanko käteen ja täytetään palju. Mutta mitään ei periaatteessa mene rikki vaikka sankomiehiä olisi yhden sijaan kymmenen. Tällöin vaan palju täyttyisi 1/10 ajassa yhteen verrattuna. Kuvankäsittely on usein juuri noin yksinkertaista ja säikeistetyn (vihaan tuota sanaa :) ohjelman nopeuden lisäys käytännössäkin lähentelee samaa kerointa kuin koneessa/prosessorissa on ytimiä.
w-ber Re: Intel esitteli...
w-ber, 13.2.2007 16:44:29
Pisteet: 0
Mutta mitään ei periaatteessa mene rikki vaikka sankomiehiä olisi yhden sijaan kymmenen. Tällöin vaan palju täyttyisi 1/10 ajassa yhteen verrattuna.
Jos nyt hiuksia halotaan, vaikka onkin vasta alkuviikko, niin kymmenen miestä ähertämässä yhden saavin ympärillä on aika hassu mielikuva. Ennemmin siinä vesi lentää miesten päälle kuin sankoon.
TeknoHog Re: Intel esitteli...
TeknoHog, 13.2.2007 16:51:09
Pisteet: 0
Jos nyt hiuksia halotaan, vaikka onkin vasta alkuviikko, niin kymmenen miestä ähertämässä yhden saavin ympärillä on aika hassu mielikuva. Ennemmin siinä vesi lentää miesten päälle kuin sankoon.
Tuohan on mukava vertaus sille, että esim. muistiväylä voi osoittautua pullonkaulaksi, jolloin fiksuinkaan rinnakkaislaskenta-algoritmi ei auta.
-><-
Good shit, huh? Dozer makes it. It's good for two things: degreasing engines and killing brain cells.
feenix Re: Intel esitteli...
feenix, 15.2.2007 10:26:51
Pisteet: 0
Mutta mitään ei periaatteessa mene rikki vaikka sankomiehiä olisi yhden sijaan kymmenen. Tällöin vaan palju täyttyisi 1/10 ajassa yhteen verrattuna.
Jos nyt hiuksia halotaan, vaikka onkin vasta alkuviikko, niin kymmenen miestä ähertämässä yhden saavin ympärillä on aika hassu mielikuva. Ennemmin siinä vesi lentää miesten päälle kuin sankoon.
Riippuu vesilähteen etäisyydestä. Jos se saavi täytetään 10 metrin päästä järvestä, saadaan nätisti menemään peräkkäin. Eli kuten alla mainittiin, väylä pitää olla tarpeeksi tehokas, tai tarpeeksi hidas ;)
JJ Re: Intel esitteli...
JJ, 13.2.2007 16:56:34
Pisteet: 0
Vielä kun tämä kehitys näkyisi sovelluksissa.
Tulee näkymään, joko suoraan tai käyttöjärjestelmän palveluiden kautta.

Nyt kun tavallisilta ihmisiltäkin löytyy useampi ydin tietokoneestaan on sovelluskehittäjien kannalta mielekästä sijoittaa aikaa, vaivaa ja rahaa sovellusten rinnakkaistamiseen, rinnakkaisohjelmointi säikeiden kanssa on aika vaikeaa, kuten sanot. Mutta osa sovelluksista on sellaisia että niiden rinnakkaistaminen on varsin triviaalia, säikeiden toiminta ei riipu toisista säikeistä ja ei tarvita juurikaan niiden synkronointia.

Useammasta ytimestä on hyötyä myös ilman että sovelluksiin tehdään muutoksia, nykyaikaisessa tietokoneessa, käyttöjärjestelmästä riippumatta, on samaan aikaan ajossa kymmeniä prosesseja, enemmän ytimiä -> nopeampaa.

Käyttöjärjestelmät tulevat mitä todennäköisimmin käyttämään rinnakkaisia prosesseja/threadeja yhä enemmän, jolloin useammasta ytimestä saadaan hyötyä jo käyttistasolla. Apple esimerkiksi tuo seuraavaan käyttöjärjestelmäversioonsa animaatio API:n jonka prosessointi tehdään automaattisesti erillisessä threadissa, näin sen käyttö ei kilpaile ohjelman pääthreadin kanssa jos tietokoneesta löytyy useampi ydin, myös OpenGL implementaatiota on viilattu useamman threadin (ja täten ytimen) käyttöön. Myös muita tapoja prosessoinnin helppoon rinnakkaistamiseen on tulossa (threadit siis ovat olleet arkipäivää jo pitkään), mutta niitä ei ole tietääkseni vielä julkistettu, joten jätetään niistä kertominen toiseen kertaan.

Olen aivan varma että Windows ja vapaalla puolella on samanlaista kehitystä.


Lähitulevaisuudessa useat ytimet todennäköisesti lojuvat suurimman osan toimettomina yhden tai parin tehdessä kaikki työt.
Tuskinpa ihan näin huonosti on asiat, lähitulevaisuuden 2-8 ytimestä kyllä saadaan hyötyä, onneksi 80 ytimestä ei tarvitse vielä pitkään aikaan huolehtia. Tietenkin osa teoreettisesta tehosta menee harakoille, pääasia että tarvittaessa löytyy enemmän tehoa kuin nykyään.
Re: Intel esitteli...
Pablo, 14.2.2007 09:26:52
Pisteet: +1
Idea on melko vanha. Pienenä vihjeenä voidaan antaa avainsanat occam, transputer. Wikipedia kertoo. Tosin suomenkielinen Wikipedia on hieman suppea, mutta lontoonkielinen versio kertoo kaiken tarpeellisen ymmärtääkseen ettei tässä ole kysymys mistään muusta kuin siitä, että nyt hommaa on toteuttanut taho, jolla on riittävästi resursseja. Harmi vaan ettei enään ole käytössä Transputer:a. Mukava sillä(kin) oli leikkiä.

http://fi.wikipedia.org/wiki/Occam
http://en.wikipedia.org/wiki/Occam_%28programming_...
http://en.wikipedia.org/wiki/Transputer