https://yliteippaus.fi/

IT-kisa (Pii)

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.
 

Liitteet

  • CDC 7600.jpg
    CDC 7600.jpg
    160,6 KB · Katsottu: 153
  • Cray-2.jpg
    Cray-2.jpg
    53 KB · Katsottu: 146
Laskemme tässä IT-kisassa Piille 1 M (2²⁰=1 048 576) desimaalia käyttäen SuperPI-ohjelmaa. Se onkin tänään, kisan aloituspäivänä, siis tasan 20 vuoden ikäinen.

Nykyisin on olemassa huomattavasti nopeampia algoritmeja sekä niitä käyttäviä ohjelmia Piin laskemiseksi, mutta SuperPi ohjelmalla on monia hyviä ominaisuuksia, minkä vuoksi se valikoitui tähän kisaan:

-helppokäyttöinen (ei tarvita parametrien viilausta, algoritmien valintoja, tms. datojen syöttöä). Ohjelma määrittää itse tarvittavan keskusmuistin määrän, joka 1 M desimaalin laskennassa ei ole suuri, eikä muodostu pullonkaulaksi

-SuperPIn saa toimimaan muissakin käyttöjärjestelmissä, vaikka se onkin alunperin kirjoitettu Windowsille

-ei rasita prosessoria, koska käyttää vain yhtä ydintä kerrallaan (tavallisella kotitietokoneella laskenta-aika pyörii yhden minuutin molemmin puolin)

-ohjelma on stabiili ja toimii varsin luotettavasti

SuperPI ohjelmaa on käytetty laajasti vuosien varrella prosessorien suorituskykytesteissä, joten eri prosessorigenreille julkaistua vertailutietoa on paljon saatavissa. Jos haluaa haastaa maailman nopeimmat SuperPI-ohjelmalla lasketut 1 M-tulokset (ja alittaa 5 sekunnin haamurajan), kannattaa vierailla oheisella sivulla. Sieltä löytyy SuperPI 1M-dataa erikseen jokaiselle prosessorityypille. Voi esim. vertailla kellotuksen vaikutusta oman prosessorinsa suorituskykyyn. Tällä hetkellä MM-tulos on 5,078 sekuntia.

http://hwbot.org/benchmark/superpi_-_1m/

__________________________________________________________________

Seuraavassa ohjeita SuperPI ohjelman lataamiseksi ja ajamiseksi:

Windows

Mennään ohjelman kotisivustolle:

http://www.superpi.net/Download/

josta ladataan Super PI Mod 1.5 XS niminen zip-tiedosto. Puretaan se ja syntynyt kansio SuperPI150 siirretään työpöydälle. Klikataan kansio auki ja ajetaan siellä oleva super_pi_mod.exe ohjelma. Valitaan Calculate (C) ja esiin ponnahtavasta valikosta 1 M ja ohjelma laskee tuloksen. Voi kokeilla ja laskea myös muita desimaalimääriä (huom; 32 M vie huomattavasti enemmän laskenta-aikaa 1M:ään verrattuna). Jos käynnistää ohjelman aina tästä samasta kansiosta, tuloslistaan päivittyvät vain parhaat tulokset. Laskettuaan desimaalit, ohjelma tulostaa ne tuhannen numeron ryppäissä tiedostoon pi_data.txt, joka sijoitetaan myös tähän kansioon.

Tuossa kansiossa on kaksi muutakin tekstitiedostoa, joissa on mielenkiintoista tietoa SuperPI-ohjelmasta ja vuoden 1995 maailmanennätyslaskelman suorittamisesta.

Linux

SuperPI on alunperin kirjoitettu W:lle (W95) ja siitä on olemassa myös omia Linux-versioita. Seuraavassa ohjeita ohjelman ajamisesta Wine-alustalla, jota voi käyttää useimmissa Linux-jakeluissa.

Wine-alusta, jolla voi ajaa Windows-ohjelmia, löytyy Software Manager/Centeristä (Mint, Ubuntu,…) hakusanalla 'Wine'. Asennetaan Wine meta-package klikkaamalla 'install'-ruutua.

Ladataan ja puretaan Super PI Mod 1.5 XS niminen zip-tiedosto sekä siirretään kansio SuperPI150 työpöydälle samoin kuin ylempänä Windows-kohdassa on esitetty.

Avataan Applications-kohdasta Wine-valikko ja sieltä Uninstall Wine Software-kohta. Avautuu Add/Remove Programs-ikkuna, josta valitaan install…-laatikko. Uudessa ikkunassa etsitään (Look in:) SuperPI150 kansio ja muutetaan Files of_type: kohta Programs (*.exe) ja ikkunaan ilmestyy super_pi_mod.exe. Klikkaamalla Open-kohtaa ohjelma käynnistyy. Valitaan Calculate (C) ja esiin ponnahtavasta valikosta 1 M ja ohjelma laskee tuloksen.

Näin tuo W-ohjelmien ajaminen Winessa toimi vanhemmissa Linuxeissa. Nyt uusimmassa Mint 17.2 :ssa riittää (kun Wine on ensin asennettu Software Centeristä), että avaa SuperPI150-kansion ja klikkaa siellä super_pi_mod.exe-ohjelmakuvaketta hiiren oikeanpuoleisella näppäimellä ja valitsee aukeavasta valikosta 'Open with Wine Windows Program Loader', jolloin ohjelma käynnistyy.

Kun ohjelmaa on käyttänyt ainakin kerran, käynnistyy se samoin kuin Windowsissa (tuplaklikkauksella).

Mac OS X

Itsellä ei ole enää OS-konetta, joten yksityiskohtaisia ohjeita en osaa antaa. Toivottavasti AS:n lukuisat Macistit auttavat tässä. Hyvä ohjesivu Windows-ohjelmien ajamiseksi Macissa on täällä:

http://www.howtogeek.com/187359/5-ways-to-run-windows-software-on-a-mac/

Macissakin on Wine-ohjelmisto esitetty yhtenä mahdollisuutena. Lyhyellä vilkaisulla ilmainen WineBottler vaikutti lupaavalta. Koska SuperPI on raakaa laskentaa ilman grafiikkaa, ym. kikkailuja  on Wine-ohjelma todennäköisesti nopeampi kuin virtuaalikone. Jos on käytössä Applen oma Boot Camp-sovellus (joka vaatii W-lisenssin), voi sillä tietysti myös ajaa SuperPI:n.

Kun Wine on asennettu ja toimii Macissa on sen käyttö arvatenkin hyvin samankaltaista, kuin mitä Linuxen puolella on esitetty.

 
IT-kisa (Pii) kilpailun säännöt

Kilpailuun osallistutaan Piin 1 M desimaalin laskentaan käytetyn SuperPI-ohjelman raportoimalla ajalla (minuuttia ja/tai sekuntia), sekunnit ilmoitetaan tuhannesosan tarkkuudella.

Postauksia samalla tai eri prosessoreilla voi lähettää rajoituksetta.

Tietokoneen prosessoria voi kellottaa (=nostaa käyttötaajuutta) tuloksen parantamiseksi omalla vastuulla.

Kilpailu alkaa 21.9.2015 ja jatkuu Ursulan päivään 21.10.2015 asti, jolloin nopein aika vahvistetaan ja AS:n Mr/Mrs/Miss π nimetään. Myös sen jälkeen voi raportoida uusia tuloksia ja parannuksia omiin aikoihinsa.

Kilpailupostauksessa kerrotaan käyttöjärjestelmä, prosessori ja sen käyttämä kellotaajuus (MHz) sekä 1M-desimaalien laskentaan käytetty aika. Halutessaan voi postaukseen liittää kuvan ohjelman tulostuksesta, jossa saavutettu aika näkyy (ei kuitenkaan miljoonaa Piin desimaalia…).

________________________________________________________

Pari varoituksen sanaa, jos lataa SuperPI-ohjelman muualta, kuin sen omalta viralliselta sivulta. Ohjelma on käännetty suoraan Linuxelle ja myös Mac OS X:lle. Ainakin Linuxen versiot ovat  poistuneet (esim. pi.super-computing.org/Linux/super_pi.tar.gz) netistä. Syynä on ilmeisesti tuo maailmanennätysjahtaus ja siinä havaittu filunki. Ohjelmahan on free-koodia, jota voi muutella vapaasti ja joku on ilmeisesti oikaissut laskentaa saadakseen paremman tuloksen.

Tämänkin takia alkuperäisen SuperPI Windows-ohjelman ja Wine-alustan tai emulaattorien/virtuaalikoneiden käyttö eri käyttöjärjestelmissä on perusteltua ja suotavaa.

Winesta voi todeta, että se on näppärä 'ohjelma' ainakin Linuxessa, kunhan se toimii (kuten SuperPI:ssä). Sillä voi kokeilla ajaa muitakin W-ohjelmia (itse käytän Katsomoa ja FastStone Image Vieweriä). Winella on tosin rajoituksensa. Jos kokeilee jotain mutkikkaampaa, kuten W:n jotain erikoisominaisuuksia käyttävää ohjelmaa, ei Wine todennäköisesti toimi.

Jos ei muista, mikä prosessori omassa koneessaan jyllää, voi sen tarkistaa useilla erikoisohjelmilla (Windowsissa esim. CCleaner, Speccy tai CPU-Z :lla ja Linuxessa hardinfo-ohjelmalla, joka löytyy Software Manager/Centeristä hakusanalla 'hardinfo').

Eipä sitten muuta, kuin Menestystä Kisaan!

 
Ensimmäinen postaus IT-kisaan. Eli Piin 1 M (2²⁰=1048576) desimaalia on laskettu SuperPI-ohjelmalla sekä W10:ssä, että Linux Mint 17.2:ssa. Tässä tulokset:

käyttöjärjestelmä:     64b Linux Mint 17.2 ja Wine
prosessori:             AMD FX-8320 (koodinimi Vishera)
prosessorin kellotaajuus: 3500 MHz (vakio)
tulos (1 M desimaalia):   23,121 sekuntia

Liitteenä on kuva, jossa näkyy ohjelman tulostus ja myös muiden desimaalimäärien tuloksia.

käyttöjärjestelmä:       64b Windows 10
prosessori:             AMD FX-8320
prosessorin kellotaajuus: 3500 MHz (vakio)
tulos (1 M desimaalia):   23,094 sekuntia

W10:llä laskenta sujui pikkuriikkisen (0,027 s) nopeammin, kuin Linuxessa (tosin Linuxessa käytettiin Wine-alustaa). SuperPI toimi Linuxessa täysin oikein, kun myös sen infotiedostot About ja Help avautuivat. W10:ssä Help osio ei auennut, mutta itse ohjelma laski oikein.

========================

Aikamoinen tulos tavalliselle PC:lle. Vuonna 1973 huoneen kokoinen tehotietokone (CDC 7600) tarvitsi 23,3 tuntia samaan tehtävään (no toki silloinen laskenta-algoritmi ei ollut yhtä tehokas, mutta silti laskentatehossa on tapahtunut huimaa kehitystä).

Huh, toivottavasti osaamme käyttää näitä pöydällämme olevia bitin murskaajia oikein ja viisaasti…

========================
========================

Kisan lähtölaukaus on ammuttu! Kenestä tulee AS:n Mister π (tai Mrs,...)? Miten oma(t) prosessorisi pärjää(vät)?

Kisassa voi esittää luonnollisesti myös haasteita. Haastankin pokkuksen upouuden Skylake-prossun kisaamaan omaa Visheraa vastaan. Lyökö Vishera Skylaken, vai käykö päinvastoin?
 

Liitteet

  • fx 8320.png
    fx 8320.png
    8,2 KB · Katsottu: 151
pantero sanoi:
Eskoop oli ajatustakin nopeampi. Plse, tulokset oheisen sapluunan^ mukaisesti. ;)

Jaa! Piti tehä uuvestaan kun kerkesin ohjelman poistamaan... Tuloskin parani huomattavasti.  ;)

käyttöjärjestelmä:          Windows 8.1 Pro
prosessori:                    Intel(R) Core(TM) i3-3110M CPU @ 2,4GHz
prosessorin kellotaajuus:  2,4GHz
tulos (1 M desimaalia):    16.141 sekunttia
 

Liitteet

  • nimetön.png
    nimetön.png
    81,4 KB · Katsottu: 141
Pitääkö tässä alkaa päivittämään konetta..

W7Pro SP1 64bit
10.34s
 

Liitteet

  • kennyn-piirakka.jpg
    kennyn-piirakka.jpg
    73 KB · Katsottu: 148
Core i5 2500
Mitä toi nyt vakio on. 4x 3,3GHz laitehallinan mukaan.

Käytän vielä tuon sisäänrakennettua näytönohjainta.
 
käyttöjärjestelmä:          Windows 7
prosessori:                    Intel(R) Core(TM) i7-4770 CPU @ 3,4GHz
prosessorin kellotaajuus:  3,4GHz
tulos (1 M desimaalia):    9.508 sekunttia

 

Liitteet

  • superpi.png
    superpi.png
    25,3 KB · Katsottu: 142
käyttöjärjestelmä:          64bit Windows 10 Home
prosessori:                    Intel Core i5-2410M
prosessorin kellotaajuus:  2300 MHz (vakio)
tulos (1 M desimaalia):    13.944 sekuntia
 
Ei pyöri Windows-softa täällä, varmaan ei pääse rajatarkastuksesta läpi tai jotain. Yasumasa Kanadan Linux-käännös Super Pi:stä (ftp://pi.super-computing.org/Linux/super_pi.tar.gz), pitäisi olla niin aito versio kun olla voi, hänen omalta palvelimeltaan ladattuna.

Käyttöjärjestelmä: Ubuntu 12.04
Prosessori:            Intel(R) Core(TM) i7-2620M CPU @ 2.70GHz
Kellotaajuus:        3,4 GHz (Turbo)
Tulos:                  9,881 sekuntia

Myös Mac-versio löytyy tuolta, mutta vain PowerPC:lle, eikä ole edes Rosettaa enää itsellä missään koneessa itsellä, niin täytyy nyt tyytyä tähän mopokannettavan tulokseen.
 
Vakiona vanha ratsu...
Ja vähän säädettynä.
 

Liitteet

  • Pii.jpg
    Pii.jpg
    46,6 KB · Katsottu: 191
  • pii2.jpg
    pii2.jpg
    46,7 KB · Katsottu: 201
Käyttöjärjestelmä:  Windows 8.1 Home
Prosessori:              AMD E1-6010
Kellotaajuus:          1,35Ghz
Tulos:                      51,798s

 

Liitteet

  • Pii.jpg
    Pii.jpg
    47,9 KB · Katsottu: 165
w10pro
intell i5 3317u

Screenshot%202015-09-21%2021.33.35.png
 
Mikäs tuo panteron tulos kun noin hidas? Eikös tämän testin pitänyt olla hyvin pitkälle prosessorista kiinni.. Olen tosin kelkasta tipahtanut vuosia sitten.