Lygiagretieji algoritmai

Slides:



Advertisements
Similar presentations
Edgar Gabriel Short Course: Advanced programming with MPI Edgar Gabriel Spring 2007.
Advertisements

Muzikos ženklų karuselė
CS 52500, Parallel Computing Spring 2011 Alex Pothen Lectures: Tues, Thurs, 3:00—4:15 PM, BRNG 2275 Office Hours: Wed 3:00—4:00 PM; Thurs 4:30—5:30 PM;
NORĖDAMI PAKEISTI SKAIDRĖS STILIŲ – SPUSTELĖKIT E DEŠINIUOJU PELĖS KLAVIŠU ANT SKAIDRĖS FONO IR PASIRINKITE > LAYOUT ARBA DARBALAUKI O ĮRANKIŲ JUOSTOJE.
Vaizdinė užduotis. Kuriose iš šių valstybių galima pamatyti tokius gyvenamuosius namus? Jemene Tanzanijoje Mongolijoje Indonezijoje A B C D 1.
Parengė Nikolė Jocytė, Ugnė Kavaliauskaitė ir Gabija Sirtautaitė, 4a klasės mokinės.
Comenius Strateginių partnerysčių projektas “PADĖK IR GAUK PAGALBĄ”
Network address translation Tinklo adresų vertimas
Kaip parašyti testavimo planą?
Smart none of us are as smart as all of us. smart none of us are as smart as all of us.
Funkcijos R.
Forever Living Products PRISTATO
1 paskaita: Įvadas į 3D grafiką OpenGL GLSL = OpenGL Shading Language
Darbą parengė: Viktorija Drūteikaitė IT2
SSGG (SWOT): Organizacijos stiprybės ir silpnybės, galimybės ir grėsmės (nustatymas, grupavimas, vertinimas, rezultatas) Pagrindinė literatūra: Lietuvos.
MAUDYKLŲ VANDENS KOKYBĖS STEBĖSENOS
Robert Andruškevič AT27D.   Tai yra operacinė sistema, daugiausia naudojama išmaniuosiuose telefonuose, nors ją galima įdiegti ir kituose mobiliuosiuose.
CLIL, MY OPEN WINDOW ON THE WORLD AROUND ME
Video kūrimas su Windows Movie Maker 2.0
Kompiuterio sandara, programinė įranga
Kompiuterių architektūra
Balandžių sportas Lietuvoje
CC BY-SA mascil consortium 2014
Algoritmai ir duomenų struktūros (ADS)
Panevėžio pataisos namai
Panelinių duomenų modeliai
Pagrindinės sąvokos Hipertekstas ir multimedija
Skyrius 1: Paskirstytos informacinės sistemos
PROGRAMAVIMO PAGRINDAI
Ernestas Kaukėnas MIF IT 3grupė
Atliko: Jokūbas Rusakevičius VU MIF PS 3k 3g
R paketas ir jo įdiegimas
Programinė įranga.
inovatyvioms mokykloms
IPod MENIU.
Nemokami IKT įrankiai ir programos ugdymo individualizavimui
Gijos (Threads) Java kalboje
Paprasti skaičiavimai. Uždavinių sprendimas
Kas yra arduino ? Parengė:Karolis Šumskis ir Mokytoja ekspertė Elena Šišenina.
Failai ir jų tvarkymas.
INTERAKTYVIŲ UŽDUOČIŲ KŪRIMO PROGRAMA
KTU Vaižganto progimnazija
INOVATYVIŲ PRODUKTŲ KŪRIMO PERSPEKTYVOS
Programų sistemų gyvavimo ciklo procesai
Šlapimo nelaikymo korekcija: Vilniaus miesto Universitetinės ligoninės patirtis Dr. Gediminas Mečėjus I-ji Lietuvos uroginekologijos draugijos konferencija,
Regresijos determinuotumas
Tekstiniai uždaviniai
Saulius Ragaišis, VU MIF
Programų sistemų inžinerija
Programų kūrimo metodai
Petra miestas. Vienas iš 7 pasulio stebuklų
Petra miestas. Vienas iš 7 pasulio stebuklų
Virtualus kompiuteris
Duomenų struktūros ir algoritmai
Duomenų struktūros ir algoritmai
Funkcijos 9 paskaita.
Operacinė sistema Testas 9 klasė
VANDEX SUPER Hidroizoliacinis sluoksnis
Studijų pasirinkimas Lietuvoje ir užsienyje: ką svarbu žinoti?
Priešinės liaukos vėžio ankstyvosios diagnostikos programa 2009
Mobilus turinys, jaunimas, bibliotekos
Mes tikime mokyklomis! Ir tikėdami mes tikimės...
3D skenavimo metodas, jo privalumai. Kam reikalingi avalynės įdėklai?
Pertrauktys (Interrupts)
Windows Ribbon Framework
Klaipėdos Simono Dacho progimnazija
Grupinio darbo programinė įranga Lotus Notes
Pranešėjas Jurij Kuznecov
Presentation transcript:

Lygiagretieji algoritmai Doc. dr. Vadimas Starikovičius vs@vgtu.lt http://www.techmat.vgtu.lt/~vs VGTU Matematinio modeliavimo katedra VGTU Lygiagrečiųjų skaičiavimų laboratorija

Modulio apimtis - 3,0 kr. (4,50 ECTS kr.) Mokymo metodai: Modulio kodas - FMMMB07901 Modulio apimtis - 3,0 kr. (4,50 ECTS kr.) Mokymo metodai: Paskaitos – 32 val. per semestrą Laboratoriniai darbai – 16 val. per semestrą Pratybos – 32 val. per semestrą Vertinimas = Egzaminas (40%) + Kolokviumas (30%) + Lab. darbai (3x10%)

Kurso tikslai Susipažinti su pagrindinėmis lygiagrečiųjų skaičiavimų koncepcijomis. Gauti bendrą supratimą apie skirtingas lygiagrečiųjų kompiuterių architektūras ir jų stipriąsias/silpnąsias puses. Išmokti lygiagrečiųjų algoritmų konstravimo principus, pagrindinius lygiagrečiuosius algoritmus ir algoritmines technikas. Išmokti analizuoti ir vertinti lygiagrečiuosius algoritmus ir jų realizacijas. Susipažinti su pagrindiniais lygiagrečiojo programavimo būdais ir priemonėmis (OpenMP ir MPI).

Literatūra Internetas (Wikipedia). Raimondas Čiegis. Lygiagretieji algoritmai ir tinklinės technologijos. Technika. 2005 m. (arba 2001 m.) Ananth Grama, Anshul Gupta, George Karypis, Vipin Kumar. Introduction to Parallel Computing. 2nd Edition, Addison-Wesley/Pearson Education Limited, 2003. Ian Foster. Designing and Building parallel programs. Addison-Wesley Publishing Company, 1995. Internetas (Wikipedia).

Kas yra lygiagretieji skaičiavimai (parallel computing)? Nuoseklieji skaičiavimai (serial computing): Vykdomi viename kompiuteryje su vienu procesoriumi/vykdomuoju įrenginiu. Problemą sprendžiantis programinis kodas yra sukompiliuojamas į diskrečią instrukcijų seką. Instrukcijos yra vykdomos viena po kitos (nuosekliai). Bet kuriuo laiko momentu gali būti vykdoma tik viena instrukcija.

Lygiagretieji skaičiavimai (parallel computing): Vykdomi naudojant keletą procesorių (branduolių, skaičiavimo įrenginių) vienu metu. Sprendžiama problema programuotojo arba kompiliatoriaus yra išskaidoma į atskiras dalis, kuriuos gali būti sprendžiamos lygiagrečiai. Kiekviena atskira dalis kompiliavimo metu yra užkoduojama kaip instrukcijų seka. Skirtingų dalių instrukcijos yra vykdomos skirtinguose CPU tuo pačiu metu, taikant įvairius koordinacijos, sinchronizacijos mechanizmus. t.y. keletas procesorių (branduolių, įrenginių) kartu tuo pačiu metu sprendžia vieną problemą.

Kam reikalingi lygiagretieji skaičiavimai? Įgauti didesnius kompiuterinius pajėgumus tam, kad greičiau išspręsti vis didesnius uždavinius. Lygiagrečios technologijos yra natūralus kelias didinti kompiuterių skaičiavimų greitį ir atminties resursus. Paskutiniųjų dešimtmečių patirtis rodo, kad šis kompiuterinių technologijų vystymosi kelias yra ekonomiškai naudingiausias. Todėl šiuo metu ne tik patys galingiausi pasaulyje bet ir personaliniai kompiuteriai yra lygiagretieji kompiuteriai.

Tradiciniai uždaviniai - "Grand Challenge Problems" Istoriškai kompiuteriai atsirado ir buvo vystomi norint išspręsti didžiųjų iššūkių uždavinius. Branduolinės reakcijos (branduoliniai ginklai, branduolinės energijos gavyba). Orų prognozė ir klimato pokyčiai, ekologija. Kosmologija. Geologija, seismologija (žemės drebėjimai). Žmogaus genomas, genų inžinerija. Raketų, lėktuvų, automobilių projektavimas. ...

Tradiciniai uždaviniai - "Grand Challenge Problems" Tradicinis modeliavimo būdas moksle ir inžinerijoje: Sukurti teoriją/modelį Patikrinti ją/jį stebėjimuose arba eksperimentuose Problemos: • per ilgai (laukti klimato pakeitimų) per pavojinga (branduoliniai bandymai) per brangu (daryti eksperimentinius lėktuvus/automobilius) per sudėtinga (dideli vėjo tuneliai) Sprendimas – kompiuterinė simuliacija (virtualus eksperimentas)

"Grand Challenge Problems“: orai / klimatas

"Grand Challenge Problems“: orai / klimatas Matematinis modelis, aprašantis oro temperatūrą, slėgį ir judėjimo greičius,- netiesinių diferencialinių lygčių sistema sprendžiama baigtinių tūrių metodu. Atmosfera yra dengiama diskrečiuoju tinklu - 1 km x 1 km x 1 km (1 km3) tūriais. Jei modeliuojamas 16 km aukštis, tai turime apytiksliai 8 x109 tūrių (V = 4/3 x π x r3; žemės spindulys - 6370 km). Tarkime, kad reikia atlikti vidutiniškai 200 aritmetinių operacijų kiekvienam tūriui. Tada kiekvienam laiko žingsniui apskaičiuoti reikia atlikti 200 x 8 x 109 = 1,6 x 1012 operacijų. Simuliuojant 10 dienų orus su 10 minučių laiko žingsnių, reikia atlikti 10 x 24 x 6 x 1,6 x 1012 = 2,3 x 1015 operacijų. Kompiuteriu, atliekančiu 1 Gflops (Gflops = 109 Floating Point Operations per Second) operacijų per sekundę, atsakymą gausime tik per 2,3 x 1015 Ops / 109 Ops/s = 2,3 x 106 sekundžių arba per 26 dienas.

Kosmologija: Astronominių kūnų judėjimas erdvėje Žvaigždžių skaičius galaktikoje – 1011. Operacijų skaičius – 1022.

Saugumo testai (crash simulation) Didžiosios automobilių gamintojų kompanijos sutaupo milijardus dolerių per metus.

Skaitmeninis vėjo tunelis (Numerical wind tunnel)

Kam reikalingi lygiagretieji skaičiavimai? Komerciniai taikymai: Lygiagrečios duomenų bazės (data mining). Web search engines, web based business services. Naftos ir dujų išžvalgymas, gavyba. Kompiuterinė diagnostika medicinoje (tomografija). Vaistų dizainas. Finansinis ir ekonominis modeliavimas. Kompiuterinė grafika (rendering, virtual reality).

Vaizdų generavimas (rendering) The Incredibles (Pixar Studios)

Lygiagretiems skaičiavimams reikalingi lygiagretieji kompiuteriai Pagrindiniai didelių tarnybinių stočių gamintojai (IBM, CRAY, SGI,...) parduoda lygiagrečias sistemas jau keletą dešimtmečių. Tačiau tai superkompiuteriai ne tik pagal galią, bet ir pagal kainą. Parallel computing = High End computing (not mainstream)? Greičiausių pasaulyje superkompiuterių sąrašas pagal Linpack testą: www.top500.org

TOP 500 (www.top500.org)

TOP 500 (www.top500.org)

RoadRunner

VGTU lygiagrečiųjų skaičiavimo resursai vilkas.vgtu.lt (http, ssh)

Lygiagretieji skaičiavimai tik “turtingiems”? Jau nebe: Asmeninių kompiuterių bumas atpigino kompiuterines technologijas ir padarė lygiagrečias technologijas žymiai prieinamesnėmis. Pvz.: 2-4 SMP procesorių tarnybinės darbo stotys. PC klasteriai. Atitinkamai auga poreikis programinėje įrangoje (ypač komerciniams taikymams).

Dar daugiau: Nuo 2003 m. mes neturime procesorių greičių (pagal taktinį dažnį) augimo. Nors iki tol apie 30 metų kas 18 mėnesių jis maždaug dvigubėjo (G. Muro (G. Moore) dėsnis). Priežastis – šilumos išskyrimas (dar ne šviesos greičio riba!) Procesorių gamintoju (Intel, AMD, IBM, SUN) sprendimas: daugia-branduoliniai procesoriai (multi-core), t.y. “lygiagrečiai” yra ne tik greičiau bet ir pigiau! Nuoseklios programos (pvz. žaidimai, multimedia) “savaime” nebegreitės! (The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software)

Ar bet kokios problemos sprendimą galima išlygiagretinti? Vienas klausimas: Ar bet kokios problemos sprendimą galima išlygiagretinti? Žmogaus vaiko problema (Human Baby Problem). Perkelties metodas (triįstrižainių lygčių sistemų sprendimas). Sugalvokite savo pavyzdžius.