Parallellisatie van lineair algebraïsche operaties Promotoren: Yvan Saeys, Bart Goossens Begeleiders: Jonas De Vylder, Joris Roels, Jan Aelterman Probleemstelling Lineaire algebra vormt de basis voor vele combinatorische en algebraïsche algoritmen in dagdagelijkse toepassingen: beeld- en videoverwerking, computationele financiële analyse, statistische data-analyse, enz. Deze algebraïsche operaties, b.v. het oplossen van een lineair stelsel, worden typisch numeriek opgelost. Er bestaan al enkele decennia nauwkeurige en efficiënte algoritmen voor het oplossen van verschillende numerieke problemen in de lineaire algebra (b.v. Conjugate Gradient, LU-factorisatie, …) die goed werken op conventionele (seriële) machines. Dit heeft geleid tot de ontwikkeling van een aantal efficiënte software-bibliotheken (JAMA, BLAS en LAPACK) Recent is de interesse voor het gebruik van parallelle systemen sterk toegenomen. Deze kunnen de computationele werklast in complexe algoritmen significant verbeteren. Spijtig genoeg is het parallelliseren van algoritmen en het aanspreken van parallelle hardware niet triviaal. Hedendaagse (co-)processoren bestaan al uit een aantal processoren die parallel kunnen werken, maar het aantal processoren en de specifieke karakteristieken van deze processoren hangt sterk af van de specifieke hardware. Van een klein aantal processoren die complexe operaties kunnen uitvoeren voor een multicore CPU tot honderden processoren die gericht zijn naar de simpele taken op een GPU: deze diversiteit heeft voor een groot aantal toepassingen het gebruik van parallelle algoritmen belemmerd. Voor de applicaties waarvoor wel parallelle algoritmen ontwikkeld werden, resulteerde dit vaak in een hardware-specifieke implementatie die moeilijk kan overgedragen worden naar andere hardware. Doelstelling Binnen deze thesis zullen we onderzoeken welke algoritmen voor het oplossen van lineaire stelsels (bv LU-factorisatie of Successive Over-Relaxation) geparallelliseerd kunnen worden. Gebaseerd op deze analyse zullen we bestaande algoritmen aanpassen en een nieuw parallel optimalisatie schema voorstellen voor het numeriek oplossen van lineaire stelsels. Het nieuwe algoritme zal ontwikkeld worden in functie van zowel de computationele snelheid als de numeriek stabiliteit. De ontwikkelde technieken zullen getest worden op verschillende types van parallelle hardware (een multi-core processor, een GPU of een combinatie van beiden) en er zal bestudeerd worden hoe de snelheid schaalt met het aantal gebruikte cores. De algoritmen zullen geïmplementeerd en getest worden in de programmeertaal Quasar. Deze programmeertaal werd ontwikkeld binnen de universiteit Gent en laat geoptimaliseerde uitvoering op heterogene hardware toe. Quasar is een eenvoudig te leren, high-level programmeertaal die hardware onafhankelijk is. Quasar automatiseert multi-core en GPU programmering, wat het mogelijk maakt om snel en eenvoudig GPUs en multi-cores te gebruiken voor parallelle berekeningen. Er is geen voorkennis vereist over parallel programmeren, maar enige ervaring met high-level scripting talen (bv. Matlab of Python) zal de overstap naar Quasar vergemakkelijken.
© Copyright 2024 ExpyDoc