Käyttäjä

MS: "Parallel computing" on isompi muutos kuin pc

Bill Gatesin vastuuta ottava Microsoftin "päävisionääri" Graig Mundie arvioi, että "parallel computing" on tietokonealan seuraava suuri mullistus, teknisesti jopa suurempi kuin pc-tietokone. Moniydinprosessoreilla muutosta on alettu hieman harjoitella, mutta Mundien mukaan kyseessä on vasta jäävuoren huippu. Vain kourallinen ohjelmoijia maailmassa osaa tehdä vaadittavia uudenlaisia sovelluksia.

Lue juttu

Vastaukset 4 vastausta

Käyttäjä

Sekä nVIDIA:lla että ATI:lla (tai siis AMD:llä) on jo nyt valmiit C-ekstensiot joilla voi helposti ohjelmoida massiivisesti paralleeli-koodia GPU:lla (eli ei oo mitenkään vaikeeta laittaa 128 prossua laskemaan samaan aikaan). Tämä tietenkin vaatii sitä että ongelma parallelisoituu, mutta yllättävän monen ongelman pystyy ratkomaan rinnakkaisesti. Eikä se multithreadattu koodaus nyt niin vaikeeta ole. Kaveri on ilmeisesti ite pudonnut kyydistä joskus 90-luvulla.

Käyttäjä

Sekä nVIDIA:lla että ATI:lla (tai siis AMD:llä) on jo nyt valmiit C-ekstensiot joilla voi helposti ohjelmoida massiivisesti paralleeli-koodia GPU:lla (eli ei oo mitenkään vaikeeta laittaa 128 prossua laskemaan samaan aikaan). Tämä tietenkin vaatii sitä että ongelma parallelisoituu, mutta yllättävän monen ongelman pystyy ratkomaan rinnakkaisesti. Eikä se multithreadattu koodaus nyt niin vaikeeta ole. Kaveri on ilmeisesti ite pudonnut kyydistä joskus 90-luvulla.

Itseasiassa ei ole. Multithreadattu koodaus on kyllä periaatteessa ihan helppoa, mutta käytännössä tässä on ongelmia. Kaivataan abstrakteja rakenteita jotka hoitaa säikeistyksen automaattisesti, että säästyy nysvältä. Lisäksi homman pitäisi käydä standardeilla menetelmillä ilman mitään extensioneita. Eihän SIMD -käskyjäkään käytetä vieläkään millään standardilla tavalla vaan jollain assemblerilla tai kääntäjäkohtaisella laajennoksella.

Faktahan on se, että tietokoneet ei niistä useasta prosessorista ja ytimestä huolimatta eivät juurikaan aja juuri mitään säikeistetysti eikä SIMD -käskyjä hyödynnetä ja GPU on myös tyhjänpanttina. Nykyisin käytettyjen tietokoneohjelmien koodin perustukset on pistetty kasaan 80- ja 90-luvulla ja rinnakkaisuuden täysi hyödyntäminen käytännössä vaatii sitä, että softat kirjoitetaan uusiksi alusta lähtien. Ja tämä on valtava urakka.

Käyttäjä

Siis kyllä sitä GPU:ta koodataan käytännöllisesti katsoen ihan perus C:llä, pienillä rajoituksilla ja käyttäen kirjastofunktioita hallintaan (mm. synkronointiin ja säikeen tunnistukseen). Ei sitä assyä tarvii nykyään enää edes katsoa (paitti ehkä tarkistakseen, että se koodi kääntyy optimaaliseksi (tätähän tarvii tehdä muutenkin aina välillä)), saati sitten koodata. SIMD-arkkitehtuurissa (ideana on siis se että eri prosessorit suorittaa samaan aikaan samaa käskyä, mutta eri datalla) noi nykyiset paradigmat riittää ihan hyvin helppoon rinnakkaiskoodin tuottamiseen.

Tavallisen monisäikeisyyden toteuttamiseen tarvittavat kirjastot on jo olleet pitkään olemassa ja windowsia lukuunottamatta aika hyvin standardoitukin (eli posix), mutta C kielenä ei ota oikeastaan mitään kantaa monisäikeisyyteen (paitsi ehkä välillisesti volatile-keywordin kautta) ja täten voi toki olla mahdollista että jokin muu kieli soveltuisi tarkoitukseen paremmin (C:n heikkous (ja vahvuus) on se, että se on niin matalan tason kieli (C++ myös)), mutta en muista nähneeni vielä kieltä, joka ottaisi tämän huomioon, saatikka hyödyntäisi sitä.

Ja kyllähän tota softaa aina välillä kirjoitetaan uusiksi - tekee vaan hyvää laadulle, kun vanhat virheet ja huonot designit kirjotetaan uusiksi.

Käyttäjä

Ongelma onkin siinä, että standardiratkaisut puuttuu. Säikeistys nyt on vielä helppo tapaus ja tässä ei ole kuin Windowsin kanssa säätöä, mutta pthreads on silti aika alkeellinen siihen mikä on tarve. Tarvitaan jotain sellaisia rakenteita mitä esim. Intelin TBB -kirjasto tekee ja lisäksi tämä pitäisi toteuttaa ohjelmointikielessä. SIMD -käskyjen käyttö vaatisi ohjelmointikielen tasolla tukea tietotyypeille joita kääntäjä voisi kääntää SIMD -käskyille.

Sama pätee GPU:n ohjelmointiin. Ei mitään epästandardia kirjastoa vaan selkeämpiä ratkaisuja.

Ja tarvehan on hyvin selkeä, sillä edelleen GPU:ta, SIMD -käskyjä eikä säikeistystä hyödynnetä kunnolla juuri yhtään kun työkalut on mitä sattuu.

Kirjaudu sisään keskustellaksesi.
Takaisin ylös

Juttukommentit

TTL ry
Pieni kirjapuoti
Takaisin ylös