Tietokonetekniikan murrosaika

Useimmilta on ehkä jäänyt huomaamatta, että tietokonetekniikka elää ***__ juuri nyt ___**** merkittävintä murrostaan sitten mikroprosessoritekniikan käyttöönoton 70-luvulla.

Vielä muutama vuosi sitten suorittimen laskentateho kaksinkertaistui 1,5-2v välein nostamalla kellotaajuutta, lisäämällä sisäistä rinnakkaisuutta, väylänleveyksiä, välimuistien kokoja ym. Tämä siis koski yksittäisiä suorittimia joiden monimutkaisuus kasvoi periaatteessa ohjelmoijalta piilossa nykyiselle tasolleen.

Nyt tämä tie on kuljettu ihan virallisesti loppuun!!!!!

Tästä lähtien laskentatehot kasvavat edelleen, mutta ei kasvattamalla yksityisen suorittimen tehoja vaan lisäämällä yhdellä piipalalla olevien prosessoreiden niin, että tämä määrä kaksinkertaistuu n. kahden vuoden välein. Nyt on juuri menossa (yleissuorittimissa) 2 -> 4 suorittimeen per piipala. Kuuden vuoden päästä on meneillään sukupolvenvaihdos 16 -> 32 suoritinta piipalalla.

Tämä paradigman muutos on radikaali, koska se tulee näkymään ohjelmoijillekin. Ohjelmointitekniikoita on muutettava, on siirryttävä rinnakkaisajatteluun. Se on isompi siirros kuin 10-15v sitten, jolloin siirryttiin oliohjelmointiin.

Tämä muutos uusi ei vielä näy, mutta pinnan alla kuohuu. Piirivalmistajat ovat nostaneet kädet pystyyn antautumisen merkiksi: yksittäisten suorittimien tehojen nousu on loppu. Nyt keskitytään MIPS/Watti tai MIPS/dollari tai molempia. Ei enään MIPS/suoritin.

Sulautetuissa järjestelmissä, robotiikassa ja tekoälyssä muutos ei ole niin radikaali, koska siellä on jo vuosikymmeniä sovellettu multitasking- ja jopa multiprosessoriohjelmointia. Minä tein koodia monelle rinnakkaiselle prosessorille jo 80-luvulla, mutta monilla aloilla muutos tulee olemaan vaikea ja voi merkitä kehityksen hidastumista. Toiset sovellukset sopivat luonnostaan jaettavaksi useisiin säikeisiin, mutta toisissa tulee seinä eteen.
22942
Äänestä

Muut lukivat myös

Vastaukset 22

Vanhimmat

"Ohjelmointitekniikoita on muutettava, on siirryttävä rinnakkaisajatteluun"

Tai compilereita on muutettava niin ettei tarvitse. Se rinnakkaisajattelu on automatisoitava.

"Kuuden vuoden päästä on meneillään sukupolvenvaihdos 16 -> 32 suoritinta piipalalla. "

Jos piitä, on puhuttu muovisiruista.

Entä molekyylikytkintietokoneet?

Toinen muutos tulee olemaan se mitä on jo muistipiireissä; valmistusvirheiden sieto. Suorittimia on _noin_ 32 tai _noin_ 1024. Osaa ei pilaa se jos osa suorittimista on virheellisiä.

Äänestä
  • Aloittaja

    >"Ohjelmointitekniikoita on muutettava, on siirryttävä rinnakkaisajatteluun"

    >Tai compilereita on muutettava niin ettei tarvitse. Se rinnakkaisajattelu on automatisoitava.

    Tätä on yritetty ehkä 30v ajan. Lähdekoodi, jossa ei ole ajatustakaan rinnakkaisuudesta, on hyvin rajoitetusti pelkällä compilerilla muutettavissa rinnakkaisutta hyödyntäväksi, toimii vain erikoistapauksissa.

    Asia helpottuu, jos kielen tasolle lisätään uusia avainsanoja yms, kuten occamissa tai sC :ssa.

    Mutta käytännössä paras tulos saavutetaan, jos koko sovelluksen arkkitehtuuri suunnitellaan huomioimaan rinnakkaisten prosessoreiden käyttö. ja tämä edellyttää suurta ajattelutavan uudelleenjärjestelyä. Käytännössä usein tarvitaan uusi ohjelmoijasukupolvi.. monet vanhatkoodarit siirtyvät projektipäälliköiksi tai vanhojen koodien ylläpitoon. Mutta toiset pystyvät muuttamaan ajattelutapansa...

    "valmistusvirheiden sieto": No tämä on onneksi valmistajan ongelma. Esim piipalalle tehdäänkin 33 suoritinta, joista aina yksi jätetään käyttämättä ja suoritinten paikalliset osoitteet jaetaan vasta testauksen jälkeen esim antifuse-tekniikkaa käyttäen.

    Äänestä

  • UPDATE_6997029 kirjoitti:

    >"Ohjelmointitekniikoita on muutettava, on siirryttävä rinnakkaisajatteluun"

    >Tai compilereita on muutettava niin ettei tarvitse. Se rinnakkaisajattelu on automatisoitava.

    Tätä on yritetty ehkä 30v ajan. Lähdekoodi, jossa ei ole ajatustakaan rinnakkaisuudesta, on hyvin rajoitetusti pelkällä compilerilla muutettavissa rinnakkaisutta hyödyntäväksi, toimii vain erikoistapauksissa.

    Asia helpottuu, jos kielen tasolle lisätään uusia avainsanoja yms, kuten occamissa tai sC :ssa.

    Mutta käytännössä paras tulos saavutetaan, jos koko sovelluksen arkkitehtuuri suunnitellaan huomioimaan rinnakkaisten prosessoreiden käyttö. ja tämä edellyttää suurta ajattelutavan uudelleenjärjestelyä. Käytännössä usein tarvitaan uusi ohjelmoijasukupolvi.. monet vanhatkoodarit siirtyvät projektipäälliköiksi tai vanhojen koodien ylläpitoon. Mutta toiset pystyvät muuttamaan ajattelutapansa...

    "valmistusvirheiden sieto": No tämä on onneksi valmistajan ongelma. Esim piipalalle tehdäänkin 33 suoritinta, joista aina yksi jätetään käyttämättä ja suoritinten paikalliset osoitteet jaetaan vasta testauksen jälkeen esim antifuse-tekniikkaa käyttäen.

    "Tätä on yritetty ehkä 30v ajan"

    Yritys lienee ollut vähäistä, koska tarve on ollut vähäistä. Sadoista miljoonista tietokoneista ehkä promille on ollut sillä tavalla rinnakkaisia? Nyt aiheen tutkimuksen ainakin pitäisi räjähtää.

    Ellet väitä, että rinnakkaisuusohjelmoinnissa pitäisi tietää millaista dataa ohjelma ottaa käytännössä? Sekään ei välttämättä ole ylitsepääsemätön este; compileriin voi syöttää myös käyttölokeja ja esimerkkidataa.

    "toimii vain erikoistapauksissa. "

    Siis nykyisillä kääntäjillä, ettet tarkoita mitään teoreettista estettä? Jos ihmisohjelmoijalle antaa lähdekoodin, niin kyllä kai siitä pystyy tekemään rinnakkaisen version? Ja jos ihminen pystyy sillä tiedolla, niin kyllä pystyy konekin.

    Äänestä

  • Dijoule kirjoitti:

    "Tätä on yritetty ehkä 30v ajan"

    Yritys lienee ollut vähäistä, koska tarve on ollut vähäistä. Sadoista miljoonista tietokoneista ehkä promille on ollut sillä tavalla rinnakkaisia? Nyt aiheen tutkimuksen ainakin pitäisi räjähtää.

    Ellet väitä, että rinnakkaisuusohjelmoinnissa pitäisi tietää millaista dataa ohjelma ottaa käytännössä? Sekään ei välttämättä ole ylitsepääsemätön este; compileriin voi syöttää myös käyttölokeja ja esimerkkidataa.

    "toimii vain erikoistapauksissa. "

    Siis nykyisillä kääntäjillä, ettet tarkoita mitään teoreettista estettä? Jos ihmisohjelmoijalle antaa lähdekoodin, niin kyllä kai siitä pystyy tekemään rinnakkaisen version? Ja jos ihminen pystyy sillä tiedolla, niin kyllä pystyy konekin.

    eipä edes yhdestä suorittimesta osata kaikkea irti ottaa...

    Äänestä

  • Aloittaja

    Dijoule kirjoitti:

    "Tätä on yritetty ehkä 30v ajan"

    Yritys lienee ollut vähäistä, koska tarve on ollut vähäistä. Sadoista miljoonista tietokoneista ehkä promille on ollut sillä tavalla rinnakkaisia? Nyt aiheen tutkimuksen ainakin pitäisi räjähtää.

    Ellet väitä, että rinnakkaisuusohjelmoinnissa pitäisi tietää millaista dataa ohjelma ottaa käytännössä? Sekään ei välttämättä ole ylitsepääsemätön este; compileriin voi syöttää myös käyttölokeja ja esimerkkidataa.

    "toimii vain erikoistapauksissa. "

    Siis nykyisillä kääntäjillä, ettet tarkoita mitään teoreettista estettä? Jos ihmisohjelmoijalle antaa lähdekoodin, niin kyllä kai siitä pystyy tekemään rinnakkaisen version? Ja jos ihminen pystyy sillä tiedolla, niin kyllä pystyy konekin.

    Ajat siis takaa jotakin sellaista, jota HDL-piireissä kutsutaan sanalla "behavioral compilation". Näissä ratkaisuissa, yritelmissä, suhteellisen korkean tason kuvauksesta, joka usein esitetään sekventiaalisina algoritmeina, syntetisoidaan RTL-kuvaus (register-transfer-logic), joka sitten käännetään tai syntetisoidaan (porttilistaksi) perinteisillä työkaluilla.

    OK, terve suuntaus olisikin abstraktiotason siirtäminen pari tasoa ylöspäin ja tekoälyn tehokkaampi käyttöönotto. Siis käytännössä suoritettava binäärikoodi syntetisoitaisiin suoraan (tai välietappien kautta) tarvemääritelmistä (requirement specifications) ja koodarit siirretään kortistoon tai perushoitajiksi. Näin ehkä tulee käymään 10v kuluessa.

    Äänestä

Tuhansien asynkronisten prosessien järjestelmät lähestyvät elävien organismien rakennetta. Ehkäpä biologiasta löytyy malleja uudelle tietotekniikalle.

Äänestä

  • Aloittaja

    Ehkä lähinpänä on soluautomaattien teoria. Sieltä voi löytyä vielä paljon. Keskenään kommunikoivat soluautomaatit muistuttavat jossakin suhteessa biologisia neuroneja, mutta niin muistuttavat toisaalta digitaalisen piitekniikan portitkin. Ammatillisessä ympäristössä olen käyttänyt eniten VHDL-kieltä. Siinä on rinnakkaisuus sisäänrakennettuna. VHDL-prosessi on käsite, joka puuttuu normaaleista ohjelmointikielistä, mutta sen ajonaikanen toteutus VHDL-simulaattoreissa kuluttaa kohtuuttomasi suoritintehoa. Erityinen HW-tasolla siihen tarkoitettu suoritinarkkitehtuuri voisi auttaa.

    VHDL:n rinnalla käytettään Verilog-kieltä, joka on hyvin vastaava. Nykyään on myös System-C, mutta en tiedä sen ominaisuuksista.

    Äänestä

  • UPDATE_6997029 kirjoitti:

    Ehkä lähinpänä on soluautomaattien teoria. Sieltä voi löytyä vielä paljon. Keskenään kommunikoivat soluautomaatit muistuttavat jossakin suhteessa biologisia neuroneja, mutta niin muistuttavat toisaalta digitaalisen piitekniikan portitkin. Ammatillisessä ympäristössä olen käyttänyt eniten VHDL-kieltä. Siinä on rinnakkaisuus sisäänrakennettuna. VHDL-prosessi on käsite, joka puuttuu normaaleista ohjelmointikielistä, mutta sen ajonaikanen toteutus VHDL-simulaattoreissa kuluttaa kohtuuttomasi suoritintehoa. Erityinen HW-tasolla siihen tarkoitettu suoritinarkkitehtuuri voisi auttaa.

    VHDL:n rinnalla käytettään Verilog-kieltä, joka on hyvin vastaava. Nykyään on myös System-C, mutta en tiedä sen ominaisuuksista.

    Mitä se on? Jotain Prologin tapaista vai vaan jotenkin rinnakkaisuutta tukevaa matalantason konekieltä? Logiikkaohjelmoinnin ja funktionaalisten kielten merkityskään ei ole minulle avautunut.

    Äänestä

  • Aloittaja

    ja sitten... kirjoitti:

    Mitä se on? Jotain Prologin tapaista vai vaan jotenkin rinnakkaisuutta tukevaa matalantason konekieltä? Logiikkaohjelmoinnin ja funktionaalisten kielten merkityskään ei ole minulle avautunut.

    VHDL on Adan pohjalta kehitetty mikropiirien suunnitteluun tarkoitettu ohjelmointikieli. Sen perussyntaksi on siis helppoa Pascalia osaavalle. Mutta siinä on Adaan nähden laajennuksena kytkentäverkon kuvaustaso, "entity/architecture-rakenne" ja "prosessi", lohko, olio, joka käynnistyy aina kun joku sen "herkkyyslistassa" oleva signaali, useimmiten järjestelmäkello, muuttuu, esim kellosignaalin nouseva reuna saapuua. Sen jälkeen evaluoidaan tulosignaaleista lähtösignaalit (kuvaa teoreettista ajanhetkeä) ja prosessi jää odotamaan seuraavaa muutosta.

    VHDL:llä ja Verilogilla suunnitellaan esim nykyiset kymmenien miljoonien transistoreiden suorittimet.

    Yksinkertainen esimerkki:
    ---------------------------------------------------
    -- 3-bit Shift-Register/Shifter
    -- (ESD book figure 2.6)
    -- by Weijun Zhang, 04/2001
    --
    -- reset is ignored according to the figure
    ---------------------------------------------------

    library ieee ;
    use ieee.std_logic_1164.all;

    ---------------------------------------------------

    entity shift_reg is
    port(   I:      in std_logic;
       clock:      in std_logic;
       shift:      in std_logic;
       Q:      out std_logic
    );
    end shift_reg;

    ---------------------------------------------------

    architecture behv of shift_reg is

    -- initialize the declared signal
    signal S: std_logic_vector(2 downto 0):="111";

    begin

    process(I, clock, shift, S)
    begin

       -- everything happens upon the clock changing
       if clock'event and clock='1' then
        if shift = '1' then
          S

    Äänestä

  • UPDATE_6997029 kirjoitti:

    VHDL on Adan pohjalta kehitetty mikropiirien suunnitteluun tarkoitettu ohjelmointikieli. Sen perussyntaksi on siis helppoa Pascalia osaavalle. Mutta siinä on Adaan nähden laajennuksena kytkentäverkon kuvaustaso, "entity/architecture-rakenne" ja "prosessi", lohko, olio, joka käynnistyy aina kun joku sen "herkkyyslistassa" oleva signaali, useimmiten järjestelmäkello, muuttuu, esim kellosignaalin nouseva reuna saapuua. Sen jälkeen evaluoidaan tulosignaaleista lähtösignaalit (kuvaa teoreettista ajanhetkeä) ja prosessi jää odotamaan seuraavaa muutosta.

    VHDL:llä ja Verilogilla suunnitellaan esim nykyiset kymmenien miljoonien transistoreiden suorittimet.

    Yksinkertainen esimerkki:
    ---------------------------------------------------
    -- 3-bit Shift-Register/Shifter
    -- (ESD book figure 2.6)
    -- by Weijun Zhang, 04/2001
    --
    -- reset is ignored according to the figure
    ---------------------------------------------------

    library ieee ;
    use ieee.std_logic_1164.all;

    ---------------------------------------------------

    entity shift_reg is
    port(   I:      in std_logic;
       clock:      in std_logic;
       shift:      in std_logic;
       Q:      out std_logic
    );
    end shift_reg;

    ---------------------------------------------------

    architecture behv of shift_reg is

    -- initialize the declared signal
    signal S: std_logic_vector(2 downto 0):="111";

    begin

    process(I, clock, shift, S)
    begin

       -- everything happens upon the clock changing
       if clock'event and clock='1' then
        if shift = '1' then
          S

    Mielenkiintoista nähdä millaisia ohjelmointitapoja on ja tulee olemaan. Ehkä tulee juuri tämän kaltaisia jota tässä keskustelussa haetaan... Tein joskus ikkunointijärjestelmän Basicilla Dosiin ja huomasin kuinka helposti olioiden välisellä kommunikaatiolla/viestinnällä saa tehtyä toimivia ohjelmia. Käytin viestijonoa (First In First Out). Sekään ei ole kovin "epäorgaaninen" arkkitehtuuriratkaisu.

    Äänestä

Aloittaja

Tässä on tuore analyysi tilanteesta niille, joita asia kiinnostaa.
http://www.eecs.berkeley.edu/Pubs/TechRpts/2006/EECS-2006-183.pdf

"Since real world applications are naturally parallel and hardware is naturally parallel, what we need is a programming model, system software, and supporting architecture that are naturally parallel"

"Traditional operating systems will be deconstructed and operating systems functionality will be orchestrated using libraries and virtual machines."

Äänestä
  • esim ovatko aivot moniajoa vai yksi sama prosessi...

    Äänestä

  • Aloittaja

    ja sitten... kirjoitti:

    esim ovatko aivot moniajoa vai yksi sama prosessi...

    Tässä on kysymys yleisestä multicore-suorittimien hyödyntymäisestä, ei "filosofisesta kysymyksestä" miten biologisiin aivoihin sovelletaan ATK:n termejä.

    Mutta, siis asian vierestä, uskon, että ehdottomasti aivoissa on satoja (tai enemmän) keskenään kommunikoivia (ja kilpailevia) prosesseja.

    Äänestä

  • UPDATE_6997029 kirjoitti:

    Tässä on kysymys yleisestä multicore-suorittimien hyödyntymäisestä, ei "filosofisesta kysymyksestä" miten biologisiin aivoihin sovelletaan ATK:n termejä.

    Mutta, siis asian vierestä, uskon, että ehdottomasti aivoissa on satoja (tai enemmän) keskenään kommunikoivia (ja kilpailevia) prosesseja.

    Tarkoitus olikin udella miten tämä tulee vaikuttamaan tekoälyn kehitykseen. Se riippuu myös aivojen rakenteesta. Yleistä fysiikan mallinnusta multiprosessoiminen varmaan jopa nopeuttaa mutta siitä ei kannata vetää nopeasti johtopäätöksiä. Jos kellotaajuuden kasvu pysähtyy, pysähtyykö aivosimulaatio? Tarvitaanko ytimiä aivosoluja vastaava määrä? Kuka hallitsee supermoniulotteista ja superdynaamista ohjelmistoa, jota orgaanisten toimintojen mallintamiseen tarvitaan, ehkä täysin erirakenteisella raudalla. AGI ennustukset uusiksi?

    Äänestä

  • Aloittaja

    sitten... kirjoitti:

    Tarkoitus olikin udella miten tämä tulee vaikuttamaan tekoälyn kehitykseen. Se riippuu myös aivojen rakenteesta. Yleistä fysiikan mallinnusta multiprosessoiminen varmaan jopa nopeuttaa mutta siitä ei kannata vetää nopeasti johtopäätöksiä. Jos kellotaajuuden kasvu pysähtyy, pysähtyykö aivosimulaatio? Tarvitaanko ytimiä aivosoluja vastaava määrä? Kuka hallitsee supermoniulotteista ja superdynaamista ohjelmistoa, jota orgaanisten toimintojen mallintamiseen tarvitaan, ehkä täysin erirakenteisella raudalla. AGI ennustukset uusiksi?

    No, superälyprojektien arkkitehtuurit ovat hyvin monenlaisia. Ne, joilla on suurimmat mahdollisuudet valmistua ensiksi (lähinnä siksi, että laitteistovaatimukset ovat pienimpiä) eivät muistuta paljoakaan biologisten aivojen arkkitehtuuria, mutta oletan, että kaikki ratkaisut ovat rinnakkaistettavissa tehokkaasti.

    Biologisten aivojen simuloinnissa jonkinlainen "keskivertorinnakkaisuusaste" olisi yksi suoritin per "Cortical Column", eli n. 10 000 neuronia. Rinnakkaisuus voi olla tätä lievempää (vähemmän suorittimia: yksi suoritin per 1000 CC:a ) tai jyrkempää (esim yksi suoritin CC:ssa per kerros (aivokuoressa on kuusi kerrosta)).

    Biologisten aivojen simulointi on jonkinlainen "viimeinen mahdollisuus", takaportti, jos muissa menetelmissä tulee ylipääsemättömiä vaikeuksia.

    Äänestä

  • Aloittaja

    UPDATE_6997029 kirjoitti:

    No, superälyprojektien arkkitehtuurit ovat hyvin monenlaisia. Ne, joilla on suurimmat mahdollisuudet valmistua ensiksi (lähinnä siksi, että laitteistovaatimukset ovat pienimpiä) eivät muistuta paljoakaan biologisten aivojen arkkitehtuuria, mutta oletan, että kaikki ratkaisut ovat rinnakkaistettavissa tehokkaasti.

    Biologisten aivojen simuloinnissa jonkinlainen "keskivertorinnakkaisuusaste" olisi yksi suoritin per "Cortical Column", eli n. 10 000 neuronia. Rinnakkaisuus voi olla tätä lievempää (vähemmän suorittimia: yksi suoritin per 1000 CC:a ) tai jyrkempää (esim yksi suoritin CC:ssa per kerros (aivokuoressa on kuusi kerrosta)).

    Biologisten aivojen simulointi on jonkinlainen "viimeinen mahdollisuus", takaportti, jos muissa menetelmissä tulee ylipääsemättömiä vaikeuksia.

    "Biologisten aivojen simulointi on jonkinlainen "viimeinen mahdollisuus", takaportti, jos muissa menetelmissä tulee ylipääsemättömiä vaikeuksia."

    Tässä on vielä Ben Goertzelin melko tuore näkemys samasta asiasta, näin kai se sitten on:

    "Benjamin Goertzel:

    Sun, 21 Jan 2007 07:04:02 -0800
    One thing I find interesting is that IBM is focusing their AGI-ish
    efforts so tightly on human-brain-emulation-related approaches.

    For instance, Sam Adams, an IBM Distinguished Engineer who has created
    the Joshua Blue AGI architecture,

    http://wiki.squeak.org/squeak/1107

    was not present at this "cognitive computing" conference.

    Kurzweil, as is well known, has forecast that human brain emulation is
    the most viable path to follow to get to AGI. I agree that it is a
    viable path, but I don't think it is anywhere near the shortest path.
    However, I think it's possible (though not extremely likely) that if
    all the pundits and funding sources (like IBM) continue to harp on the
    brain-emulation approach to the exclusion of other approaches, the
    prophecy that human brain emulation will be the initial path to AGI
    could become a self-fulfilling one ;-p ...

    -- Ben G

    Äänestä

  • UPDATE_6997029 kirjoitti:

    "Biologisten aivojen simulointi on jonkinlainen "viimeinen mahdollisuus", takaportti, jos muissa menetelmissä tulee ylipääsemättömiä vaikeuksia."

    Tässä on vielä Ben Goertzelin melko tuore näkemys samasta asiasta, näin kai se sitten on:

    "Benjamin Goertzel:

    Sun, 21 Jan 2007 07:04:02 -0800
    One thing I find interesting is that IBM is focusing their AGI-ish
    efforts so tightly on human-brain-emulation-related approaches.

    For instance, Sam Adams, an IBM Distinguished Engineer who has created
    the Joshua Blue AGI architecture,

    http://wiki.squeak.org/squeak/1107

    was not present at this "cognitive computing" conference.

    Kurzweil, as is well known, has forecast that human brain emulation is
    the most viable path to follow to get to AGI. I agree that it is a
    viable path, but I don't think it is anywhere near the shortest path.
    However, I think it's possible (though not extremely likely) that if
    all the pundits and funding sources (like IBM) continue to harp on the
    brain-emulation approach to the exclusion of other approaches, the
    prophecy that human brain emulation will be the initial path to AGI
    could become a self-fulfilling one ;-p ...

    -- Ben G

    En vielä ottanut selvää noista Benin näkemyksistä mutta...

    "Biologisten aivojen simulointi on jonkinlainen "viimeinen mahdollisuus", takaportti, jos muissa menetelmissä tulee ylipääsemättömiä vaikeuksia."

    Nyt minusta alkaa näyttää siltä että tämä aivojen simulointi näillä "1900-luvun tietokoneilla" on mahdottomuus. Tietokonelaskenta ei vaan ole riittävän "tarkkaa" eikä kasva tarpeeksi nopeasti.

    Suorittimien laskentattehon kasvu on ilmoitettu _vain yhdessä aikaulottuvuudessa_!!! Aivojen simuloinnin kannalta lukua tulisi seurata noin kahdeksassa ulottuvuudessa. (Ei neliöjuuressa tai kuutiojuuressa vaan kahdeksassa juuressa) (4 viimeistä ulottuvuutta tulee esim tarkentuvan soluautomaatin lisääntyvien naapurisolujen määrästä, arvioin luvun itse) Vertailuna Commodore 64:ään "8-ulotteisen laskennan tarkkuus" _ei ole edes kaksinkertaistunut_.

    Muutenkin laskentavoiman kasvu on ollut varsin kosmeettista. Sään ennustamisessa, joka vaatii oikeaa moniulotteista laskentaa, ei ole tapahtunut läpimurtoa. Eikä siis ihme. Ehkä tiettyjen tilastojen valossa vaikuttaa että "kellotus" on pysähtymään päin.

    Tällä sivulla esitetyt menetelmä ovat minusta kiinnostavia mutta jos aivosimulaatio on näin kaukana, onko realistista odottaa kovin autonomisia ohjelmia?

    Äänestä

  • sitten... kirjoitti:

    En vielä ottanut selvää noista Benin näkemyksistä mutta...

    "Biologisten aivojen simulointi on jonkinlainen "viimeinen mahdollisuus", takaportti, jos muissa menetelmissä tulee ylipääsemättömiä vaikeuksia."

    Nyt minusta alkaa näyttää siltä että tämä aivojen simulointi näillä "1900-luvun tietokoneilla" on mahdottomuus. Tietokonelaskenta ei vaan ole riittävän "tarkkaa" eikä kasva tarpeeksi nopeasti.

    Suorittimien laskentattehon kasvu on ilmoitettu _vain yhdessä aikaulottuvuudessa_!!! Aivojen simuloinnin kannalta lukua tulisi seurata noin kahdeksassa ulottuvuudessa. (Ei neliöjuuressa tai kuutiojuuressa vaan kahdeksassa juuressa) (4 viimeistä ulottuvuutta tulee esim tarkentuvan soluautomaatin lisääntyvien naapurisolujen määrästä, arvioin luvun itse) Vertailuna Commodore 64:ään "8-ulotteisen laskennan tarkkuus" _ei ole edes kaksinkertaistunut_.

    Muutenkin laskentavoiman kasvu on ollut varsin kosmeettista. Sään ennustamisessa, joka vaatii oikeaa moniulotteista laskentaa, ei ole tapahtunut läpimurtoa. Eikä siis ihme. Ehkä tiettyjen tilastojen valossa vaikuttaa että "kellotus" on pysähtymään päin.

    Tällä sivulla esitetyt menetelmä ovat minusta kiinnostavia mutta jos aivosimulaatio on näin kaukana, onko realistista odottaa kovin autonomisia ohjelmia?

    "Vertailuna Commodore 64:ään "8-ulotteisen laskennan tarkkuus" _ei ole edes kaksinkertaistunut_."

    Korjaan itse: 4,2 ghz kone on 2,837 kertaa 1 mhz konetta tarkempi 8-uloitteisessa soluautomaatiossa.

    Äänestä

  • Aloittaja

    sitten... kirjoitti:

    En vielä ottanut selvää noista Benin näkemyksistä mutta...

    "Biologisten aivojen simulointi on jonkinlainen "viimeinen mahdollisuus", takaportti, jos muissa menetelmissä tulee ylipääsemättömiä vaikeuksia."

    Nyt minusta alkaa näyttää siltä että tämä aivojen simulointi näillä "1900-luvun tietokoneilla" on mahdottomuus. Tietokonelaskenta ei vaan ole riittävän "tarkkaa" eikä kasva tarpeeksi nopeasti.

    Suorittimien laskentattehon kasvu on ilmoitettu _vain yhdessä aikaulottuvuudessa_!!! Aivojen simuloinnin kannalta lukua tulisi seurata noin kahdeksassa ulottuvuudessa. (Ei neliöjuuressa tai kuutiojuuressa vaan kahdeksassa juuressa) (4 viimeistä ulottuvuutta tulee esim tarkentuvan soluautomaatin lisääntyvien naapurisolujen määrästä, arvioin luvun itse) Vertailuna Commodore 64:ään "8-ulotteisen laskennan tarkkuus" _ei ole edes kaksinkertaistunut_.

    Muutenkin laskentavoiman kasvu on ollut varsin kosmeettista. Sään ennustamisessa, joka vaatii oikeaa moniulotteista laskentaa, ei ole tapahtunut läpimurtoa. Eikä siis ihme. Ehkä tiettyjen tilastojen valossa vaikuttaa että "kellotus" on pysähtymään päin.

    Tällä sivulla esitetyt menetelmä ovat minusta kiinnostavia mutta jos aivosimulaatio on näin kaukana, onko realistista odottaa kovin autonomisia ohjelmia?

    En nyt ihan ymmärrä kaikkea.
    Ei (ihmis-) aivosimulaattori olekaan mahdollinen 1900-luvun koneilla, mutta ehkä riittävällä tarkkuudella 2020..30-luvun koneilla. Jo "Blue Brain Project"
    http://domino.watson.ibm.com/comm/pr.nsf/pages/rsc.bluegene_cognitive.html
    antanee hyviä valmiuksia piankin yhden Cortical Column modulin simuloinnissa.

    Ymmärrän "8-ulottuvuuksen soluaatomaatin" käsitteen, mutta en sitä, miten se liittyy aivojen simulointiin. Teoreettisten soluautomaattien simuloinnin kaikkien mahdollisuuksien simulointi räjähtää eksponentiaalisesti jo kolmannesta ulottuvuudesta lähtien, mutta silti vaikka 1000-ulottuvuuksista soluautomaattia voi simuloida hyvin pöytäkoneella (mutta ei löytää sen kaikkia mahdollisuuksia). Samoin ei ole tarvetta evaluoida "kaikkia mahdollisia aivoja, joissa on 10^11 neuroonia joista jokainen kytkeytyy 5000 neurooniin". Riittää, kun löydetään yksi toimiva, joka korreloi neurologisiin tutkimuksiin.
    Ja sitten myöhemmin toetutus, johon voidaan ladata oikean ihmisen, yksilön, aivojen koko konfiguraatio muistineen, oppimisineen, siis koko persoonallisuus. Tämä voi olla mahdollista esim 2045.

    Äänestä

  • UPDATE_6997029 kirjoitti:

    En nyt ihan ymmärrä kaikkea.
    Ei (ihmis-) aivosimulaattori olekaan mahdollinen 1900-luvun koneilla, mutta ehkä riittävällä tarkkuudella 2020..30-luvun koneilla. Jo "Blue Brain Project"
    http://domino.watson.ibm.com/comm/pr.nsf/pages/rsc.bluegene_cognitive.html
    antanee hyviä valmiuksia piankin yhden Cortical Column modulin simuloinnissa.

    Ymmärrän "8-ulottuvuuksen soluaatomaatin" käsitteen, mutta en sitä, miten se liittyy aivojen simulointiin. Teoreettisten soluautomaattien simuloinnin kaikkien mahdollisuuksien simulointi räjähtää eksponentiaalisesti jo kolmannesta ulottuvuudesta lähtien, mutta silti vaikka 1000-ulottuvuuksista soluautomaattia voi simuloida hyvin pöytäkoneella (mutta ei löytää sen kaikkia mahdollisuuksia). Samoin ei ole tarvetta evaluoida "kaikkia mahdollisia aivoja, joissa on 10^11 neuroonia joista jokainen kytkeytyy 5000 neurooniin". Riittää, kun löydetään yksi toimiva, joka korreloi neurologisiin tutkimuksiin.
    Ja sitten myöhemmin toetutus, johon voidaan ladata oikean ihmisen, yksilön, aivojen koko konfiguraatio muistineen, oppimisineen, siis koko persoonallisuus. Tämä voi olla mahdollista esim 2045.

    Fyysisesti tämä soluautomaatti saa olla yksiulotteinenkin mutta nämä ulottuvuudet olivat havainnollistamiseksi, jotta tilannetta voisi hahmottaa lineaarisesti.

    Mutta selkeitä perusasioita: Väitän että biologiset aivot tuottavat massiivisesti ns. sirottuvaa tietoa, eli aivosolut reagoivat ja tuottavat tietoa jokaisesta vähäpätöisemmästäkin asiasta. Eikä ole privaattimuuttujia vaan kaikki vaikuttaa kaikkeen. Näiden reaktioiden suuri määrä on suurin ongelma tietokoneelle.

    Itse Common Sense ei ole koneen ongelma vaan se ettei sille voida tuottaa tätä tarpeeksi runsasta syötetietoa vaan tyypillistä digitaalimössöä.

    Äänestä

Muuten olen kanssasi samaa mieltä, mutta viittaat ilmeisesti tässä Mooren lakiin.

"Vielä muutama vuosi sitten suorittimen laskentateho kaksinkertaistui 1,5-2v välein nostamalla kellotaajuutta..."

Itseasiassa ns. Mooren laki pätee edelleen. Mooren laki ei puhu mitään prosessorien kellotaajudesta jne, vaan transistorien lukumäärästä mikropiirissä. Mooren laki sanoo, että yhdessä mikropiirissä olevien transistorien lukumäärä tuplaantuu joka toinen vuosi. Tämä pätee edelleen tietokoneiden suorittimien yhteydessä, ja näillä näkymin Mooren laki tulee pätemään vielä vuosia.

Äänestä

Kommentoi aloitusta


UPDATE_6997029 kirjoitti:

Useimmilta on ehkä jäänyt huomaamatta, että tietokonetekniikka elää ***__ juuri nyt ___**** merkittävintä murrostaan sitten mikroprosessoritekniikan käyttöönoton 70-luvulla.

Vielä muutama vuosi sitten suorittimen laskentateho kaksinkertaistui 1,5-2v välein nostamalla kellotaajuutta, lisäämällä sisäistä rinnakkaisuutta, väylänleveyksiä, välimuistien kokoja ym. Tämä siis koski yksittäisiä suorittimia joiden monimutkaisuus kasvoi periaatteessa ohjelmoijalta piilossa nykyiselle tasolleen.

Nyt tämä tie on kuljettu ihan virallisesti loppuun!!!!!

Tästä lähtien laskentatehot kasvavat edelleen, mutta ei kasvattamalla yksityisen suorittimen tehoja vaan lisäämällä yhdellä piipalalla olevien prosessoreiden niin, että tämä määrä kaksinkertaistuu n. kahden vuoden välein. Nyt on juuri menossa (yleissuorittimissa) 2 -> 4 suorittimeen per piipala. Kuuden vuoden päästä on meneillään sukupolvenvaihdos 16 -> 32 suoritinta piipalalla.

Tämä paradigman muutos on radikaali, koska se tulee näkymään ohjelmoijillekin. Ohjelmointitekniikoita on muutettava, on siirryttävä rinnakkaisajatteluun. Se on isompi siirros kuin 10-15v sitten, jolloin siirryttiin oliohjelmointiin.

Tämä muutos uusi ei vielä näy, mutta pinnan alla kuohuu. Piirivalmistajat ovat nostaneet kädet pystyyn antautumisen merkiksi: yksittäisten suorittimien tehojen nousu on loppu. Nyt keskitytään MIPS/Watti tai MIPS/dollari tai molempia. Ei enään MIPS/suoritin.

Sulautetuissa järjestelmissä, robotiikassa ja tekoälyssä muutos ei ole niin radikaali, koska siellä on jo vuosikymmeniä sovellettu multitasking- ja jopa multiprosessoriohjelmointia. Minä tein koodia monelle rinnakkaiselle prosessorille jo 80-luvulla, mutta monilla aloilla muutos tulee olemaan vaikea ja voi merkitä kehityksen hidastumista. Toiset sovellukset sopivat luonnostaan jaettavaksi useisiin säikeisiin, mutta toisissa tulee seinä eteen.

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