Browsing by Author "Vainikko, Eero"
Now showing 1 - 16 of 16
- Results Per Page
- Sort Options
Item Adaptiivne kõnepõhine juhuväljakutsete tugi biomeetrilisele autentimisele(Tartu Ülikool, 2012) Loskit, Uku; Vainikko, Eero; Mehine, Jürmo; Tartu Ülikool. Matemaatika-informaatikateaduskond; Tartu Ülikool. Arvutiteaduse instituutKäesoleva bakalaureusetöö eesmärgiks oli arendada välja kõnetuvastusprogramm, mida saaks kasutada vokaalsete juhuväljakutse tarvis. Programmi eesmärgiks oli anda üks võimalik lahendus kõnepõhilise biomeetrilise autentimise kesksele turvaprobleemile – taasesitusrünnetele. Programm põhineb vabavaralisel PocketSphinxi kõnetuvastuse tööriistal ning on kirjutatud Pythoni programmeerimiskeeles. Loodud rakendus koosneb kahest osast: kasutajaliidesega varustatud demonstratsiooniprogrammist ja käsurea utiilidist. Kasutajaliidesega rakendus sobib kõnetuvastusteegi võimete demonstreerimiseks, käsurea utiliiti saab aga kasutada mis tahes teisele programmile kõnetuvastusvõimekuse lisamiseks. Kasutajaliidesega rakenduses saab kasutaja oma hääle abil programmiga vahetult suheldes avada näitlikustamiseks loodud demoprogrammi ust. Kasutaja peab ütlema õige numbrite jada või pildile vastava sõna inglise keeles, et programmi poolt autoriseeritud saada. Mõlemat loodud rakendust saab seadistada luues oma keelemudeleid või muutes demorakenduse puhul numbriliste juhuväljakutsete pikkust.Item Biomeetriliste autentimisteenuste integreerimine(Tartu Ülikool, 2012) Javed, Shazia; Norbisrath, Ulrich; Vainikko, Eero; Tartu Ülikool. Matemaatika-informaatikateaduskond; Tartu Ülikool. Arvutiteaduse instituutUnimodaalsete biomeetriliste süsteemide kasvav kasutuselevõtt era- ja riigiasutustes näitab biomeetriliste autentimissüsteemide edu. See aga ei tähenda, et biomeetrilised süsteemid pakuvad terviklikku autentimislahendust. Unimodaalsetes biomeetrilistes süsteemides ilmneb hulk piiranguid, mida on võimalik ületada kasutades multimodaalseid biomeetrilisi autentimissüsteeme. Multimodaalseid süsteeme peetakse töökindlamaks ja võimeliseks rahuldama rangeid jõudlusvajadusi. Lisaks võimaldavad multimodaalsed süsteemid arvestada mitteuniversaalsuse probleemiga ja tõhusalt tõrjuda võltsimisrünnakuid. Vaatamata suhtelistele eelistele on multimodaalsete biomeetriliste süsteemide realisatsioon ja kasutusmugavus jäänud fundamentaalseks väljakutseks tarkvaraarenduses. Multimodaalsed süsteemid on enamasti sulam unimodaalsetest süsteemidest, mis on valitud vastavalt äriprotsessi ja vaadeldava keskkonna nõuetele. Nende süsteemide mitmekesisus, lähtekoodi kättesaadavus ja juurutamisvajadused muudavad nende arenduse ja kasutuselevõtu oluliselt kulukamaks. Tarkvaraarendajatena üritame me lihtsustada arendusprotsessi ja minimeerides selleks vajamineva jõupingutuse suurust. Seetõttu keskendub see töö olemasolevate biomeetriliste süsteemide taaskasutatavaks muutmisele. Eesmärgiks on kirjeldada teenuste integratsiooni raamistik, mis automatiseerib heterogeensete biomeetriliste süsteemide sujuvat seadistamist ja paigaldust ning vähendab arenduse töömahtu ja sellega seotud kulutusi. Selle eesmärgi saavutamiseks kõrvaldame me vajaduse korduva stsenaariumipõhise ühilduvate süsteemide arenduse ja integratsiooni järgi. Biomeetriliste süsteemide arendus muudetakse ühekordseks tööks. Me esitleme ka vahendeid heterogeensetest avatud lähetekoodiga ja kommerts biomeetrilistest süsteemidest koosnevate multimodaalsete biomeetriliste süsteemide seadistamiseks ja paigaldamiseks lähtuvalt valdkonnaspetsiifilistest autentimisvajadustest. Võrreldes levinud praktikatega vähendab meie lähenemine stsenaariumi-spetsiifilise biomeetrilise autentimissüsteemi arendusele ja paigaldusele kuluvat töö hulka 46,42%.Item Fortran95 ja MPI(Tartu Ülikooli Kirjastus, 2004) Vainikko, EeroItem Hõreda maatriksi algoritmid kasutades GPGPU-d(Tartu Ülikool, 2012) Kuresson, Kaupo; Vainikko, Eero; Tartu Ülikool. Matemaatika-informaatikateaduskond; Tartu Ülikool. Arvutiteaduse instituutAntud bakalauresetöö eesmärgiks oli lahendada võimalikult efektiivselt suuremahulisi arvutusi nõudvaid ülesandeid, kasutades selleks GPGPU’d ehk üldotstarbelist arvutamist graafikakaartidel. Konkreetse näitena vaadeldi hõreda maatriksi ning vektori korrutise leidmist. Maatriksi ja vektori korrutamine on aluseks paljudele algoritmidele – näiteks pilditöötlus ja masinõpe. Hõre maatriks on maatriks, mille enamus elemente on nullid. Kuna nullid vektoriga korrutamisel lõpptulemust ei muuda, on eesmärgiks vältida ebavajalikku nullide korrutamist. Selle saavutamiseks saab muuta kasutatavat algoritmi ja viisi, kuidas maatriksit salvestatakse. Lõputöö käigus testiti nelja erinevat hõreda maatriksi salvestamise formaati. Vaatluse all oli formaatide eripärasid arvestades loodud maatriksi ja vektori korrutamise algoritmide jõudlus ja mäluvajadus. Formaatideks olid „täielik“, „koordinaadipõhine“, „ELLPACK“, „pakitud hõredad read“ ja „pakitud diagonaalid“. Eesmärgiks oli hinnata ka algoritmide jõudluserinevust protsessori ja graafikakaardi rakendamisel. Algoritmide realiseerimiseks kasutati OpenCL’i. OpenCl on raamistik, mille abil saab kirjutada programme, mis võivad käskude täitmiseks kasutada nii protsessoreid kui ka graafikakaarte. Põhiliseks raskuseks on sealjuures ülesande jagamine väiksemateks osadeks, et neid saaks lahendada paralleelselt ja arvutusjõudlust efektiivsemalt ära kasutada. Teste jooksutati autori lauaarvutil ja EENeti (Eesti Hariduse ja Teaduse Andmesidevõrk) arvutussõlmedel. EENeti kaudu avanes lisavõimalus proovida arvutusülesannete jagamist kahe graafikakaardi vahel. „Täielikku“ salvestusformaati kasutades oli OpenCL-i kasutamine tavalise C++ koodiga võrreldes 3,6 korda kiirem. Keerukamate formaatide puhul oli jõudluse kasv veelgi märgatavam. Tulemustest ilmnes, et jõudlus sõltub suuresti maatriksite struktuurist ja kasutatud riistvarast. Näiteks sai „koordinaadipõhine“ formaat nVidia graafikakaardil ATI omaga võrreldes ligi 30 korda halvemaid tulemusi. ELLPACK formaadi puhul andis nVidia kaardile lisajõudlust vektori tekstuurina esitamine. ATI kaart sai aga võrreldes vektori tavalise esitusega poole võrra halvema tulemuse. Testide põhjal tundus universaalse lahendusena parim „pakitud hõredad read“ formaat, mis andis parima tulemuse kõigi maatriksite puhul. See võib aga uute maatriksite valikul muutuda. Algoritmide kahe graafikakaardi vahel jagamine tagas suuremate elementide arvuga maatriksite puhul kiiruse kasvu kuni 60%. Teise seadme kasutamisel peab arvestama väljakutsete suurema arvu ja lisakulude kasvuga. See tähendab, et väiksemate maatriksite puhul, kus arvutamine võtab vähem aega, ei pruugi jõudlus kahe seadmega suureneda. Testitulemustest oligi näha, et väiksemate maatriksite puhul oli kahe graafikakaardiga saadud tulemus aeglasem, kui ühega.Item Internetiotsingu toetamine otsingulogide jagamise meetodil(Tartu Ülikool, 2012) Jürviste, Peeter; Vainikko, Eero; Norbisrath, Ulrich; Tartu Ülikool. Matemaatika-informaatikateaduskond; Tartu Ülikool. Arvutiteaduse instituutAntud väitekiri on osa jätkuvast kollektiivsest uurimistööst, laiema eesmärgiga eeskätt parandada Internetiotsingu tuge keeruliste ja aeganõudvate ning tihti uurimusliku loomuga otsinguülesannete kiiremaks ja efektiivsemaks läbiviimiseks. Töö peamine uurimisprobleem on uut tüüpi otsinguülesannete logimise ja Internetis jagamise raamistiku väljatöötamine, olles alternatiiviks brauseri pistikprogrammide põhistele olemasolevatele meetoditele. Tegu oli keerulise insenertehnilise ülesandega, mille käigus tuli autoril täita mitmesuguseid programmeerimise, planeerimise, süsteemi komponentide integreerimise ja konfigureerimisega seotud ülesandeid. Püstitatud eesmärk sai edukalt täidetud. Väitekirjas pakuti välja proksipõhine meetod kasutajate otsingukäitumise logimiseks, mis on ühtlasi lihtsasti kohaldatav erinevatele veebilehitsejatele ning operatsioonisüsteemidele. Lahendust võrreldi varasemate sarnaste süsteemidega. Meetod sündis reaalsest vajadusest leida kergemalt hallatav ning porditav asendus varem väljatöötatud tarkvarale, mis kujutas endast pistikprogrammi Mozilla Firefox veebilehitsejale, kuid mida tuli parandada pärast iga uue brauseri versiooni väljatulekut. Teostus koosneb kahest suuremast komponendist, millest esimene ja tehniliselt keerulisem, otsinguülesannete logide koostamise ja jagamise süsteem, paikneb VirtualBox'i virtuaalses masinas. Teine on WordPress'il põhinev otsingulogide repositoorium, võimaldades lisaks kasutaja poolt annoteeritud logide avaldamise ka neist lihtsamaid otsinguid teostada. Süsteeme on põhjalikult testitud, kuid neid pole veel rakendatud Internetiotsinguga seotud kasutajauurimustesse. Autorile on teada, et selline huvi on olemas nii Tartu Ülikooli sees kui ka ühe välismaise partnerülikooli poolt. Lokaalselt paiknev otsinguülesannete koostamise ja jagamise süsteem koosneb kolmest võrdselt tähtsast alamkomponendist. Nendeks on Python'i keeles realiseeritud otsinguülesande logija; peamiselt PHP'd ja HTML'i kasutav veebiliides, mis muuhulgas võimaldab kasutajal eelpoolmainitud logijat sisse ja välja lülitada, aga ka kõiki otsinguülesandega seotud andmeid käsitsi muuta ja täiendada; ja antud ülesandeks spetsiaalselt konfigureeritud Privoxy veebiproksi server. Töös antakse põhjalik ülevaade olemasolevast tarkvarast, teaduspublikatsioonidest ja teoreetilistest alustest seoses väitekirja uurimisprobleemiga. Võrreldes olemasolevate meetoditega eristub autori pakutud proksipõhine otsinguülesannete logimise ja jagamise raamistik peamiselt kahel põhjusel. Esiteks, meetod tagab platvormist ja brauserist sõltumatuse, olles ühtlasi väga stabiilne. Teiseks, kasutajatele antav vabadus oma otsinguülesannet vabalt defineerida ning annoteerida on oluliseks uueks tähiseks. Väitekirja viimases peatükis käsitletakse tööga seotud tulevikuväljavaateid ja avatud probleeme. Üks neist on väljapakutavaga võrreldes muudetud arhitektuur, mis võimaldaks korraldada väiksema vaeva ja ajakuluga laborieksperimente. Internetiotsingu logimise süsteemi saab edasi arendada, lisades tuge enamatele JavaScript'i sündmustele. Otsingulogide repositoorium, olles veel üsna algeline, pakub hulgaliselt võimalusi täiendusteks tulevikuks.Item Java teek simplex müra paralleelseks arvutamiseks(2015) Janno, Jaan; Vainikko, EeroKäesolev bakalaureusetöö kirjeldab protsessi, mille käigus loodi Java teek Libjsimplex, mis suudab arvutada simplex müra. Teek suudab arvutusi teha paralleelselt graafikaprotsessoril või selle puudumisel tavalisel protsessoril. Teek pakub ka mitmeid võimalusi määrata parameetreid, mis müra omadusi muudavad. Toetatud on erinevad võimalused müra graafiliseks töötluseks. Teeki saab kasutada müra piltideks ja RGB massiivideks muutmiseks. On võimalik muuta mitmeid parameetreid, mis määravad müra väljanägemise. Selgitatakse ka müra mõistet ning antakse ülevaade müra kasutusvõimalustest. Implementatsiooni jõudlust võrreldakse Stefan Gustavsoni algse koodiga.Item Maakaartide juhugeneraator(Tartu Ülikool, 2012) Erstu, Erich; Vainikko, Eero; Tartu Ülikool. Matemaatika-informaatikateaduskond; Tartu Ülikool. Arvutiteaduse instituutKuna Maa liiki planeet on kujunenud looduslike protsesside tagajärjel miljardite aastate jooksul, siis, johtudes nende protsesside juhuslikkusest, võime kindlalt öelda, et iga selline planeet on oma kujult väga erinev. Kaardistada on aga võimalik igat sedasorti planeeti samade abstraheerivate vahenditega. See tähendab, et enamus planeeti kirjeldavatest detailidest on kaardistamise seisukohast ebaolulised. Vajadust genereeritud kaartide järele võib kohata elu erinevates valdkondades. Ettevõtted, mis tegelevad kaardistamisega, võivad näiteks kasutada genereeritud kaarte, et seal erinevate logistiliste probleemide lahendusi testida. Veelgi laialdasem kasutusala on aga arvutimängude tööstus. Arvutimängudes kasutatavad maailmad muutuvad üha massiivsemaks ja on täiesti loomulik, et käsitsi neid enam ei tehta. Käesolev töö seab omale eesmärgiks leida lihtne ja hästitöötav lahendus maakaartide genereerimise probleemile. Töö esimestes peatükkides tutvutakse mõnede juba eksisteerivate lahendustega ning sellega, kuidas looduslikud protsessid päriselt maailma kujundavad. Viimases peatükis valmib reaalne rakendus, mis kogutud teadmisi arvesse võttes on suuteline maakaarte genereerima.Item Mobiilne biomeetriline tuvastusliides(Tartu Ülikool, 2012) Lamichhane, Roshan; Vainikko, Eero; Tartu Ülikool. Matemaatika-informaatikateaduskond; Tartu Ülikool. Arvutiteaduse instituutAutentimine arvutivõrkudes on protsess, mis üritab kontrollida digitaalset identiteeti, kasutades paroole. Parooli olemasolu aitab tagada kasutaja autentsuse. Kasutajaid saab biomeetiriliselt kindlaks teha ka nende sõrmejälje, hääle või näo järgi kasutades kindlat riistvara ja parooli toimingu kinnitamiseks. Samas, juhul kui paljud kasutajad on seotud sedatüüpi autentimisega, võib selline lahendus muutuda liiga aeglaseks ja suhteliselt kulukaks. Seetõttu vajab edukas biomeetriline autentimise süsteem põhjalikku läbimõeldust paljude tegurite osas (PBworks, 2007). Minu magistritöö eesmärk on uurida erinevaid biomeetrilise autentimise meetodeid, luues kirjeldused mobiilseks kasutamiseks ning töötada välja ja realiseerida vastav prototüüp. Kui biomeetrilise testi andmed on kogutud, näiteks video või hale kaudu, siis saadud andmed läbivad töötluse, peale mida kasutatakse ainult unikaalset osa andmetest. See osa andmetest salvestatakse andmebaasi. Kuid, enne andmete kasutamist, tuleb telefonis rakendada mitmeid meetmeid. Biomeetria puhul kasutatakse kahte peamist stsenaariumit: kontrollimine ja isikuandmete tuvastamine. Kontrollimise puhul võrreldakse ainult ühte andmebaasi, mis on kirjeldatav kui üks-ühele võrdulus. Isikuandmete tuvastamisel kasutatakse üks-mitmele andmebaaside võrdlust. Mõlemal juhul peavad salvestatud andembaasid toetama vastavaid stsenaariume. Magistritöös valmis vastav kasutajaliides nõutud omadustega.Item NFC Turvalahendus Veebirakendustele(2015) Kiiver, Jonas; Vainikko, EeroTöö eesmärgiks on võrrelda erinevaid eksisteerivaid veebirakenduste turvalahendusi, analüüsida NFC sobivust turvalahenduste loomiseks ning pakkuda välja uus NFC autentimise ja signeerimise lahendus läbi Google Cloud Messaging teenuse ja NFC Java Card’i. Autori pakutud lahendus võimaldab kasutajal ennast autentida ja signeerida läbi NFC mobiiliseadme ja NFC Java Card’i, nõudmata kasutajalt eraldi kaardilugejat. Antud lahendust on võimalik kasutada kui ühtset kasutajatuvastamise viisi erinevatele rakendustele, ilma lisaarenduseta.Item Peer-to-peer arhitektuuri rakendamine virtuaalmaailmades(Tartu Ülikool, 2012) Annuk, Siim; Bogdanov, Dan; Vainikko, Eero; Tartu Ülikool. Matemaatika-informaatikateaduskond; Tartu Ülikool. Arvutiteaduse instituutKlassikaliste klient-server arhitektuuril põhinevate virtuaalmaailmade üheks nõrgaks kohaks on serverid, milledesse virtuaalmaailma kliendid ühenduvad. Kui tegemist on suure kasutajaskonna ja suure kasutatavusega virtuaalmaailmaga, siis kipuvad serverite halduskulud kasvama väga kiiresti ning nende kesise haldamise korral võivad kasutajad kogeda ebameeldivusi antud teenuse tõrkumise tõttu. Lisaks sellele on ka kontroll antud keskkonna üle serverite haldajatel, mistõttu võivad viimased ette teatamata oma teenused sulgeda. Klient-server arhitektuuril põhinevad populaarsetest teenustest nii World of Warcraft kui ka Second Life. Peer-to-peer (P2P) arhitektuur erineb klient-server arhitektuurist selle poolest, et iga osaleja P2P-l põhinevas võrgus võib käituda nii kliendi kui ka serverina – puudub keskne ühenduspunkt. Peer-to-peer tehnoloogial põhinevad näiteks populaarne failivahetuskesk-kond BitTorrent1 ja suhtluskeskkond Skype2. Tuhandete kasutajatega ja rikkaliku sisuga virtuaalmaailmad võivad vajada võrdlemisi palju ressursse, sh. arvutusvõimsust, internetiühenduse ribalaiust ja andmete salvestus-mahtu. Klient-server mudeli puhul on pudelikaelaks serverid, milledesse kliendid ühendu-vad – serverid peavad olema piisavalt võimsad ning neid peab olema piisavalt palju, et kliente samaaegselt hallata ja virtuaalmaailma simulatsiooni töös hoida. Peer-to-peer mudel kõrvaldab selle pudelikaela, võimaldades ühel kliendil jagada ülesandeid laiali teistele, vähem koormatud klientidele. Näiteks, kui kasutajad kirjutavad skripte, mis vajavad arvestatava hulga arvutusvõimsust (animeerides mingit objekti või lahendades mõnda arvutusülesannet), siis klient-server mudeli puhul on serveri ülesandeks klientide skripte jooksutada ning suur klientide ja skriptide arv võib serveri üle koormata. Seevastu P2P arhitektuuri puhul on võimalik rakendada koormusjaotusalgoritme ning leida kliendid, kellele võiks delegeerida mõnede skriptide jooksutamise selle alusel, kui palju ressursse ja arvutusvõimsust neil parasjagu üle on. Selline peer-to-peer tehnoloogial põhinev koormuse jaotamine võimaldab pakkuda kee-rulisemat ja rikkalikumat virtuaalmaailma kogemust klientidele. Koormuse jaotamine võimaldab vähendada teenusepakkuja kulusid interneti teenusele ja energiale. Siiski võib P2P võrgu osaliste koondkulu olla suuremgi kui tavalise klient-server võrgu puhul, kuna kõik osalised võivad olla võrdselt hõivatud, andes oma panuse ressursside kasutamisse. Samal ajal lisab P2P kasutamine ka turvariske, võrreldes klient-server mudeliga, milles on sisuliselt ainult üks usaldust vajav komponent – server. Käesoleva töö eesmärgiks on võrrelda klient-server mudeli ja peer-to-peer mudeli efektiivsust ja P2P arhitektuuri rakendatavust virtuaalmaailmades. Selleks viisime läbi katsed teadusuuringute tarbeks ehitatud virtuaalmaailmaga VirtualLife.Item Simulatsioonimäng veebilehitsejas(2016) Elias, Handre; Muite, Benson; Vainikko, EeroAntud töö eesmärgiks on luua mäng, mis simuleerib teatud füüsilist nähtust ja mis jookseb veebilehitsejas. Mäng simuleerib veelainet, mis põhineb 1-D lainevõrrandil ning mille graafika on kuvatud WebGL'i poolt. Mängija saab mängu mängida nii hiire kui ka veebikaameraga. Mängija peab tekitama veelaineid, et liigutada paat teatud punktidesse. Hiirega juhtimine toimib läbi hiirevajutuste ning veebikaameraga juhtimine toimib käeliigutuste põhjal. Töös antakse sissejuhatus WebGL'i, seletatakse lahti 1-D lainevõrrand, leitakse sellele lahendus ja räägitakse kuidas mäng seda rakendab. Samuti tuleb juttu meetodist, millega saab video põhjal liikumist tuvastada.Item Sõidupäeviku rakendus iOS platvormil(Tartu Ülikool, 2012) Uudam, Triin; Srirama, Satish Narayana; Vainikko, Eero; Tartu Ülikool. Matemaatika-informaatikateaduskond; Tartu Ülikool. Arvutiteaduse instituutKäesoleva bakalaureusetöö eesmärgiks on valmis arendada rakendus iPhone’i nutitelefonile, mis suudab täita sõidupäeviku pidamise funktsioone. Eestis on inimestel, kes kasutavad sõitude tegemiseks tööandja sõidukit, kohustuslik pidada sõidupäevikut. Antud rakendus muudab selle pidamise lihtsamaks. Igakuised sõitude väljavõtted e-mailil annavad põhjaliku ülevaate sooritatud era- ja ärisõitudest, mistõttu ei pea enam teistel viisidel vorme sõidupäeviku kohta täitma. Süsteemi potentsiaalseteks kasutajateks on väikeettevõtete töötajad, kes kasutavad iPhone nutitelefoni. iPhone nutitelefonil on GPS kasutamise võimalus olemas. Seetõttu ei ole sõidukisse lisa GPS-seadme paigaldamine sõitude jälgimiseks ja salvestamiseks vajalik. Sõidupäeviku rakendus antud kujul on hetkel Eestis unikaalne. App Store rakenduspoest on võimalik leida välismaa versioone sõite registreerivate rakenduste kohta, kuid neid ei saa otseselt sõidupäeviku asendusena kasutada. Samuti on alternatiivina võimalik sõidukisse paigaldada erinevate ettevõtete poolt pakutavaid GPS-seadmeid, mis registreerivad tehtud sõite ja statistikat, kuid nendega kaasnevad lisakulud (seadmete ost/rent, igakuised hooldustasud). Käesolev sõidupäeviku rakendus on vastab Eestis kasutuses olevale ning maksuametile esitatavale sõidupäeviku vormile ning ei vaja lisaseadmeid ega püsikulutusi. Antud rakendus on arendatud iOS platvormile, kasutades Xcode arenduskeskkonda. Rakenduse arendamisel on kasutatud erinevaid iOS platvormi raamistikke, lisaks veel mitmesuguseid avatud lähtekoodiga projektide klasse. Lisatud klassidel on erinevad funktsioonid, mis lihtsustasid antud rakenduse arendamist. Rakenduse kujundamisel on lähtutud Apple’i kasutajaliidese arendamise juhtnööridest. See võimaldab iPhone’i kasutajatel rakenduse kiiremini selgeks õppida, kuna rakenduse käitumismustrid on juba varasemast selged.Item Tarkvara audio taasesituseks piltkoodist(2016) Dalke, Laimis; Vainikko, EeroKäesoleva bakalaureusetöö eesmärgiks on luua tarkvara, mis sooritab pildituvastust, heli parsimist QR-koodist, kodeerimist, dekodeerimist ja taasesitust. Antakse ülevaade helist digitaalses formaadis, selle omapäradest ning erinevates kasutusvaldkondades esinenud implementatsioonidest.\n\rKirjeldatakse tehnoloogiaid, millega saab tänapäeval kõige paremini käesolevat programmi luua ning tuuakse välja neist kõige paremad. Samuti kirjeldatakse tarkvara loomise tööprotsessi, sellega seonduvaid töövahendeid ning kogu tarkvara arendusteed. Lõpptulemuseks on tarkvara, mis suudab pildituvastuse põhjal tagasi mängida heli ja seda protsessi ka vastupidi läbi viia.Item Töökeskkonna Sage kasutamine üldhariduskoolide matemaatikas(Tartu Ülikool, 2011) Pärna, Madis; Vainikko, Eero; Tartu Ülikool. Matemaatika-informaatikateaduskond; Tartu Ülikool. Arvutiteaduse instituutItem Ülevaade objektorienteeritud paralleelprogrammeerimise raamistikust Charm++(Tartu Ülikool, 2012) Jaarma, Tõnu; Batraśev, Oleg; Vainikko, Eero; Tartu Ülikool. Matemaatika-informaatikateaduskond; Tartu Ülikool. Arvutiteaduse instituutEksisteerib palju võimsaid superarvuteid ja samas ka keerulisi algoritme, mis tõesti võimsust vajavad. Probleem seisneb selles, et riistvara ei jõua tarkvara arenguga sammu pidada ja tihti tekib vajadus suuremale jõudlusele. Lahenduseks oleks ülesannete või tööde jagamine olemasolevate ressursside vahel. Näiteks oleks väga keeruline luua protsessor, mis oleks 1000 GHz, kuid pole probleem luua tuhat 1 GHz protsessorit. Paralleelarvutuste mõte seisnebki selles, et ei peaks eksponentsiaalselt võimsamaid riistvara komponente looma, vaid kasutada efektiivselt olemasolevaid. Käesoleva töö eesmärgiks on anda ülevaade paralleelprogrammeerimise raamistikust Charm++. Kuid enne selle raamistiku ülevaate andmist, kirjeldatakse paralleel-programmeerimisest üldisemalt. Tuuakse näide maatriksite korrutamisest jagatud protsessorite peal ja seda kahe mudeli peal: MPI ja Charm++. Charm++ on objektorienteeritud paralleel-programmeerimise raamistik, mis baseerub C++ keelel, kuid lihtsamalt võib öelda, et Charm++ on teek, mis lubab C++ objektidel suhelda omavahel efektiivsemalt. Charm++ raamistikule pani aluse L.V. Kale koos oma arendaja tiimiga paralleelprogrammeerimise laboratooriumis. Umbes sada inimest on panustanud sellesse projekti keskmiselt 15 aasta jooksul. [1] Charm++ raamistikku kasutades on näiteks ehitatud järgmised suured rakendused: • NAMD – Not Another Molecular Dynamics programm, mis on dünaamiline molekulaar simulatsiooni pakett. [2] • Center for Simulation of Advanced Rockets kasutab füüsilise simulatsiooniks koodi, mis kasutab samuti Charm++ raamistikku. [3] Charm++ programmeerimise mudel sarnaneb CORBA, Java RMI või näiteks RPC mudelile, kuid siiski on see teek mõeldud suure jõudlusega masinatele, mis on disainitud paralleelarvutuste läbiviimiseks. Charm++ kasutab „üks programm, palju andmeid“ (SPMD – single program, multiple data) programmeerimise mudelit, mille tegi kuulsaks MPI (Message Passing Ingerface). [1] Sõnumi saatmise liides ehk MPI ilmus esimesena standardi nime all 1994 aastal ja selle üks põhilisi eesmärke on täita paralleelarvutusi jagatud ressursside vahel. MPI funktsionaalsus on äärmiselt ulatusrikas ja pakub programmeerijale: • Sidet punktist punkti (Point-to-point communication) • Kollektiivset sidet (Collective communication) • Ühepoolset sidet (One-sided communication) • Paralleelset sisendit ja väljundit (Parallel I/O) • Dünaamilist protsessi juhtimist (Dynamic process management) [7] Charm++ eelis MPI ees on see, et eksisteerib keeruline iseärasus lihtsustamaks rakendusest sõltumatut objekti ümberasustamist (application-independent object migration). MPI standardit kasutades on see samuti võimalik, kuid nõuab keerulist programmeerimist ja pidevat koormuse jälgimist. Charm++ parim iseärasus seisneb selles, et seda raamistikku võib võtta kui lisandit MPI standardile, sest eksisteerib AMPI (Adaptive Message Passing Interface), mis lubab MPI koodi jooksutada otse Charm++ raamistikku kasutades. [1] Järgnevas töös antakse põhiline ülevaade mõlemast paralleelprogrammeerimise tehnikast. MPI standardit käsitletakse otse koodinäidetega ja seletatakse lahti iga funktsiooni tähtsus ühes tavalises paralleelselt käivitatavast programmist. Charm++ raamistikule lähenetakse rohkem teoreetilisema osaga, kus alguses pannakse rõhku struktuurile ja lõpus antakse ülevaade, kuidas programmeerida Charm++ programm. Selles töös kirjeldatakse ka Charm++ struktuuri, mida saab kokku võtta viie sõltumatu objekti kategorisatsiooniga: 1. Järjestikused objektid (nagu ka C++) 2. Chare objektid – samaaegselt käivituvad objektid 3. Chare järjend – kogum chare objektidest ja neid objekte saab järjendis individuaalselt käivitada 4. Chare grupid – kogum chare objektidest, mis on iga protsessori grupi liige 5. Sõnumid – infovahetusega tegelevad objektid [7] Töö koosneb kirjalikust ja praktilisest osast. Kirjalik osa on rohkem teoreetilisem ja ära jagatud kolme peatüki vahel. Kirjaliku osa eesmärgiks on anda kindel ülevaade paralleel-programmeerimisest kasutades selleks kahte erinevat lähenemist. Töö praktiline osa koosneb kahest paralleelselt käivitatavast programmist, kus esimene on kirjutatud MPI standardit kasutades ja teine Charm++ raamistikku. Lisatud on ka õpetused, kuidas endale sellised keskkonnad paigaldada, et sooritada samu paralleelarvutusi. Esimeses peatükis antakse ülevaade paralleelprogrammeerimise kasutusest tänapäeval ja kuidas kirjutada koodi, mis arvutaks paralleelselt. Esmalt kirjeldatakse populaarsemat paralleelprogrammeerimise stiili, milleks on MPI standard ja selles stiilis koode kirjutatakse C keeles. Kui tavalist koodi käivitatakse järjest ja iga funktsioon ootab oma täitmise lõpetamist, siis mõistlikum on kirjutada mitteblokeeruvaid funktsioone paralleelprogrammeerimisel. Näha on ka kuidas tekivad lihtsad järjekorra probleemid, ehk ei ole teada kus ja millised andmed millises järjekorras töödeldakse, kui just ei kasutata mingeid sünkroniseerimis- tehnikaid. Teises peatükis kirjeldatakse selle töö põhilist osa – ülevaadet Charm++ raamistikust. Ülevaate andmiseks kirjeldatakse raamistiku ülesehitust, struktuuri ja kindlasti ka iseäraseid tunnuseid. Alustatakse väikseimatest objektidest ja sealt edasi kirjeldatakse juba nende objektide järjendit ning kuidas need objektid suhtlevad omavahel. Seal tulevad välja ka Charm++ raamistiku erinevused võrreldes MPI liidesega. Kolmandas peatükis muutub teoreetiline osa natukene praktilisemaks. Kirjeldatakse kuidas Charm++ programm käivitatakse ja kuidas kulgeb selle käivitusprotsess. Lihtsate näidete abil demonstreeritakse, kuidas programmeerija ei pea teadma tervet käitussüsteemi, vaid piisab teadmisest, kuidas luua objekte, mida saab ümber migreerida. Lisana on välja toodud kaks programmi: C keeles kirjutatud maatriksite korrutamine (MPI liidese demonstratsioon) ja C++ keeles kirjutatud maatriksite korrutamine (Charm++ raamistiku demonstratsioon). Mõlemad programmid kasutavad sama algoritmi paralleelselt arvutamiseks ja mõlemad on kirjutatud mitteblokeeruvaid funktsioone kasutades. Samuti on lisana esitatud õpetused, kuidas paigaldada vastav keskkond ja neid programme paralleelselt käivitada.Item VDE integreerimine F2F raamistikku(2015) Bakhoff, Märt; Lind, Artjom; Vainikko, EeroSee lõputöö kirjeldab sõpradevahelise arvutuste raamistikule (F2F framework ) uue laien- duse lisamist, mis võimaldab virtuaalsete hajusate võrguühenduste (VDE ) loomist. F2F raamistik on Tartu Ülikooli hajussüsteemide grupis arendatav tarkvara, mis võimaldab luua privaatseid pilvelahendusi kasutades võrdõiguslike võrgusõlmede (P2P network ) võrgustikke. F2F kasutab oma võrgustike loomiseks olemasolevad sotsiaalvõrgustikke ja sõnumivahetusprotokolle, mis võimaldavad sõlmedevahelist andmevahetust ja täiendavate ühenduste loomist. Sellised ühendused ei ole veakindlad ja on kättesaadavad ainult läbi F2F programmeerimisliidese. Siin kirjeldatav lahendus kasutab VDE tehnoloogiat, et F2F võrgustikule hea jõudluse, veakindluse ja STP protokolli toega virtuaalne Ethernet võrk lisada. Pakutav virtuaalne võrk on disainitud hõlpsalt F2F raamistikus kasutata- vate virtualiseerimistehnoloogiatega integreeruma. Realisatsioon kombineerib Bologna Ülikoolis arendatud vde2 projekti tarkvara, mitteblokeeruva sisend-väljundi mudeli ja F2F raamistiku sõlmedevahelised ühendused. Lõpptulemusena on F2F raamistiku ka- sutajatel võimalik üles seada täisfunktsionaalne virtuaalne Ethernet võrk, mille saab liidestada erinevate virtuaalmasinatega.