http://www.tietokone.fi/uutta/uutinen.asp?news_id=36622&tyyppi=1Xeonia käyttävien palvelinkoneiden kannalta asia on mielenkiintoinen. Tavallinen kahden prosessorin peruspalvelin tarjoaisi käyttöjärjestelmälle näin ollen 32 säiettä, eli ohjelmien kannalta kyseessä on 32 prosessorin kone.
Tätähän on kyllä ounasteltu tekniikkapiireissä pitkään. Kysymys onkin siitä, miten ohjelmointityökalujen pitää muuttua. Aina vain on sanottu, että ei se vielä ja kyllä vielä pärjää. Mutta entäs kun prosessorien määrän kasvu jatkaa Mooren lain mukaan?
Ainakin vanhalla ajattelumallilla tehdyt sovellukset putoaa auttamattomasti kelkasta. Omissa sovelluksissani käyttämäni pipelining / assembly line tekniikka putoaa myös, koska se vaatii ohjelmoijalta työtä suorittavien yksikköjen luomiseen.
Miten siis kirjoittaa sovellus joka hyödyntää tehokkaasti esimerkiksi tuhatta tai kahtatuhatta prosessoriydintä? Ja ettei jäädä alkukuoppiin niin lisätään noihin vielä nolla perään.
Ainakin ensimmäinen asia joka on aivan selvää on se, että tuo on huomioitava ohjelmien suunnittelussa. Python GIL on ainakin ongelma, samoin virtuaalikoneen GC, joka ei välttämättä kykene hoitamaan asiaa täysin rinnakkaisesti pyörivien sovellusten kanssa.
Mitä muuta, olennaista olen tässä unohtanut?
Jos siltä tuntuu tän saa toki siirtää tänne: Ohjelmointi, palvelimet ja muu edistyneempi käyttö