juuni 22, 2016

100 Petat Hiinale ehk Le Roi Est Mort, Vive Le Roi!













Sellesuvisel superarvutite konverentsil Saksamaal avaldati 20. juunil uus loend superkolakatest ja esimest korda inimkonna ajaloos võeti ära 100 Petaflopsi piir. 
Jälle tegid selle ära HIINLASED

Kes mäletab, ma kirjutasin kunagi liidetest flopside eest ja peta on 10 15 nulliga, eksa (exa) on 10 18 nulliga. Tähtsam, kui nullid on aga Moore seaduse lõpuaegadest viimase pigistamine,
kus suurriigid näitavad sedaviisi oma tehnoloogilist võimekust. 
Viimased viis aastat, alates aastast 2013 on maailma kõige võimekama arvuti tiitel olnud Hiinas ja sellesuvise saavutusega ilmselt jääb sinna veel vähemalt 2017 aasta lõpuni.
Hiinlaste see tulemus, juba aastal 2016 saavutada unelmpiirile  eksaflops niivõrd lähedane tulemus on üllatav, sest USA keelas Hiinale oma Inteli Xeon protsessorite ekspordi 2015 aprillis. Nii võinuks see panna hiinlased põdema, aga toimus hoopis vastupidine.
Eelmine rekordkolakas, Tianhe - 2 sai kätte 33.86 petaflopsi, aga kasutas oma sisemuses Inteli Xeon protsessoreid.
Keeld tõmbas hiinlaste plaanile Tianhe-d paremate Xeon protsessoritega uuendada kriipsu peale. 
Aga tagataskus olid olemas Hiinas endas (jah, lugesite õieti, Hiinas) toodetud protsessorid Sw26010. 
Neid pandi ühte suurde arvutisse kokku tervelt 11 miljoni jagu (täpsemalt kusagil 10.6 miljonit) ning selle kõige juures ei tarbi kolakas üldsegi mitte rohkem voolu, kui  Tianhe - 2, kokku "AINULT" 16 MW. Nii võivad hiinlased lähiaastatel soovi korral toore jõuga saada kätte 500-600 Petaflopsi, kui vaja peaks minema. 
Ka see on muljetavaldav, peamine küsimus esialgu eksaflopsi saavutamisel oleks ühe vati energitarbimise kohta saavutav Gigaflopside hulk. Hiinlased juhivad ka siin, 6 Gigaflopsi ühe vati energiaga on praegu rekord.
Kuna just energiatarve on üks pudelikael 1 eksaflopsi saavutamise teel, siis on täiesti reaalne, et hiinlased ehitavadki esimesena eksakompuutri 2020 valmis ...

Võiks veel ujutada lugejat üle arvudega, kuid peamine peaks olema selge.
USA juhtpositsioon kõrgtehnoloogias on sisuliselt murtud / murdumas.
Ainult 15 aastaga on hiinlased tulnud superarvutite maailma (algul ei olnud neil planeedi esimese 500 arvuti seas õieti midagi). Praegu on ka esimese 500 arvutite seas olevate kolakate koguvõimsuselt hiinlased ameeriklastest üle. See vahest on isegi veel murettekitavam ameeriklastele.
Meenutagem, et hiinlased maandasid oma kulguri hiljuti ka Kuule. Ühesõnaga, peab olema pime, et mitte märgata - Le Roi est mort - Vive le Roi!
Järeldused hea ninaga Eesti äriinimestele (s.h. arvutiinimestele) peaksid olema ilmselged.
Hiina keelest ei ole pääsu. 
Ma ei tahaks hakata seletama Doomi naljadega harjunud seltskonnale seda, et superkolakate ehitamine ei ole praegu enam ainult rohkemate protsessorite üksteise külge panek - kasvõi voolutarve paneb piirid paika ja samas on see ainuke koht, kus veel Mooret edasi pigistada annab ja see ühtlasi määrab ära, kes hakkab kõige paremini kamandama roboteid, kõige paremini aretama AI -d jpm...
Tõsi, AI uuringute praegusest seisust mul ülevaadet ei ole, aga oleks huvitav seda hakata jälgima. Ma usun, et ka siin pressivad hiinlased üsna kõvasti. ...
Ühes Wired artiklist on meelde jäänud viide Larry Pagele, kes olevat väitnud, et tegelikult nad arendavad AI-d (mitte otsimootorit või sarnast). Järgmine tehnoloogiline lahing käib AI rindel ja siin on kolakate näitajad ka väga olulised. ...
Elame - näeme.



juuni 13, 2016

Malemasinatest 20 aastat hiljem

















Pildil olev nunnusisalik Komodo on praeguses Universumis osas kõige paremini malet mängiva programmi nimeks...

Aasta 2016 olevat saanud pöördepunktiks GO mängus - arvuti teeb nüüd
ka Go mängus (ma õnnetuseks ei oska seda mängu) inimesele ära.
Umbes 20 aastat tagasi toimus see pööre malemängus - võtan mugavuse mõttes aluseks Deep Blue esikmatsi veebruaris 1996 (et GO mängu ka ümmargusse aritmeetikasse mahutada),
mille Kasparov võitis 3:2, kaotades ühe partii.
Umbes 10 aastat hiljem, 2007 kirjutasin Ehlvesti matsist arvutiga, kus Rybka nimeline programm tegi Ehlvestile ära 5.5 - 2.5, kusjuures Ehlvestile anti iga mäng ettur ette.
Sellised etteandmismängud olid 19. sajandil väga populaarsed (geniaalse Murphyga ei julgenud tollastest meistritest keegi hästi mängida ilma etteandmiseta).
Rybka toimis täiesti tavalisel personaalarvutil, omades umbkaudset ELO-t 3100 ja umbes sarnase tempoga on ka arvutimale edasi läinud - suurte kolakate võimsust ei ole tegelikult enam eriti vaja, maleprogrammid on koos arvutitega (aga kiiremini, kui arvutite füüsiline võimekus) jõudnud ELO-ni väärtusega 3300-3400. Nii et umbkaudu 200 punkti 10 aasta kohta.
Meid, surelikke,  huvitab muidugi inimeste mäng enam. Hetkel on planeedi kõrgeima ELOga maletaja ja kõikides (välk, kiirmale ja klassikaline male) maailmameister Magnus Carlsen, praegu kõige parimas eas (25) ja ELO koefitsient 2882 on kõrgeim, mida inimene on saavutanud.
Kuid on üsna kindel on, et Komodo-ga  mängides oleks 20 partiilises matsis tulemus umbes 19:1 arvuti kasuks.
Mõned suurmeistrid on nüüdseks sellise olukorraga leppinud ja nii teame me
Hikaru Nakamura matsist sellesama Komodoga 2015 jaanuaris.
3 etteandmismängu suutis Hikaru Nakamura viigistada. Ja kahjuks viimase, kus tal oli võimalik teha 3 käiku rohkem valgetega Hikaru Nakamura kaotas. 
Nakamura on USA parim maletaja praegu.
Carlsen on ise tunnistanud, et praegused malemootorid on tema jaoks liiga tugevad ja etteandmismängud teda praegu ei paista huvitavat.
Nakamura matsist vt.
Nakamura suutis sellesama Rybka 2008 ühes välkpartiis üle mängida - tollal oli veel mingi shanss ära kasutada maleprogrammi teada nõrkusi. Aga see on nüüdseks minevik.
Kas malemasinate mäng igavaks ei lähe? 
Selgub, et üldsegi mitte. Malemasinad suudavad mängida väga huvitavat malet, mida on päris põnev Internetist jälgida. 
On ennustatud, et ühel ilusal päeval jõutakse tulemini, kus masin enam ei tee vigu. Praegu on see aeg loodetavasti veel kaugel. Pessimistlikumad inimesed arvavad aga, et see saabub umbes 10 aasta pärast, kui parima (praktiliselt veatu) maleprogrammi ELO saavutab väärtuse 3600.
Hetkel käib aga põnev duell 2 malemasina meeskonna vahel, programmide nimed on
Stockfish ja Komodo. Edasi on tükk tühja maad ja siis tulevad maleprogrammid nimedega.
Houdini, Fire, Gull jpt... Aga kõigil on ELO üle 3000.
Hetkel on ülekaal Komodo poolel, aga see pole kindlasti viimane sõna.
Varem on teoretiseeritud, et maleprogrammi ja inimese koostöös võiks sündida kõige suurema ELO-ga moodustis planeedil. See pole nii läinud. Pigem on programmide jaoks vaja suurmeistreid, kes suudaks hästi paika panna positsioonihinnangud. Male nimelt, selgub, on suurmeistrite jaoks paljuski positsiooniline manööverdamine.
Praegu peab maleprogramm mingi positsiooni juures peatuma ja andma sellele positsioonile hinnangu. Selleks on vaja suurmeistri pilku ja fanaatilisi programmeerijaid, kes selle teadmise suudaksid arvutile selgeks teha.
Komodo programmi kirjutas Don Dayley, kes enda nime järgi nimetas selle nimega Doch ...

Don Dayley-ga liitus 2007 suurmeister Larry Kaufman ja 2011 (programmide kirjutamine võtab AASTAID) sai valmis programm, mis oli valmis lööma Rybkat. 
Kaufmanile Doch nimi ei meeldinud (saksa keeles ei kõla ilusti) ja nii ristitigi maleprogramm Komodoks... (sitsiilia kaitse draakonivariandi tõttu mdx)
Don Dayley nägi ära Komodo tõusu arvutimale maailmameistriks 2013, kuid siis võttis verevähk oma.
Tema tööd jätkab Mark Lefler. 
Komodo konkurent vabavaraline Stockfish olevat vahepeal jälle saavutanud Komodost kõrgema ELO, nii et 
ei ole üldse selge, kes võidab arvutimale mitteametlikud maailmameistritiitli 2016.  Kord on üks peal ja siis jälle teine ja selle kõige käigus läheb programmide ELO hirmuäratavad kiirusega aina kõrgemaks.

Kuidas aga arvutimale maailmameistri selgitamine üldse käib?
Tõenäoliselt arvutite võimekuse nii kiiret tõus poleks olnud ilma ÜHE (lugesite õieti) inimeseta. Selle mehe nimi on Martin Thoresen ja temaStockholmi korteris, 45m2, on üks serverarvuti, milles on 16 tuuma. Praegu vist ehk koguni 24. Ja selles arvutis käib malemootorite omavaheline andmine 24h.

Praegugi (ja üldiselt 24h) saab seal (seda näitab küll teine serverarvuti) jälgida arvutite omavahelisi jõuvõtte:
Toimub Sessioon 9, kus selgitatakse tõenäoliselt jälle arvutimale meister Stockfishi (vabavaraline) ja Komodo vahel. Esimene Thoreseni organiseeritud sessioon 1. toimus 2010.

Mänge internetis näitava serverarvuti tarkvara on arendanud Thoresen ise.
Thoresenile on natukene tulnud abi, kuid TCEC on endiselt siiski peamiselt ÜHE inimese ettevõtmine, kes teeb seda oma töö kõrvalt, sest suurfirmad on mingil imelikul põhjusel ignoreerinud Thoreseni.
Ometi on just selline regulaarne malemootorite omavaheline jõuvõtmine aastast 2010 alates andnud võimaluse suureks arenguks.
Jälle võib veenduda, kuidas fanatism ja isiklik initsiatiiv väga sageli ületab igasuguse korporatiivsuse. TCEC on ju ka püsti pandud sisuliselt "garaazhinurgas" - aga ta toimib ja kõikide suuremate malemootorite loojate ühisel hinnangul on tegemist ikkagi maailmameistrivõistlustega.
Aga see pole ka üllatav, sest malemootoreid arendavadki fanaatikud ja fanaatikud saavad üksteisest hästi aru.
Loodan, et Thoresenil jätkub entusiasmi jätkata ja talle tuleb juurde toetajaid!
Kas selle toel jõutakse lõpuks välja ka arvutini, mis enam ei tee malemängus vigu?
Tundub, et praegu veel mitte, arenguks on küllalt ruumi.
Malemasinate omavahelises jõukatsumises on viike küllalt palju, sellest hoolimata mängitakse jätkuvalt (ka surelike tavakiibitsejate jaoks) päris ilusaid partiisid - muidugi peab selleks leiduma ka mõni GM, kes seda kommenteeriks...

Niipalju siis malemasinatest praegu.  

juuni 05, 2016

UML kui koodinikerdajate esperanto ??



Paabeli torni lugu kordub ikka ja jälle erinevates valdades.
Koodinikerdamine ongi suuremalt jaolt lingvistika ja ühise programmeerimiskeele loomise ajalood suurelt jaolt on korranud Paabeli torni ehitamise lugu.
Võimalik, et programmeerimises oleme mingis mõttes sarnases faasis 19. sajandi lõpu Euroopaga keelteoskuse mõttes.
Kes tollal tahtis olla haritud inimene, pidi kindlasti teadma ladina ja kreeka keelt. Lisandusid aga suuremad Euroopa keeled - inglise, prantsuse, saksa. Meie keeleruumis oli vaja veel ka vene keele oskust. Lihtne see ei olnud, võimatu aga ka mitte. Võimalik, et selline mitmete keelte valdamine võimaldas eelmise sajandivahetuse inimestel panna aluse 20. sajandi tehnoloogilisele revolutsioonile (koos kõige heaga ja kõige halvaga).
Tänapäeval laiutab keelte keskel häbenematult inglise keel, küsimata, kas ta ikka on piisavalt ilus või elegantne.
Igasuguse keelteküsimuse lahendab lõppukokkuvõttes hoopis keelteväline küsimus - praegu siis anglo-ameerika impeeriumi domineerimine, kunagi varem Rooma impeeriumi hiilgus.
19. sajandi keelte Paabelis sündis aga üks ilus unistus ja puhtalt tehislik asi nimega Esperanto - “lootev”.
Keele lõi Poola silmaarast L.L. Zamenhof.
Erinevalt kõigist teistest keeltest ja nende grammatilistest õudustest ei ole esperantos (väidetavalt ) rohkem, kui 16 reeglit, mida peab teadma ja mitte ühtegi erandit.
Segadusest sündinud tarve kasvatas selle kummalise tehismoodustise oskajate arvu peaaegu miljonini ja selle juures on see arv püsinud terve sajandi jagu.
Ei ole üldse välistatud, et 21. sajandil lõpuks saab see lootus teoks, panna terve inimkond õppima ja omavahel rääkima esperanto keeles. Ja ülejäänud Paabel jäägu fännidele! (Praegu muidugi on täpselt vastupidi)

Umbes samasugune unistus vaevab praegu programmeerijaid ja üheks selliseks unistamise vormiks on UML - Unified Modeling Language.
Ladina ja kreeka keele analoogideks ehk võiks meie maailmas olla bash ja C, inglise keeleks ehk Java, muud vajalikud keeled C++, C#, Objective C (romaani keelte analoogia), JavaScript, perl, python, ruby ... jpm (Scala, Eiffel, F# ...) 
Praeguses vormis on see unistus ühiskeelest juba ilmselgelt põrunud ja ka võrdluses esperantoga on UML üsna ebamäärane kogum reegleid ja kokkuleppeid.
Hoolimata sellest on vajadus mingise ühise keele järele nii terav, et UML on praegu üsna levinud kastide joonistamise dialekt. Umbes nii nagu demokraatiaga, et hetkel ei ole keegi midagi talutavamat välja mõelnud.
Et asju lõplikult sassi ajada, on vaja arvutit.
Et neid veel lõplikumalt sassi ajada, on vaja UML-i.
Probleem on selles, et ei ole mingit ühtset skeemi, on eri tüüpi skeemid ja juba nende nimetuste hulk tõotab peavalu.
Hoolimata sellest on olemas koguni eestikeelne “UML kontsentraat”, autoriks tuntud guru Martin Fowler, tõenäoliselt parim, mis UML-st üldse saab kirjutada ja see peaks iga progeja laual/peas olema, tahab ta seda või mitte. Vähemalt objekt-orienteeritud maailmas sellest pääsu ei tundu olevat.
Mis kasu võiks UML tuua?
Me räägime erinevates keeltes! 
oli üks natuke nukker tõdemus üle laua minu kolleegilt A-lt.
Kui tuleb asju ajada andmeanalüütikutega, projektijuhtidega, klientidega, peab laual olema midagi, mille kohta on olemas võimalus, et asjaosalised võib-olla saavad sellest midagi aru.
IMHO UML ei ole selleks vist küll kõige paremini välja kukkunud, aga vt. ülalt demokraatiaga võrdlust - ei ole paremat välja mõeldud. Ja ilma on veel hullem.
Selle tõdemusega ma praegu elan. Jõudsin järeldusele, et enne igasuguseid C#, delphi ja Java peensusi on vaja saada selgeks üldised põhimõtted, s.h. UML ja see, kuidas OO süsteeme kavandatakse ja siis tahvlile / paberile joonistatakse.
"UML kontsentraat" muidugi õppimiseks ei sobi. Minule paistab praegu päris hästi sobivat selline OO disainist ja UML-st pajatav raamat -
Raamatuna siis:
Vaadake veel teisi raamatuid sellelt lingilt:
http://modeling-languages.com/list-uml-books/
Nii nagu esperanto keelega pidavat olema, võiks ehk UML oskus hiljem anda plusspunkte mõne teise, reaalse keele õppimisel. Esperantoga on tehtud uurimus, kus väidetakse, et 3 aastat prantsuse keelt ja 1 aasta esperantot annab paremaid tulemusi, kui 4 aastat prantsuse keelt.
Esperanto on lihtne ja seal ei saa teha vigu - UML ei ole (väga) lihtne, kuid seal võib teha vigu ja neid eeldataksegi disaini algfaasis ning diagrammid pigem peavad olema ebatäielikud, sest detailipuru pealekandmisel kaoks UML joonestamisel ära igasugune mõte.

Koos disainimallidega (Design Patterns) peaks UML teadmine andma erinevatele progejatele mingi ühise keele lootuse. Lihtsalt sama projekti kallal töötamine seda ühist keelt ei pruugi anda - ühes projekti osises on ühed detailid, teises osas teised detailid. Nii et isegi konkreetses arendusmeeskonnas võiks skeemide joonistamine abi tuua.
....


Ühesõnaga, UML on siis see kolmetäheline asi, millega praegu tegelen, et enda väärtust koodinikerdajate keskel ülespoole upitada.