P
pantero
Vieras
Tällä kertaa IT-kisan aiheena on Pii-arvon laskenta. Tänään 21.9.2015 tulee kuluneeksi tasan 20 vuotta siitä, kun Yasumasa Kanada&Daisuke Takahashi julkaisivat kotitietokoneelle kehitetyn Windows-ohjelman SuperPI. Ohjelma laskee Piin desimaalit halutulla tarkkuudella ja se on käännetty W95:lle alunperin Fortranilla koodatusta ohjelmasta, jolla 4 294 960 000 desimaalin maailmanennätys tehtiin elokuussa 1995.
SuperPI:n 20 vuotispäivän kunniaksi ensin hiukan Piin laskemisen historiaa:
Piin arvo on kiehtonut ihmistä jo aikojen alusta lähtien. Pyramidien rakentajilla arvellaan olleen käytössä Piille arvo 3 + 1/7 =22/7, joka poikkeaa ainoastaan 0,04 % oikeasta. Archimedes päätteli Piin arvon olevan (aivan oikein) pienempi ja sijoittuvan 223/71 ja 22/7 väliin samalla, kun määritti ympyrän alan. Tämä tapahtui noin 250 BC.
Tuota 22/7, eli 22 heinäkuuta vietetään Piin likiarvopäivänä. Maaliskuun 14 on luonnollisesti itseoikeutettu Piin päivä (sattuu olemaan myös Albert Einsteinin syntymäpäivä…).
Tunnettujen desimaalien lukumäärä lisääntyi pikku hiljaa työläillä laskelmilla sekä samalla laskentamenetelmiä kehittäen. Vuonna 1910 löydettiin nopeasti konvergoiva sarja, joka helpotti Piin arvon laskentaa huomattavasti. Silti II maailman sota käytiin tuntien Piistä 'vain' 527 oikeaa desimaalia.
Tietokoneiden keksiminen nopeutti Piin arvon laskentaa ratkaisevasti. Kun mekaanisilla laskimilla oli päästy vasta 1120 desimaalin tarkkuuteen, ENIAC tietokone raksutti kunnioitettavat 2037 desimaalia vuonna 1949, laskennan kestäessä kolme vuorokautta. Siitä eteenpäin desimaalien lukumäärä kasvoikin nopeasti tietokoneiden kehittymisen myötä.
1961 IBM 7090 laski 100 000 desimaalia
1973 CDC 7600 laski 1 000 000 desimaalia
1986 Cray-2 laski 29 000 000 desimaalia
1989 IBM 3090 laski 1 000 000 000 desimaalia
1995 HITAC S-3800 laski 4 294 960 000 desimaalia
Vuonna 1995 Tokion yliopistossa kehitettiin Piin laskenta-algoritmi(Gaus-Legendre), jolla tuo silloinen MM-tulos saavutettiin . Tähän algoritmiin perustuu myös SuperPI ohjelma, jota käytämme IT-kisassa. SuperPI ohjelman julkistuksen jälkeen siitä muodostui nopeasti yksi yleisesti käytetty prosessorin tehokkuuden mittari. Ohjelma laskee vain yhdellä ytimellä kerrallaan riippumatta siitä, montako ydintä prosessorissa on. Tämä sopii hyvin kilpailuumme, antaen hiukan tasoitusta vanhemmille tietokoneille, joiden prosessoreissa ytimiä on vähemmän (tyypillisesti yksi tai kaksi).
Piin desimaalien jahtaaminen on samalla myös kiehtova katsaus tietokoneiden kehityksen historiaan. Me kisaamme 1 048 576 desimaalin (1M = 2²⁰) laskemisesta Piille. Eli kilpailemme nopeudessa tätä vuoden 1973 CDC 7600:sta vastaan (Kuva 1).
SuperPI ohjelma laskee tavallisella kotitietokoneellakin kohtuuajassa 32 M desimaalia. Se on hiukan enemmän, kun mitä Cray-2 super tietokoneella laskettiin syyskuussa 1986 (eli vain 29 vuotta sitten). Cray-2 käytti laskentaan 28 tuntia. Lisäksi kerrotaan, että Piitä laskettaessa Cray-2:sta löydettiin hardware &software bugi, joka oli läpäissyt kaikki tehdastestit. Bugi jouduttiin korjaamaan jälkikäteen kaikkiin niihin koneisiin, jotka oli jo ehditty toimittaa asiakkaille (Kuva 2).
Tässä Wiki-sivu, jossa Piin laskennan historiaa on kuvattu tarkemmin:
https://en.wikipedia.org/wiki/Chronology_of_computation_of_%CF%80
Piin desimaalien lukumäärän jahtaaminen on nykyisin hiukan hiipunut, koska ilmeisesti desimaaleja tunnetaan jo riittävästi ja tämän päivän supertietokoneilla on ihan muuta puuhaa. Tuo Wiki-sivukin raportoi nykyään vain tavallisilla kotitietokoneverkoilla, tms. saavutettuja tuloksia. Niissä käytössä on useasti y-cruncher niminen ohjelma, joka hyödyntää kaikkia prosessoriytimiä ja käyttää parempia algoritmeja. Se onkin pari kertaluokkaa nopeampi kuin SuperPI. Pullonkaulaksi suurten desimaalimäärien laskennassa näyttää muodostuvan keskusmuistin suuruus.
Mikä on tällä hetkellä Piin laskettujen desimaalien maailmanennätys? Tuo Wiki-sivu mainitsee arvon 13,3x10¹²; liekö ajan tasalla. Jossain voi nytkin raksuttaa ryhmä kotikoneita, joiden aikeena on murskata tuo ennätys.
Mutta eiköhän siirrytä pikkuhiljaa asiaan, eli Piitä laskemaan.
SuperPI:n 20 vuotispäivän kunniaksi ensin hiukan Piin laskemisen historiaa:
Piin arvo on kiehtonut ihmistä jo aikojen alusta lähtien. Pyramidien rakentajilla arvellaan olleen käytössä Piille arvo 3 + 1/7 =22/7, joka poikkeaa ainoastaan 0,04 % oikeasta. Archimedes päätteli Piin arvon olevan (aivan oikein) pienempi ja sijoittuvan 223/71 ja 22/7 väliin samalla, kun määritti ympyrän alan. Tämä tapahtui noin 250 BC.
Tuota 22/7, eli 22 heinäkuuta vietetään Piin likiarvopäivänä. Maaliskuun 14 on luonnollisesti itseoikeutettu Piin päivä (sattuu olemaan myös Albert Einsteinin syntymäpäivä…).
Tunnettujen desimaalien lukumäärä lisääntyi pikku hiljaa työläillä laskelmilla sekä samalla laskentamenetelmiä kehittäen. Vuonna 1910 löydettiin nopeasti konvergoiva sarja, joka helpotti Piin arvon laskentaa huomattavasti. Silti II maailman sota käytiin tuntien Piistä 'vain' 527 oikeaa desimaalia.
Tietokoneiden keksiminen nopeutti Piin arvon laskentaa ratkaisevasti. Kun mekaanisilla laskimilla oli päästy vasta 1120 desimaalin tarkkuuteen, ENIAC tietokone raksutti kunnioitettavat 2037 desimaalia vuonna 1949, laskennan kestäessä kolme vuorokautta. Siitä eteenpäin desimaalien lukumäärä kasvoikin nopeasti tietokoneiden kehittymisen myötä.
1961 IBM 7090 laski 100 000 desimaalia
1973 CDC 7600 laski 1 000 000 desimaalia
1986 Cray-2 laski 29 000 000 desimaalia
1989 IBM 3090 laski 1 000 000 000 desimaalia
1995 HITAC S-3800 laski 4 294 960 000 desimaalia
Vuonna 1995 Tokion yliopistossa kehitettiin Piin laskenta-algoritmi(Gaus-Legendre), jolla tuo silloinen MM-tulos saavutettiin . Tähän algoritmiin perustuu myös SuperPI ohjelma, jota käytämme IT-kisassa. SuperPI ohjelman julkistuksen jälkeen siitä muodostui nopeasti yksi yleisesti käytetty prosessorin tehokkuuden mittari. Ohjelma laskee vain yhdellä ytimellä kerrallaan riippumatta siitä, montako ydintä prosessorissa on. Tämä sopii hyvin kilpailuumme, antaen hiukan tasoitusta vanhemmille tietokoneille, joiden prosessoreissa ytimiä on vähemmän (tyypillisesti yksi tai kaksi).
Piin desimaalien jahtaaminen on samalla myös kiehtova katsaus tietokoneiden kehityksen historiaan. Me kisaamme 1 048 576 desimaalin (1M = 2²⁰) laskemisesta Piille. Eli kilpailemme nopeudessa tätä vuoden 1973 CDC 7600:sta vastaan (Kuva 1).
SuperPI ohjelma laskee tavallisella kotitietokoneellakin kohtuuajassa 32 M desimaalia. Se on hiukan enemmän, kun mitä Cray-2 super tietokoneella laskettiin syyskuussa 1986 (eli vain 29 vuotta sitten). Cray-2 käytti laskentaan 28 tuntia. Lisäksi kerrotaan, että Piitä laskettaessa Cray-2:sta löydettiin hardware &software bugi, joka oli läpäissyt kaikki tehdastestit. Bugi jouduttiin korjaamaan jälkikäteen kaikkiin niihin koneisiin, jotka oli jo ehditty toimittaa asiakkaille (Kuva 2).
Tässä Wiki-sivu, jossa Piin laskennan historiaa on kuvattu tarkemmin:
https://en.wikipedia.org/wiki/Chronology_of_computation_of_%CF%80
Piin desimaalien lukumäärän jahtaaminen on nykyisin hiukan hiipunut, koska ilmeisesti desimaaleja tunnetaan jo riittävästi ja tämän päivän supertietokoneilla on ihan muuta puuhaa. Tuo Wiki-sivukin raportoi nykyään vain tavallisilla kotitietokoneverkoilla, tms. saavutettuja tuloksia. Niissä käytössä on useasti y-cruncher niminen ohjelma, joka hyödyntää kaikkia prosessoriytimiä ja käyttää parempia algoritmeja. Se onkin pari kertaluokkaa nopeampi kuin SuperPI. Pullonkaulaksi suurten desimaalimäärien laskennassa näyttää muodostuvan keskusmuistin suuruus.
Mikä on tällä hetkellä Piin laskettujen desimaalien maailmanennätys? Tuo Wiki-sivu mainitsee arvon 13,3x10¹²; liekö ajan tasalla. Jossain voi nytkin raksuttaa ryhmä kotikoneita, joiden aikeena on murskata tuo ennätys.
Mutta eiköhän siirrytä pikkuhiljaa asiaan, eli Piitä laskemaan.