Rinnakkaistulevaisuus?

Tämä sopisi paremmin tietojenkäsittelyosastolle, mutta siellä ollaan liian jalat maassa, joten esitän tämän skenaarion täällä.

Useimmat lienevät huomanneet, että muutama vuosi sitten prosessoreiden kehityksen kauan kestänyt vaihe päättyi. Enään ei kellotaajuuden kasvattaminen ja suorittimen sisäisen rinnakkaisuuden ja monimutkaisuuden lisääminen ole mielekästä. Oli pakko ottaa lusikka kauniiseen käteen ja siirtyä multicore-arkkitehtuuriin. Mutta tämäkin siirtyminen on tehty, toistaiseksi, hyvin varovasti. Valmistajat pakkaavat 2-4 suoritinta samalle piipalalle tinkimättä yksittäisten suoritinten tehosta. Tämä on toistaiseksi välttämätöntä, koska vielä jonkin aikaa softaa väännetään vanhaan tyyliin: rinnakkaisuusajattelu ei ole vielä lyönyt itseään läpi. Lisäksi vanhojen softien on toimittava hyvin.

Mutta jos ajatellaan asiaa teoreettisesti, vähemmän pragmaattisesti ja pidemmällä perspektiivillä, minkälaisella rinnakkaisarkkitehtuurilla saadaan paras teho piipalasta? Asetan vastakkain kourallinen tehosuorittimia tai massiivisesti kevyitä suorittimia.

Intellin tulevassa kahdeksan suorittimen paketissa on 2,3 miljardia transistoria. Niillä voisi toteuttaa 100000 kpl 20000 transistorin suorittimia. Tai, käytännöllisemmin, jos 20000 transistorilla toteutetaan 512 tavua rammia per suoritin ja suorittimien transistorikapasiteettista toteutetaan myös hierarkisesti organisoitu sisäinen pakettiverkko, saataisiin 50000 toisiinsa kytkettyä, omalla pikku muistilla varustettua suoritinta, joiden kunkin MIPS-suorituskyky olisi esim 1/10 näistä nykyisistä tehoprosessoreista. Silti koko paketin laskentateho olisi suuruusluokkaa 0,1 * 50000 / 8 = 625 kertaa suurempi kuin nykyratkaisulla, tai sanotaan nyt varovasti 500-kertainen.

Tiedän toki paljon ongelmia. Kaikki tehtävät eivät rinnakkaistu helposti ja ei ole olemassa ratkaisua ohjelmoida tätä tehopakettia. Mutta jos kuvitellaan, että toimiva speksistä suoraan rinnakkaiskoodiksi ohjelmoiva AI-sovellus onnistutaan tekemään, niin minusta olisi tulevat 32-core piirit viisaampaa allokoida vaikka:
8 * nykysuorittimia, nykyohjelmille ja erityistarpeille
150000 * pieniä massasuorittimia uuden sukupolven rinnakkaissoftalle.

Tuloksena yli 1000 kertainen suorituskyky verrattuna konventionaaliseen ajatteluun joka mahdollistaisi aivan uuden joukon nyt mahdottomia sovelluksia.
181136
Äänestä

Muut lukivat myös

Vastaukset 18

Vanhimmat

Jos se on viisasta niin arvelepa miksei tätä viisasta oivallusta ole kompaktoitu/tehty todelliseksi vempeleeksi tällä maapallolla. Se on katsos talous mitä ajetaan takaa kun eletään rahajärjestelmässä vieläpä vielä. Sitten kun rahalla ei toimi enään niin sinunkin ehdotuksesi tutkitaan ja hääräillään ja updatoidaan vaikka kaikkien tietokone värkkeiden käyttäjien koneet tälle uudelle tasolla kehityksessä tuosta vaan. Robottimaailman aikana moni juttu on mahdollista.

Maapallolla on monta keksijää, mutta kaikilta vedetään matto alta kun he yrittävät. Tuossa dokumentissa tulee monia eri juttuja esille. Venus projektille tulee uusi sivusto joten vanhalla sivustolla ei ole tullut päivityksiä nyt ollenkaan uuden sivuston tulon vuoksi.

http://dotsub.com/view/15872a88-fbfe-4b18-a47f-10e0ae06fa9f

Äänestä

että 500 000 transistorin suorittimen valmistus ei maksa paljoa enempää kuin 2000 transistorinkaan.

Veikkaan että rinnakkaisuus lisääntyy, mutta kyllä kukin yksittäinen prosessori edustaa maksimi monimutkaisuutta joka kyetään tekemään.

Niistä ja niiden ohjelmoinnista on senverran vankka kokemus ja kyllä se yhdistettynä yhteensopivuuteen aikaisemman prosessori sukupolven kanssa painaa paljon.

Hermoverkot varmaan aikoinaan muuttavat tilannetta mutta siihen mennee vielä aikaa.

Äänestä
  • Tungetaan lopulta koko maapallo täyteen prosessoreita ja näin teemme maapallolle aivokuoren. Maapallolla on silloin suunnattomat aivot. Sitten voimme tehdä sille naaman

    Äänestä

Aloittaja

Ei mennyt perille alkuunkaan, mitä ajan takaa. Selitin jo, että nykyinen tilanne on täysin ymmärrettävä ja johdonmukainen kehityskulku 70-luvulta lähtien. Tietysti markkinat ovat välillä kaaoottisesti, vahingossa, tehneet vääriä ratkaisuja, mutta aika on ne oikonut. Esim IBM teki kolme mokaa tuodessaan PC:n markkinoille. Toiseksi isoin moka oli 8088:n valinta suorittimeksi (oikea olisi tietysti ollut 68k). Tämä valinta hidasti alan tekniikan kehitystä n. viidellä vuodella. Toinen oli MS-DOS:n valinta käyttikseksi. Kolmas, pahin, josta kaksi edellä mainittua johtuivat, että koko konsepti oli vain tarkoitettu hätäiseksi kokeiluksi, mutta valitettavasti markkinat ottivat sen tosissaan! Siitä alkaen kehitys on mennyt kuin tavarajuna, kiskoilla pysyen, ilman isompia hötkyilyjä.

Nyt on ensimmäistä kertaa tilanne muuttumassa, mutta en minä siitä halua keskustella. Haluan keskustella siitä (unohtamalla tahallaan hetkelliset markkinareaaliteetit), teoreettisellä tasolla, mikä olisi paras tapa hyödynttää Mooren Lain edelleen tarjoamat uudet transistorit.

Silti merkkeinä tilanteen muuttumisesta on vaikkapa:
- Multicore-piirien tulo standardi PC-koneisiin.
- Yhdeksän suorittimen Cell-prosessori ja PS3.
- Älypuhelinten (mobile computing) nousu PC-markkinoiden rinnalle ja mahdollinen näiden konseptien tuleva sulautuminen.
- Intellin Larrabee-piiri (jopa 48 suoritinta)ja sen mahdollinen tulo ainakin pelikonsoleihin.

Mutta Larrabee ja Cell ovat grafiikkaprosessoreita, vektorivääntimiä, eivätkä yleiskäyttöisiä suoritinpakkauksia.

Jos ei tarvita grafiikkavääntöä vaan esim semanttista prosessointia ym, silloin uskoisin paljon pienirakeisemman arkkitehtuurin olevan ylivoimainen, siis eräänlainen suorittimen ja muistipiirin risteytys. Tämä on periaattessa suoraa jatkoa ohjelmoinnin olioajatteluparadigmasta, jossa data ja toiminnallisuus yhdistetään samaksi olioksi.

Äänestä
  • "Jos ei tarvita grafiikkavääntöä vaan esim semanttista prosessointia ym, silloin uskoisin paljon pienirakeisemman arkkitehtuurin olevan ylivoimainen"

    Ymmärrän olioajattelun. Mutta toisaalta tietokannat ovat käytössä kaikkialla. Syynä tähän on varmaankin ohjelmoinnin helppous...? Tietokannat perustuvat iteraation lisäksi myös indeksointiin, joka perustuu sort-algoritmeihin, joiden sopivuudesta rinnakkaisuuten en oikein tiedä...

    Äänestä

  • Aloittaja

    KN$ kirjoitti:

    "Jos ei tarvita grafiikkavääntöä vaan esim semanttista prosessointia ym, silloin uskoisin paljon pienirakeisemman arkkitehtuurin olevan ylivoimainen"

    Ymmärrän olioajattelun. Mutta toisaalta tietokannat ovat käytössä kaikkialla. Syynä tähän on varmaankin ohjelmoinnin helppous...? Tietokannat perustuvat iteraation lisäksi myös indeksointiin, joka perustuu sort-algoritmeihin, joiden sopivuudesta rinnakkaisuuten en oikein tiedä...

    En ole näiden asiantuntija, mutta ainakin binäärihaku olisi osittain nopeutettavissa massiivisella rinnakkaisuudella: aloitetaan haku keskeltä puuta yhtä aikaa vaikka tuhannella säikeellä/suorittimella, tuhannesta "oksasta". Vain yksi säie onnistuu, muut ajautuvat "laitaan" ja lopuksi feilaavat. Tietysti tällainen haaskaa laskentakapasiteettia, mutta nopeuttaa.

    Äänestä

  • Aloittaja

    KN$ kirjoitti:

    "Jos ei tarvita grafiikkavääntöä vaan esim semanttista prosessointia ym, silloin uskoisin paljon pienirakeisemman arkkitehtuurin olevan ylivoimainen"

    Ymmärrän olioajattelun. Mutta toisaalta tietokannat ovat käytössä kaikkialla. Syynä tähän on varmaankin ohjelmoinnin helppous...? Tietokannat perustuvat iteraation lisäksi myös indeksointiin, joka perustuu sort-algoritmeihin, joiden sopivuudesta rinnakkaisuuten en oikein tiedä...

    http://delivery.acm.org/10.1145/360000/359582/p657-hirschberg.pdf?key1=359582&key2=0900555321&coll=GUIDE&dl=GUIDE&CFID=23514606&CFTOKEN=90562326

    Binary-tree tehdään sorttaamalla, mutta löytyypä luonnollisesti myös rinnakkaisuutta käyttäviä sorttausalgoritmeja.

    Äänestä

  • "Jos ei tarvita grafiikkavääntöä vaan esim semanttista prosessointia ym, silloin uskoisin paljon pienirakeisemman arkkitehtuurin olevan ylivoimainen, siis eräänlainen suorittimen ja muistipiirin risteytys. Tämä on periaattessa suoraa jatkoa ohjelmoinnin olioajatteluparadigmasta, jossa data ja toiminnallisuus yhdistetään samaksi olioksi."

    Käytännössä koko hommaa pyörittää tiedon "pysyvyys". Itse en näe oman olio-ohjelmani kehitykselle muuta jatkoa kuin alkaa kehittämään jotain pysyvää "data storea" sille. Data ja toiminnallisuus ovat hetken aikaa olleet tasavertaisia, mutta nyt data alkaa olla perustavammassa roolissa.

    Data storethan on internet-ohjelmoijille tuttua. Voidaan esim käyttää sekalaista PHP-koodia toiminnallisuutena ja data on MySQL-kannoissa.

    Työpöytäohjelmissa noudatetaan pysyvyys-ajattelua:
    http://en.wikipedia.org/wiki/Java_Persistence_API

    Mutta minusta tuntuu ettei enää ole isoille oliokoodivirityksille kysyntää. Enemmän koodia leikataan ja liimataan tietokantojen ympärillä.

    Näin tavallisen ohjelmoijan näkökulmasta, mutta tietysti tietokantaohjelmassa pitää olla älykkyyttäkin että se selviää nopeasti esim "transaktiosta".

    http://www.ratol.fi/opensource/mysql/transaktio.htm

    Äänestä

olla PC-yhteensopiva, jotta kukaan valmistaja lähtisi sellaiseen. Jos prosessori on noin yksinkertainen, niin sillä ei ole mitään käyttöä eikä markkinoita.

Ja kukaan ei aio luopua nykyisistä ominaisuuksista ja ohjelmista. Tuo olisi askel takapakkia jonnekin 70-luvulle.

Äänestä
  • Aloittaja

    Kysymys oli tieteellistä ajatuksesta, mikä on optimaalista piin käyttöä ei markkinapolitiikasta.

    "olla PC-yhteensopiva, jotta kukaan valmistaja lähtisi sellaiseen. "

    Mutta miksi esim PS3:ssa Cell-prosessori, jossa pää-cpu on powerPC? Miksi puhelimissa käytetään ARM-arkkitehtuuria? Molemmat ovat kaukana PC-yhteensopivuudesta.

    "Tuo olisi askel takapakkia jonnekin 70-luvulle."

    Höpöä. 1000x nykyinen suorituskyky ei ole sama kuin 70-luvun suorituskyky.
    Ja en todellakaan ole väittänyt, että kyseessä olisi uusi kaikki muut syrjäyttävä standardi vaan vanhaa täydentävä. Kuten esimerkkiehdotuksessani esitin, yski mahdollisuus olisi piiri, jossa on 32:n PC-yhteensopivan coren sijaan vain kahdeksan korea ja niitä täydentämässa 150000 tiivisti muistiin sidottua pikkusuoritinta, kaikki samalla piipalalla. Tämä voisi olla mahdollista esim 2015.

    Mutta kiinnostavaa on nyt asian teoreettinen puiminen, ei markkinapolitiikaa. Minulla on mietittyjä vastauksia valmiina OIKEILLE vasta-argumenteille. Niitähän ei nyt ollut.

    Äänestä

  • Aloittaja

    UPDATE_6997029 kirjoitti:

    Kysymys oli tieteellistä ajatuksesta, mikä on optimaalista piin käyttöä ei markkinapolitiikasta.

    "olla PC-yhteensopiva, jotta kukaan valmistaja lähtisi sellaiseen. "

    Mutta miksi esim PS3:ssa Cell-prosessori, jossa pää-cpu on powerPC? Miksi puhelimissa käytetään ARM-arkkitehtuuria? Molemmat ovat kaukana PC-yhteensopivuudesta.

    "Tuo olisi askel takapakkia jonnekin 70-luvulle."

    Höpöä. 1000x nykyinen suorituskyky ei ole sama kuin 70-luvun suorituskyky.
    Ja en todellakaan ole väittänyt, että kyseessä olisi uusi kaikki muut syrjäyttävä standardi vaan vanhaa täydentävä. Kuten esimerkkiehdotuksessani esitin, yski mahdollisuus olisi piiri, jossa on 32:n PC-yhteensopivan coren sijaan vain kahdeksan korea ja niitä täydentämässa 150000 tiivisti muistiin sidottua pikkusuoritinta, kaikki samalla piipalalla. Tämä voisi olla mahdollista esim 2015.

    Mutta kiinnostavaa on nyt asian teoreettinen puiminen, ei markkinapolitiikaa. Minulla on mietittyjä vastauksia valmiina OIKEILLE vasta-argumenteille. Niitähän ei nyt ollut.

    Mikä olisi oikea rinnakkaisprosessoinnin "granulariteetti"? Esittämäni 8-bittisen prosessorin ALU:a vastaava, noin yhden normaalin softafunktion yhdelle CPU:lle allokoiva ratkaisu vai esim. rinnakkaisuudesta tinkien hieman suurempi granulariteetti: esim 16/32 bittinen ALU, 8kB rammia/CPU? Viimeksi mainitussa tapauksessa rinnakkaisuuden määrä putoisi n. 1/10:aan, mutta esim keskinäisen kommunikaation määrä vähentyisi. Oletan, että todellinen käytännön suorituskyky putoaisi ensin mainitusta vaihtoehdosta, mutta vähemmän kuin tuon 90%.

    Jos ei olisi muita projekteja, olisi todella mielenkiintoista tehdä simulaattori molemmille vaihtoehdoille . Mutta olisi isotöinen homma.

    Äänestä

  • UPDATE_6997029 kirjoitti:

    Mikä olisi oikea rinnakkaisprosessoinnin "granulariteetti"? Esittämäni 8-bittisen prosessorin ALU:a vastaava, noin yhden normaalin softafunktion yhdelle CPU:lle allokoiva ratkaisu vai esim. rinnakkaisuudesta tinkien hieman suurempi granulariteetti: esim 16/32 bittinen ALU, 8kB rammia/CPU? Viimeksi mainitussa tapauksessa rinnakkaisuuden määrä putoisi n. 1/10:aan, mutta esim keskinäisen kommunikaation määrä vähentyisi. Oletan, että todellinen käytännön suorituskyky putoaisi ensin mainitusta vaihtoehdosta, mutta vähemmän kuin tuon 90%.

    Jos ei olisi muita projekteja, olisi todella mielenkiintoista tehdä simulaattori molemmille vaihtoehdoille . Mutta olisi isotöinen homma.

    Minullakin on idea unelmia mitä haluaisin työstää mutta se ei vain käy nykyisessä yhteiskunnassa. Joten itse suosittelen sinullekkin että yritetään tehdä uusi yhteiskunta tämän vanhemman tilalle, jotta ideoistakin tulee totta. Minulla on monta projektia aluilla kun saadaan kehitettyä tämä huonompi yhteiskunta seuraavalle älykkäämmälle ja paremmalle tasolle. Monella muulla myös on projekteja aluilla minun lisäkseni, sinullakin kai, ainakin näyttää siltä.

    Äänestä

  • Aloittaja

    Korruptio oitpurroK kirjoitti:

    Minullakin on idea unelmia mitä haluaisin työstää mutta se ei vain käy nykyisessä yhteiskunnassa. Joten itse suosittelen sinullekkin että yritetään tehdä uusi yhteiskunta tämän vanhemman tilalle, jotta ideoistakin tulee totta. Minulla on monta projektia aluilla kun saadaan kehitettyä tämä huonompi yhteiskunta seuraavalle älykkäämmälle ja paremmalle tasolle. Monella muulla myös on projekteja aluilla minun lisäkseni, sinullakin kai, ainakin näyttää siltä.

    "Joten itse suosittelen sinullekkin että yritetään tehdä uusi yhteiskunta tämän vanhemman tilalle, jotta ideoistakin tulee totta."

    Täysin samaa mieltä! Mutta ensimmäinen kysymys on: millainen yhteiskunta on parempi? Toinen on: miten siihen päästään? Kolmas on: miten varmistetaan, että kaksi edellä mainittua vastausta ovat oikeita ja miten yleensäkin nämä vastaukset löydetään.

    Tarvitaan välitavoitteita! Tarvitaan hyvin määriteltyjä käsitteita, näiden välillä vallitsevien suhteiden testattu, empirinen tuntemus. Mutta aivan ensiksi tarvitaan eksakti, yksiselitteinen kieli em tietämyksin käsittelemiseski. Tällä kielellä tulee olla ominaisuutena, että sillä esitettyjä väitteita voi formaalisti analysoida keskenään, puolueettomasti, tietokoneella. Siksi tarvitaan aivan ensiksi lojban-kieli.
    http://lojban-ajattelua.blogspot.com/2008/05/lojban-manifesti.html

    Siitä alkaa yhteiskunnan muuttaminen.

    Äänestä

Tossa parikymmentä vuotta sitten elettiin rinnakkaisuuden huumaa. Toisiaan syöttävien transputtereiden piti tuoda huima tehon lisäys. No sehän lässähti ja lähinnä siihen, että rinnakkaislaskennalle sopivia ongelmia ei ole.

Nykyarkkitehtuureissahan itse sovellus ei useinkaan vaadi tavatonta laskentavoimaa. Erikoistuneet esiprosessorit pudottavat kuormaa pääprosessorilta rajatta. Triviaali esimerkki on vaikka näytönohjain, josta voidaan tehdä vaikka kuinka huima grafiikka.

Äänestä
  • "Triviaali esimerkki on vaikka näytönohjain, josta voidaan tehdä vaikka kuinka huima grafiikka."

    Huonoa grafiikkaa niissä. Grafiikan tekeminen oli hauskaa ennen kun 3d-kortit pilasivat kaiken.

    Äänestä

  • Aloittaja

    Olin mukana yhdessä transpuutteriprojektissa, se liittyi magneettikuvaukseen, tein siihen HW-suunnittelua.

    "transputtereiden piti tuoda huima tehon lisäys"

    Kyllä ne toivatkin ja niitä käytettiin monilla aloilla vuosien ajan. Se mikä petti, oli Inmossin piiritoimittaja, joka ei osannut toteuttaa T9000-malleja koskaan, pitkien viiveidenkään jälkeen. Lopulta standardiratkaisut Pentiumeilla menivät ohi.

    "lähinnä siihen, että rinnakkaislaskennalle sopivia ongelmia ei ole"
    Ei ole totta. Tietenkään toimistosovelluksissa riitäisi lopultakin yksi suoritin ihan lopuun asti. Mutta lähes kaikkialla muualla, peleistä, simulointeihin ja muuhun tietelliseen laskentaan, lähes mihin tahansa vaativaan laskentaan rinnakaisuudesta on suuri apu.

    Suurin ongelma on SW-kehityskulttuurin kyvyttömyys omaksua rinnakkaisuusajattelua, josta seuraa tuulesta temmattu väite, että "rinnakkaislaskennalle sopivia ongelmia ei ole". Ei sovellu, jos ei ohjelmoija osaa eikä suostu oppimaan uutta. Nyt on kuitenkin pakko, koska multicoreteknologia tulee väkisin. Ohjelmoijana et voi valehdella, että prosessorin vääntö ei riitä, jos teet homman vain yhdellä threadillä, vaikka käytössä olisi kymmeniä rinnakakkaisia, etkä osaa jaka hommaa niille. Pian on pakko opetella uusia ajattelutapoja joka tapauksessa. Jos et opettele, joku toinen kyllä tekee sen.

    "..näytönohjain, josta voidaan tehdä vaikka kuinka huima grafiikka". Näytönohjaimet ovat hyvä esimerkki rinnakkaislaskennasta. Yksi esimerkki, omasta työympäristöstäni, jossa rinnakkaislaskenta on vasta tulossa, on isojen buildien (vievät tuntikausia nykykoneilta) tekeminen. Ovat ihan hyvin jaettavissa isolle joukolle suorittimia. Toinen HW/SW-cosimulation, esim puhelimen ohjelman testus konekielitasolla, HW-toimintoineen, ilman että puhelinta on vielä edes olemassakaan. Vaati vääntöä ja paljon.

    Äänestä

prosessorit toimii siten että ne tulkitsee muistissa olevaa koodia, mikä syö kellojaksoja ja tehoa. Uskoisin tuollaisten Dynamic Reconfigurable Logic (DRL) yksiköllä varustettujen prosessorien yleistyvän. Eli prosessori huolehtii systeemitason rutiineista, joissa nopeudella ei ole merkitystä ja DRL yksikkö hoitaa rutiinit missä tarvitaan nopeutta. DRL voidaan muuttaa lennossa vastaamaan haluttua ohjelmakoodi pätkää eli prosessorilla ei tulkita ohjelmaa vaan itse transistorilogiikka kytkentöineen kovotasolla on se haluttu toiminta. Näin säästetään kellotaajuudessa, tehonkulutuksessa, piirin koossa ja myöskin nopeus on monin kertainen verrattuna perinteiseen prosessoriteknologiaan.
Yksi mielenkiintoinen piirien valmistaja on Xmos. Teet C kielisen ohjelman ja lataat sen FPGA kaltaiseen piiriin ja koko ohjelmasi on pelkkästään transistori logiikkaa.

Äänestä
  • Aloittaja

    Vanhana VHDL-kooderina noteeraan tietysti DRL-ajattelun yhtenä oikeasti varteenotettavana mahdollisuutena. Mutta en ole ihan varma, jos huomioidaan kaikki tekijät, onko FPGL-tyyppinen logiikka sittenkään transistoria/kellojaksoa kohti joka suhteessa tehokkampi kuin pieni, virtaviivainen RISC-CPU muisti. Ihan varmasti joissakin sovelluksissa, esim DSP-sovellukset, DRL voittaa yleiskäyttöisen CPU:n. Toisaalta on todennäköisesti esim dynamisten, kompleksisten datarakenteiden luomiseen, muuttelemiseen, yhdistämiseen, deletoimiseen keskittyneitä sovelluksia (luulen, että niitä on enemmistö), joissa CPU-ajattelu on tehokkaampaa ja joustavampaa. Luulen, että molempia tarvitaan. Samassa piirissä voisi olla mahdollisuudet käyttää molempia. Jos esim DSP-tyyppistä laskentaa ei ole, DRL-aluen voi konfiguroida CPU-joukoksi.

    Äänestä

Kommentoi aloitusta


UPDATE_6997029 kirjoitti:

Tämä sopisi paremmin tietojenkäsittelyosastolle, mutta siellä ollaan liian jalat maassa, joten esitän tämän skenaarion täällä.

Useimmat lienevät huomanneet, että muutama vuosi sitten prosessoreiden kehityksen kauan kestänyt vaihe päättyi. Enään ei kellotaajuuden kasvattaminen ja suorittimen sisäisen rinnakkaisuuden ja monimutkaisuuden lisääminen ole mielekästä. Oli pakko ottaa lusikka kauniiseen käteen ja siirtyä multicore-arkkitehtuuriin. Mutta tämäkin siirtyminen on tehty, toistaiseksi, hyvin varovasti. Valmistajat pakkaavat 2-4 suoritinta samalle piipalalle tinkimättä yksittäisten suoritinten tehosta. Tämä on toistaiseksi välttämätöntä, koska vielä jonkin aikaa softaa väännetään vanhaan tyyliin: rinnakkaisuusajattelu ei ole vielä lyönyt itseään läpi. Lisäksi vanhojen softien on toimittava hyvin.

Mutta jos ajatellaan asiaa teoreettisesti, vähemmän pragmaattisesti ja pidemmällä perspektiivillä, minkälaisella rinnakkaisarkkitehtuurilla saadaan paras teho piipalasta? Asetan vastakkain kourallinen tehosuorittimia tai massiivisesti kevyitä suorittimia.

Intellin tulevassa kahdeksan suorittimen paketissa on 2,3 miljardia transistoria. Niillä voisi toteuttaa 100000 kpl 20000 transistorin suorittimia. Tai, käytännöllisemmin, jos 20000 transistorilla toteutetaan 512 tavua rammia per suoritin ja suorittimien transistorikapasiteettista toteutetaan myös hierarkisesti organisoitu sisäinen pakettiverkko, saataisiin 50000 toisiinsa kytkettyä, omalla pikku muistilla varustettua suoritinta, joiden kunkin MIPS-suorituskyky olisi esim 1/10 näistä nykyisistä tehoprosessoreista. Silti koko paketin laskentateho olisi suuruusluokkaa 0,1 * 50000 / 8 = 625 kertaa suurempi kuin nykyratkaisulla, tai sanotaan nyt varovasti 500-kertainen.

Tiedän toki paljon ongelmia. Kaikki tehtävät eivät rinnakkaistu helposti ja ei ole olemassa ratkaisua ohjelmoida tätä tehopakettia. Mutta jos kuvitellaan, että toimiva speksistä suoraan rinnakkaiskoodiksi ohjelmoiva AI-sovellus onnistutaan tekemään, niin minusta olisi tulevat 32-core piirit viisaampaa allokoida vaikka:
8 * nykysuorittimia, nykyohjelmille ja erityistarpeille
150000 * pieniä massasuorittimia uuden sukupolven rinnakkaissoftalle.

Tuloksena yli 1000 kertainen suorituskyky verrattuna konventionaaliseen ajatteluun joka mahdollistaisi aivan uuden joukon nyt mahdottomia sovelluksia.

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu