Datalogi 2B Bachelor project

Størrelse: px
Starte visningen fra side:

Download "Datalogi 2B Bachelor project"

Transkript

1 Datalogi B Bachelor project Hardware implementation af parallel løsning af lineære ligningssystemer af Dennis Haney og Martin Leopold Datalogisk Institut, Københavns Universitet Forår 001

2

3 INDHOLDSFORTEGNELSE Indholdsfortegnelse 1 Forord 1 Ligningssystemer 3.1 Kredsløbsanalyse Specielle karakteristika Løsning af ligningssystemer Numeriske metoder Direkte løsningsmetoder LU faktorisering Algoritme uden pivotering Blok LU faktorisering Substitution Problemer Pivotering og repræsentation Arkitektur Lager Uniprocessor Én modificeret RISC-kerne VLIW-kerne En vektor processor Multiprocessor En multiprocessormaskine med fælles lager COTS maskiner Massiv parallelisering Flere RISC-kerner på én chip Et systolisk array Opbygning af systolisk array Generelle problemer Lagertilgang Buffer i

4 INDHOLDSFORTEGNELSE 5.3 Størrelse Systolisk celle Samlet transistorforbrug Ydeevne analyse Små tætbefolkede ligningssystemer BBD ligningssystemer Løsning med et systolisk array Blok tridiagonale ligningssystemer Tilpasning til det systoliske array Parallelisering Udvidelse af systolisk array Konklusion Yderligere arbejde Appendix 47 A Litteraturliste 47 B Synopsis 49 C)Output fra AMG vedlagt) 5 D)Ekstrapoleret datavedlagt) 53 ii

5 Kapitel 1: Forord Kapitel 1 Forord Denne rapport er udarbejdet af Dennis Albert Vous Haney og Martin Leopold i perioden 9/-001 til 17/4-001 som bachelorprojekt i datalogi ved Københavns Universitet. Firmaet Silicide A/S har stillet lokaler og computere til rådighed samt sørget for bespisning. Projektet omhandler en hardware implementation af en ligningsløser til et lineært ligningssystem. Det vil igennem rapporten blive belyst, hvordan et ligningssystem genereres ud fra et elektronisk kredsløb, hvordan et generelt lineært ligningssystem matematisk løses og hvordan forskellige hardware arkitekturer kan benyttes til løsningen. Dette vil resultere i et udkast til implementation af en speciel arkitektur. Kombineret med specielle matematiske egenskaber af ligningssystemerne vises det, at et lineært ligningssystem ideelt kan løses tid. Der vil igennem rapporten være en datalogisk tilgangsvinkel til emnet og derfor forventes det, at læseren er bekendt med viden svarende til en datalogisk førstedel samt en rimelig matematisk modenhed. Under arbejdet med projektet er idéerne fra synopsis vedlagt som bilag) blevet videreudviklet. Der bliver ikke udelukkende behandlet ligningssystemer fra kredsløbsanalyse, der er heller ikke implementeret en prototype og idéen med at benytte programmet ESACAP til at levere testdata er derfor droppet. Rapporten er typesat med L A TEX. 1/53

6 Kapitel 1: Forord /53

7 Kapitel : Ligningssystemer Kapitel Ligningssystemer I dette kapitel introduceres kort kredsløbsanalyse for senere at bruge de ligningsystemer, som opstår i denne forbindelse. Emnet kredsløbsanalyse er langt større, end det her er antydet, og der foregår betydelig forskning inden for repræsentation af kredsløb, kredsløbsmodeller, ligningsopstilling og simulation. Mange af de problemstillinger, der findes inden for dette område, har ikke direkte relevans for denne rapport og dækkes derfor ikke. Introduktionen er inspireret af [RD93, kap. 7]..1 Kredsløbsanalyse Essensen i kredsløbsanalyse ligger i modelleringen af kredsløbet. For en given elektrisk komponent kan opstilles en såkaldt overførelselsfunktion, som på passende vis modellerer komponentens opførsel. Der kan vælges forskellige niveauer af detaljering. På laveste niveau simuleres hver enkelt transistor og modstand. På højeste niveau ses på funktionalitet af store blokke, ofte beskrevet i programmeringssprogslignende sprog på DIKU benyttes SIMSYS). For store kredsløb vil det være beregningsmæssigt uoverkommeligt at simulere hver enkelt transistor i hele kredsløbet, derfor kan vælges at blande forskellige niveauer af detaljering således, at simuleringen koncentrerer sig om særlige dele af et kredsløb. Denne rapport befinder sig på nederste niveau ofte omtalt som transistor level af indlysende årsager. Egenskaber, som ofte ønskes simuleret på dette niveau, er spændings- og strømkurver som funktion af tid. Disse mål skal afsløre forskellige karakteristika om kredsløbet, det kunne være stigtider eller timing. Ved hjælp af Kirchoffs strømlov samt Ohms lov kan nu opstilles et sæt knudeligninger for kredsløbet. Metoden til opstilling af knudeligninger er ikke fast, men kan tilpasses de givne omstændigheder. Én metode er den modificerede knude tilgang Modified nodal approach). Denne metode vælges ofte, da den 3/53

8 Kapitel : Ligningssystemer Sektion.: Specielle karakteristika håndterer både strøm- og spændingsstyrede komponenter se [RD93] for detaljeret gennemgang). Grundlæggende er der to karakteristiske overførselsfunktioner: Lineære modstande og spændingskilder) og ulineære dioder, kondensatorer, transistorer og evt. selvinduktanser). For de lineære elementer gælder, at det kan lade sig gøre at opstille et lineært ligningsystem, som modellerer kredsløbet. Tilsvarende kan opstilles et ulineært ligningssystem for kredsløb med ulineære komponenter. Det er ikke muligt at løse ulineære ligningssystemer direkte, derfor skitseres kort en numeriske metode. Der henvises til [WJM88, kap.4] for en mere fyldestgørende beskrivelse. For et givet ulineært system, det kunne være et system fremkommet fra en kredsløbsbeskrivelse, gælder:.1) hvor g er en overførelselsfunktion, V er spænding og I er strøm. Ligningen kan også skrives som.) Altså transformeres problemet til at finde nulpunkter i. En metode, som kan benyttes, er Newton-Raphson iteration udvidet til funktioner af flere variable. Essensen i Newton-Raphson er en Taylorudvikling af. Den afledte af er kendt som den totalafledte eller jakobimatricen. Som antydet er Newton-Raphson en iterativ metode, som løser problemet. Metoden kan ud fra et nuværende bud finde et nyt bud : # $!" $ %'& )+*)-, hvilket kan omskrives til # $ $.% 1 ' )/*)0, "43.3).4) som tydeligt er på formen. Altså kan et ulineært ligningssystem løses som en række lineære ligningssystemer.. Specielle karakteristika De ligningssystemer, som fremkommer fra analysen af lineære og ulineære kredsløb, udviser karakteristika, som kan udnyttes under løsningen af ligningssystemerne. Det er klart hvordan disse karakteristika fremkommer i ligningssystemer fra lineære kredsløb, men de samme karakteristika vil også optræde i Newton-Raphson iterationens lineære ligningssystemer. Det ligger uden for denne opgave at beskrive, hvordan disse karakteristika overføres fra det ulineære ligningssystem til de lineære ligningssystemer. 4/53

9 Sektion.: Specielle karakteristika Kapitel : Ligningssystemer Ligningssystemerne vil altid være strukturelt symmetriske. Modeller som opstiller ligningssystemer ud fra knuder i kredsløbet, som den modificerede knudetilgang fra sidste kapitel, tilføjer informationer om knuderne i par symmetrisk om diagonalen. Det vil sige, at en forbindelse altid har en tilsvarende symmetrisk på den anden side af diagonalen. Ligningssystemerne er kvadratiske. Idet, der for hver knude i kredsløbet, altid tilføjes et eller flere par indgange i matricen på hver side af diagonalen, vil sidelængderne vokse ens og proportionalt med antallet af knuder. Ligningssystemerne er tyndtbefolkede. Hver knude har typisk kun forbindelse til få andre knuder, således at der kun vil være få indgange for hver knude i matricerne. Ligningsystemet har en rand. I et kredsløb vil der ofte være knuder med forbindelser til mange andre knuder - power er en knude, som vil være forbundet til næsten alle andre knuder. Sådanne knuder vil afstedkomme en rand omkring ligningssystemet. Ligningssystemerne er hierakisk opbygget i blokke. En anden egenskab, som springer i øjnene, er formen af ligningssystemet. Typisk består et stort elektrisk kredsløb, som en chip, af en række store kredsløbsblokke, der internt er tæt forbundet, men som kun er forbundet med hinanden med få forbindelser. Som et eksempel på dette ses kredsløbskortet i en almindelig PC; her vil der være en række chips forbundet med printbaner. Inde i en chip er der et stort antal forbindelser sammenlignet med benforbindelserne til omverdenen. Organiseres ligningssystemerne så naboknuder i eksemplet: Nabo-chips) ligger nær hinanden i matricerne, opnås et ligningsystem med en meget karakteristisk struktur se figur.1). Denne karakteristiske struktur er hierakisk således, at de enkelte blokke er opbygget på samme måde. Fortsættes der med PC eksemplet vil hver chip være opbygget af en række blokke med forbindelser - det kunne være en ALU. En ALU er igen bygget op af en række forbundne blokke. På denne måde gentager strukturen sig i kredsløbet og dermed også i matricen. En matrix som har denne struktur kaldes ofte for BBD - Block Bordered Diagonal. 5/53

10 Kapitel : Ligningssystemer Sektion.: Specielle karakteristika Figur.1 Et BBD ligningssystem kunne være et ligningssystem fremkommet ved kredsløbsanalyse. 6/53

11 Kapitel 3: Løsning af ligningssystemer Kapitel 3 Løsning af ligningssystemer Dette kapitel ser overordnet på løsningen af lineære ligningssystemer. Indledningsvis diskuteres anvendeligheden numeriske metoder kort, ligeledes præsenteres Gauss-elimination kort og resten af kapitlet beskriver den ofte anvendte variant LU faktorisering. Som notation vil summationer med negativt index f.eks. ) forløbe 0 gange. 3.1 Numeriske metoder Til løsning af ligningssystemer virker det besnærende at benytte sig af iterative numeriske metoder, der paralleliserer godt, og som ofte er hurtigere end direkte metoder. For at sikre konvergens indfører de klassiske numeriske metoder uheldigvis begrænsninger på de ligningssystemer, som kan løses. For eksempel kræver Gauss-Siedel metoden at ligningssystemet er diagonaldominant [DW96, side 30]. For generelle ligningssystemer kan det ikke garanteres, at disse specielle egenskaber er opfyldt, således at en af de klassiske numerisk metoder ville kunne anvendes. Der findes dog specielle numeriske metoder, der dækker specielle områder. [TI97] har en tekst om en løsningsmetode til iterativ løsning af partielle differentialligninger med finite element metoden. 3. Direkte løsningsmetoder Den klassiske algoritme inden for de direkte ligningsløsere er Gauss elimination. Gauss elimination beskrives her ikke i detaljer, men en glimrende gennemgang kan findes i [RM93]. 7/53

12 Kapitel 3: Løsning af ligningssystemer Sektion 3.3: LU faktorisering Gauss elimination løser ligningssystemer på formen: 3.1) hvor A er en kendt matrix, der indeholder koefficienterne til ligningsystemet, er en kendt vektor og er vektoren af ubekendte. Ligningsystemet løses i to trin: Først transformeres 3.1 ved hjælp af rækkeoperationer til et ækvivalent ligningssystem, hvor der gælder at er transformeret til et øvre triangulært system og er blevet ændret passende. Altså er transformeret til en matrix, som kun indeholder 0-elementer under diagonalen og 3 til en ny. Dernæst udføres baglæns substitution, hvorved de variable i vektoren løses én ad gangen: & 3.) Der er udviklet et utal af variationer af Gauss eliminationen specialiseret til hver sit formål, hvoraf der kun ses på en enkelt - LU faktorisering. LU betegner en opdeling af A til to nye matricer L og U: 3.3) L er en matrix, hvor alle indgange over diagonalen består af 0 og tilsvarende har U kun 0 i alle indgange under diagonalen. findes ved at løse det ækvivalente system: 3 3.4) Algoritmen for løsning af lineære ligningssystemer på formen [WJM88, kap..1] altså: Faktoriser til og Løs for også kendt som fremad substitution) Løs for også kendt som baglæns substitution) bliver Den store fordel ved LU faktorisering fremfor Gauss elimination ligger i, at løse flere ligningssystemer med samme koefficientmatrix ) og forskellige højresider ). Det kan vises, at antallet af tidkritiske operationer er ens for Gauss elimination og LU faktorisering [WJM88, p.]. Dermed bliver LU faktorisering altid en ækvivalent eller hurtigere metode end Gauss elimination. 3.3 LU faktorisering I dette afsnit udledes faktoriseringen af til og. Udledningen er hovedsagligt inspireret af [DW96, kap.4.]. Der startes med en matrix A, idet systemet består af n ligninger med n ubekendte. LU faktorisering vil også være 8/53

13 * * * * * Sektion 3.3: LU faktorisering Kapitel 3: Løsning af ligningssystemer mulig for systemer, som ikke er, men der henvises til anden litteratur for yderligere detaljer. Med matrix A ledes efter og ) som opfylder ligning 3.3. Det kan vises, at ligning 3.5 ikke definerer diagonalelementerne i og entydigt. Derfor viser det sig nødvendigt at fastlægge diagonalelementerne i enten L eller U. De skal dog fastlægges til en ikke-0 værdi. Hvis elementerne fastlægges, er det muligt at beregne eller tilsvarende lade bestemme. Et indlysende valg kunne være at lade enten eller være 1, da der, som det vil fremgå senere, spares en division. Hvis kaldes denne faktorisering for Doolittle s faktorisering og tilsvarende er en Crout s faktorisering. Der ses nu på matrixproduktet af og og egenskaberne af de to matricer udnyttes. Det antages, at diagonalelementerne i er forskellig fra 0, idet det kan vises, at denne antagelse er tilstrækkelig til at sikre, at der findes en LU faktorisering af [DW96, p.166]. 3.6) idet * for! #" og ' for%$&". For hvert fastlægges altså den te søjle i og den" te række i L. I et givet trin ' vil alle rækker 1,,...," -1 og alle søjler 1,,..., -1 være bestemt i et foregående trin. Diagonalelementerne ) i A udtrykkes ud fra matrixproduktet LU i = j = k): *!+ * 3.7) Hvis * er specificeret kan ligning 3.7 bruges til at beregne, idet kendt og summeringen er kendt idet den kun indeholder rækker/søjler fra forrige trin). Det samme gør sig gældende for specificeret. I det k te trin er nu * og kendt. Derfor kan ligning 3.6 nu bruges til at finde de øvrige elementer; for den k te række og den k te søjle gælder da: * + -,.+/10 0 & 3.8)!+ -,.+/10 " 0 3.9) & 9/53 &

14 Kapitel 3: Løsning af ligningssystemer 3.9 bruges til at finde elementerne. Hvis * Sektion 3.3: LU faktorisering kan 3.8 bruges til at finde elementerne. Hvis kan Algoritme uden pivotering I dette afsnit udledes to algoritmer til LU faktoriseringen uden brug af pivotering. Pivotering diskuteres i afsnit sættes til 1 i det følgende. Det udnyttes, at beregningen af diagonalelementet er identisk med beregningen for de øvrige elementer. Det bemærkes, at der i ligning 3.9 skal gælde. Den tidligere beskrevne antagelse sikrer at dette altid gælder. Ud fra ligning 3.8 og 3.9 findes da de øvrige elementer i og, hvilket fører til algoritme 3.1. I stedet for at summere i hvert" te og te trin i algoritme 3.1 viser det sig at en akkumulering af summasionerne kan gemmes i under beregningen samme idé ses i [WJM88,.4]). Denne algoritme vil senere vise sig nyttig. Varianten ses i algoritme 3.. LU FAKTORISERING UDEN PIVOTERING 3.1) input n, for k = 1 to n do for j = k to n do! &' #"%$ )+* ' ) ), end do - for i = k+1 to n do. / &' "%$ )+* ' : 474 end do ; =< end do ; > output,? 3.3. Blok LU faktorisering I stedet for at regne på en søjle/række ad gangen viser det sig nyttigt at LU faktorisere i blokke. Studeres algoritme 3. er det klart, at LU faktoriseringen forløber i 3 trin se også figur 3.1): 1. Opdater en søjle i. Opdater en række i 3. Opdater E Denne idé kan udvides til at LU faktorisere A i blokke af et antal elementer. Skrives definitionen af LU produktet med opdelt i blokke, er det nemt at se 10/53

15 Sektion 3.3: LU faktorisering Kapitel 3: Løsning af ligningssystemer LU FAKTORISERING UDEN PIVOTERING MED AKKUMULERET SUM 3.) ; input n, + for k = 1 to n do , 0 4=4 end do -. +: end do ; =< ; > 3 ; 7 ; = end do ; ; end do ; 7 output, for i = k+1 to n do for j = k to n do for i = k+1 to n do for j = k+1 to n do " U L E Figur 3.1 Algoritme 3. skematisk opdatering. 11/53

16 # + 3 Kapitel 3: Løsning af ligningssystemer Sektion 3.4: Substitution U B Un L n U B L L C E C E Figur 3. Blok LU faktorisering. hvordan blok LU faktoriseringen forløber: # % % # hvor og findes ved at LU faktorisere # & & % 3.10) %+ % og de øvrige løses som: Vælges blokke som på figur 3. forløber blok LU faktoriseringen som: 1. Faktoriser til,,. Beregn ved at løse 3. Opdater 4. Faktoriser E, enten rekursivt med samme algoritme eller direkte. 3.4 Substitution Efter LU faktoriseringen løses de to ligningssystemer & 3 og som: 3.11) 3.1) & Idet både og er triangulære, kan metoden kendt som substitutionsmetoden benyttes til at løse 3.11 og 3.1. Substitutionsmetoden udnytter, at og er triangulære. Ved at se på strukturen af et triangulært system, er det klart, at ligningen i den ende, som er spids, kan løses trivielt. Med denne løsningen kan den næste ligning med variable løses osv. Altså kan U løses ligning for ligning fra neden. Tilsvarende kan L løses ligning for ligning ovenfra. 1/53

17 ' Sektion 3.5: Problemer Kapitel 3: Løsning af ligningssystemer Lad være en matrix og nedre triangulær. Da løses 3.11 ved fremad substitution som: da =1 gælder 3 3 * & * & " " 3.13) 3.14) Lad være en matrix og øvre triangulær. Ligning 3.1 løses ved baglæns substitution: " 3.15) 3.5 Problemer * LU algoritmen som præsenteret i sidste afsnit virker med sin enkelthed utrolig tiltrækkende. Desværre er der nogle problemer, når den skal implementeres på en computer: Hvis for et givet" bryder processen sammen. Da computeren kun har en endelig præcision i sin talrepræsentation, kan det risikeres at præcisionen ikke er så god som antallet af bits nummerisk fejl). Altså at en række af løsningens cifre ligger uden for usikkerheden og kan derfor ikke stoles på. Den endelige præcision i computeren kan også afstedkomme fænomenet numerisk ustabilitet. I værste fald kan fænomenet resultere i, at den beregnede løsning ikke er korrekt. I en Newton-Raphson iteration kan det medføre divergens af iterationsprocessen. Matricerne fra kapitel er ofte meget store og tyndtbefolkede. Hvis alle elementer opbevares eksplicit, kan der opstå lagerproblemer. Ved at udnytte at matricerne er tyndtbefolkede, kan 0-elementer opbevares implicit. På denne måde opnås pladsbesparelse og der spares beregningstid idet det er trivielt at regne på 0-elementer i matricerne) Pivotering og repræsentation En måde at løse disse problemer ligger i rækkefølgen, hvori operationer udføres - pivoterings rækkefølgen. Ved at ombytte rækkerne, pivotere, på passende vis under LU faktorisering, kan det sikres, at ligningssystemet konvergerer, og at præcisionen bliver optimal. 13/53

18 Kapitel 3: Løsning af ligningssystemer Sektion 3.5: Problemer Når der tales om tyndtbefolkede ligningssystemer, vil naiv Gauss Elimination og LU faktorisering introducere nye ikke 0-elementer i matricerne. For at kunne bevare de tiltalende egenskaber ved de tyndtbefolkede matricer introduceres den optimale pivotordning. Ved pivotordning forstås den rækkefølge, som rækkeoperationerne i Gauss eliminationerne udføres. Den optimale pivotordning er den ordning, som skaber færrest nye ikke 0-elementer. Uheldigvis kan det at udføre pivotering være meget dyrt. Beregningen af hvilke rækker, som skal byttes om, kan være kompliceret og kræver globalt kendskab til matricen. Medmindre matricen opbevares i en fornuftig repræsentation, kan det være dyrt at bytte om på rækker i matricerne. Hvis ligningssystemerne stammer fra en Newton-Raphson iteration, og en række ligningssystemer løses med ikke-optimal præcision, vil den pris, som betales være en nedsat konvergenshastighed i iterationen. Afhængig af den valgte løsning kan det måske betale sig helt at undlade pivotering. Hvis løsningen til Newton-Raphson iterationen divergerer, vil det være nødvendigt at pivotere eller lappe på proceduren på anden vis. Det er vigtigt, at repræsentationen på en effektiv måde understøtter rækkeoperationerne, som kræves af LU faktorisering. Hvis den valgte algoritme udfører pivotering, vil det være en stor fordel at understøtte de operationer som kræves både læsning og skrivning) effektivt. De basale rækkeoperationer er ombytning, addition med en konstant og multiplikation med en konstant. Ikke overraskende har de forskellige løsningmetoder hver yderligere krav til at tilgå matricernes elementer. For at lave en effektiv repræsentation til en algoritme, er det derfor nødvendigt at se på i hvilken rækkefølge algoritmerne tilgår elementerne. Effektive repræsentationer er beskrevet i [WJM88, kap. 3.1]. Når 0-elementer repræsenteres implicit, kræves det, at indsættelse af 0-elementer sker på en effektiv måde. Lagres eksempelvis alle ikke 0-elementer fortløbende efter hinanden, vil indsættelse af et ikke 0-element kræve en flytning af alle eller dele af de øvrige elementer. En anden ofte brugt mulighed er at forudberegne hvor i matricen, der under beregningerne vil opstå ikke 0-elementer og reservere disse på forhånd. Ved på forhånd at kende pivoteringsrækkefølgen af matricen kan det forudsiges, hvor der vil opstå nye ikke 0-elementer. 14/53

19 Kapitel 4: Arkitektur Kapitel 4 Arkitektur I det foregående kapitel blev løsning af lineære ligningsystemer ud fra et matematisk synspunkt diskuteret. I dette kapitel diskuteres fordele og ulemper ved forskellige hardwareimplementationer af en ligningsløser. Der vil blive fokuseret på en række nye og gamle idéer indenfor processor udviklingen, som kan være interessante til at løse lineære ligningssystemer. Det er langt fra en udtømmende liste, men den dækker alligevel store dele af området. Senere kommer en mere uddybende beskrivelse af de enkelte arkitekturer, men her en kort oversigt: Uniprocessor Én modificeret RISC kerne med mange eksekveringsenheder til flydende tal i kernen. Her benyttes en speciel processor, der ligner en ganske almindelig RISC processor set fra programmørens synspunkt, men det overlades til selve processoren at finde nyttigt arbejde. VLIW-kerne med mange eksekveringsenheder til flydende tal i kernen. Til forskel fra den modificeret RISC kerne, hvor skeduleringen overlades til selve processoren, er det her oversætterens opgave. En vektor processor. En vektor processor fungerer, som navnet antyder, ved at arbejde på vektorer af data i stedet for registre. Det er dermed muligt med enkelte instruktioner at arbejde effektivt med store mængder data. Multiprocessor En samling almindelige COTS Commercial Off-The-Shelf) maskiner forbundet via et netværk. 15/53

20 Kapitel 4: Arkitektur Sektion 4.1: Lager En fattigmandsversion af en multiprocessormaskine. Ved at bruge billig standard hardware opnås mange små maskiner istedet for én stor kraftig. En multiprocessormaskine med fælles lager - en supercomputer. For løsning af nogle problemer kan det være en fordel, at alle processorer har lige hurtig adgang til det samme lager. Massiv parallelisering En helt ny teknologi som endnu ikke har set kommerciel anvendelse. Flere RISC-kerner på én chip. Idéen er, at bygge et antal processorer sammen på en chip i et ultra tætkoblet netværk med en yderst simpel kommunikationsprotokol, således at kommunikationsomkostningerne minimeres. Et systolisk array. Dette er et specielbygget mønster af eksekveringsenheder sat sammen på en måde, at de er i stand til at løse et givet problem. Idéen i det systoliske array er at programmere datavejene direkte ind i hardware. I de følgende afsnit, vil der fokuseres på detaljerne i ovenstående arkitekturer, men først et afsnit om lageret. 4.1 Lager For løsningen af meget store lineære ligningssystemer er der to faktorer, som gør lagertilgangen til den begrænsende faktor. Løsning af ligningssystemer er en meget båndbreddeforbrugende proces med en meget regulær tilgang til data. I mange arkitekturer er lagersystemet optimeret til tilgangshastighed af tilfældige data, men i dette tilfælde burde optimeringen være efter båndbredde. Ydermere er det sådan, at arkitekturer ofte har en meget optimeret central beregningsenhed, der er flere faktorer hurtigere end det omkringliggende lagersystem - derfor opnås kun optimal ydelse, hvis der beregnes meget mellem lagertilgange. Løsning af ligningssystemer er ikke en af disse problemer, og derfor ødelægges balancen mellem tilgang til lageret og beregninger. Det skal dog nævnes, at det er muligt at cacheoptimere en implementation, så det aktive datasæt passer i cachen og dermed opnå større udnyttelse af maskinen. En sådan implementation vil naturligvis være platformsafhængig. BLAS implementationen ATLAS[ATINET], er et eksempel på en implementation. For multiprocessor arkitekturer deler organisationen af lageret sig primært i to lejre: Distribueret og fælles, hver med utallige varianter. Vi ser på 3 ofte brugte varianter: 16/53

21 Sektion 4.: Uniprocessor Kapitel 4: Arkitektur CPU CPU CPU $ $ $ Mem Figur 4.1 Fælles lager. Alle processorer har samme adresserum og tilgangshastighed. $ er cache. Fælles lager Figur 4.1). Alle arbejder på det samme lager, og tilgangen er den samme for alle. For lagerkrævende opgaver, som løsning af lineære ligningsystemer, er denne ikke den optimale, når antallet af processorer stiger. Grunden er de stigende omkostninger til håndtering af konsistens og overensstemmelse mellem de forskellige processorers opfattelse af lagerets indehold. Distribueret lager Figur 4.). Denne model har et hurtigt lager ved hver af de enkelte processorer, men tilgangen til andre dele af lageret end den lokale er meget langsom. Det er derfor hensigtsmæssigt at håndtere udvekslingen af delte elementer eksplicit. Dancehall Figur 4.3). Er en kombination af de to forrige. I denne model er lageret distribueret i række lagerbanke på en sådan måde, at alle processorer har adgang til alle banke. Således kan en bank levere data uafhængigt af de øvrige, så den samlede båndbredde øges væsentligt. Navnet kommer af, at en processor eksklusivt allokerer en lagerbank, som når en mand danser med en kvinde. For multiprocessor systemer kan det antages, at data er konsistent for alle processorer. En multiprocessor implementation vil i høj grad afhænge af hvilket lagersystem, der bliver brugt. Varianter af de tre nævnte løsninger bruges i dag kommercielt i mange maskiner. På DIKU findes Mokkurkalfe En Sun Enterprise 6500 med 4 processorer og 4GB RAM) som benytter en variant af det fælles lager og Dancehall. Desuden har DIKU Kvaser 16 Pentium maskiner sat sammen i et hurtigt SCI netværk, en såkaldt klynge), som benytter en variant af det distribuerede lager. 4. Uniprocessor Som den mest gennemprøvede og velkendte teknologi beskrives en række muligheder for at understøtte løsning af lineære ligningssystemer i et uniprocessor system. 17/53

22 Kapitel 4: Arkitektur Sektion 4.: Uniprocessor Net CPU CPU CPU $ $ $ Mem Mem Mem Figur 4. Distribueret lager. Processorerne har separat adresserum og er forbundet i et netværk. $ er cache. CPU $ Mem CPU $ Mem CPU $ Fuldt forbundet Mem Figur 4.3 Dancehall lager. Lageret er adskilt i banke, men dog stadig med fælles adresserum og tilgangshastighed. $ er cache. Langt den mest fremherskende metode i dag er på den ene eller anden måde at udvikle èn hurtig processor. Man er i øjeblikket ved at nå et stadie, hvor arkitekturerne er blevet så store og komplicerede, at det er svært at udvide dem til at køre hurtigere. Et godt eksempel er Intels Pentium 4, som langt fra kan yde det, som dens skabere havde håbet på Én modificeret RISC-kerne Pointen med denne arkitektur er, at det skal være muligt for processoren selv at finde nyttigt arbejde. På denne måde kan allerede eksisterende programimplementationer bruges. En forudsætning for at denne type arkitektur opnår optimal udnyttelse, er naturligvis at programmerne udviser tilstrækkelig parallelisme til, at processoren kan starte så mange instruktioner, at alle eksekveringsenheder holdes i gang. For at kunne finde afhængigheder mellem fortløbende instruktioner og tilgang til lageret kræves dog en hel del hardware. For instruktionsdelen alene kræver det tidskritiske kredsløb, hvor N er antallet af instruktioner, som kan køres parallelt. Desværre vil det være et stort problem at få processoren til at køre med en høj klokfrekvens på grund af denne store kompleksitet. En meget stor fordel for udviklingen af denne arkitektur er, at der ikke benyttes nogen nye og uafprøvede koncepter. Alle dele er kendt teknologi. Med 18/53

23 Sektion 4.: Uniprocessor Kapitel 4: Arkitektur lidt held og en god implementation er software delen triviel, da en almindelig uniprocessor implementation eller en lettere modificeret version kan benyttes med godt resultat. 4.. VLIW-kerne Til forskel fra ovenstående RISC processor bygger VLIW på at overlade det til oversætteren at skedulere instruktionerne. Det er derfor i lighed med den foregående arkitektur vigtigt, at software implementationen udviser en sådan parallelisme. VLIW arkitekturen angriber RISC arkitekturens skeduleringsproblemer, da mange afhængigheder kan afgøres på oversættelsestidspunktet. Ved at overlade det til software at foretage skeduleringen af instruktionerne forsimples hardwaren væsentligt, og det bliver derfor langt nemmere at optimere hardwaren således, at den overordnede ydelse stiger. Problemet, i forbindelse med løsning af lineære ligningssystemer, er at denne type program består af nogle meget små løkker, som det er simpelt at fjerne afhængighederne af. Derfor ville denne type processor ikke tilbyde noget i forhold til en RISC maskine. En største ulempe ved denne arkitektur er, at den baserer sig på helt ny og uafprøvet teknologi. Den oversætterteknologi, som skal skedulere instruktionerne effektivt, er endnu ikke udviklet i en kvalitet, der er god nok. Samtidig har faktiske implementationer af processoren, endnu ikke set dagens lys og der er dermed ingen fortilfælde at læne sig op ad. Intel har i samarbejde med Hewlet Packard projektet Itanium [ITINET] undervejs, men dags dato er den ikke offentlig tilgængeligt på markedet før om ca. en måned En vektor processor RISC arkitekturen og VLIW benytter sig som regel af SISD Single Instruction Single Data), hvorimod vektor computeren arbejder med SIMD Single Instruction Multiple Data). SISD betyder, at der for hver instruktion kun indgår et enkelt dataelement, mens SIMD betyder at en operation kan arbejde på lang række dataelementer. Kernen i vektorprocessoren er vektorregistre. Disse registre fyldes med data fra lageret og en given operation kan udføres på samtlige elementer i registret samtidigt. Et eksempel på hvordan SISD arbejder i forhold til SIMD kan ses i algoritme 4.1 og 4.: LØKKE I SISD 4.1) ; : + load R1,0[R4] mul R1,R,R1 19/53

24 Kapitel 4: Arkitektur Sektion 4.3: Multiprocessor, -. add R1,R3,R1 store R1,0[R4] add R4,R4,4 add R5,R5,-1 jumpnotzero R5, LØKKE I SIMD 4.) : loadvec V1,R4 mulvec V1,R,V1 addvec V1,R3,V1 storevec V1,R4, add R4,R4,VLR - add R5,R5,-VLR. jumpnotzero R5, Eksemplet udfører operationen +3. a ligger i register, b ligger i register 3 og antallet af elementer, der skal regnes på ligger i register 5. Data hentes fra adressen gemt i register 4 og fremefter. VLR betegner vektorcomputerens størrelse af vektorregister. Den store forskel bliver at vektorprocessoren udfører løkken R4/VLR gange, hvor VLR er antallet af indgange i vektorregistrene, typisk elementer, og R4 er register 4 fra eksemplet. SISD processoren derimod udfører løkken R4 gange, og det er svært at forudsige for processoren hvad der sker i fremtiden. Da vektorprocessoren arbejder på denne måde, er det muligt at optimere lagertilgangen, da denne bliver meget regulær. Den lagermodel, som oftest benyttes, er dancehall. Ved at lade hver indgang i et vektorregister allokere en lagerblok opnås at kunne fylde et vektorregistre med den fulde båndbredde fra lageret. En vektorcomputer er velegnet til løsning af lineære ligningssystemer, da det er muligt at lave en implementation, som udnytter vektor computerens fordele effektivt og opnår tæt på 100% af den teoretiske hastighed. Derfor har vektor computere ofte været anvendt til at løse denne type problemer, når det var hastighed der var brug for. En af de store fordele ved denne løsning er, at der kun skal udvikles software. Endvidere eksisterer der allerede oversættere, som kan optimere et program til en vektorcomputer. Der findes adskillige kommercielle produkter på markedet, hvis pris afspejler de store udviklingsomkostninger og få anvendelser. 4.3 Multiprocessor Når der er brug for betydelig regnekraft, kan det ofte betale sig at kaste sig over parallelismen i et givet problem. Derfor baserer alle store supercomputere sig i dag på på flere processorer, og multiprocessorparadigmet er langsomt ved 0/53

25 Sektion 4.3: Multiprocessor Kapitel 4: Arkitektur at finde anvendelse i almindelige arbejdsstationer. Løsning af fulde lineære ligningssystemer er en opgave, som paralleliserer fint og med en god implementation - næsten ideelt. Derfor er denne type maskiner ofte set anvendt til dette problem En multiprocessormaskine med fælles lager En multiprocessormaskine med fælles lager kaldes i daglig tale ofte for en supercomputer. Pointen med denne type maskine er, at det er muligt at kombinere flere hurtige processorer til at løse ligningssystemet. Hver af disse processorer kunne være en af de forgånde, f.eks. mange vektorprocessorer. En anden tiltalende egenskab er, at supercomputeren i mange tilfælde vil have adgang til store mængder lager, hvormed problemstørrelsen ikke er en hindring. Ligeledes vil der oftest være en program implementation til rådighed. Desværre er et fælles lager ikke hurtigt når antallet af processorer stiger, da lageret vil få problemer med konsistens, som omtalt i afsnit 4.1. Udviklingsomkostninger Da der kan benyttes et allerede tilgængeligt kommercielt produkt, er det ikke nødvendigt at udvikle hardware. Ligeledes er programmellet også kommercielt tilgængeligt. Derfor er dette en stærk, gennemafprøvet og hurtig løsning. Prisen på disse maskine er dog meget stor og derfor, vil denne løsning kun være tilgængeligt for en lille gruppe mennesker COTS maskiner I stedet for at investere i store specialiserede supercomputere kan det ofte betale sig at gå efter en COTS maskine Commercial Of-The-Shelf). En sådan maskine består, som navnet antyder, af komponenter der er tilgængelige i computerforretninger. De seneste årtiers udvikling indenfor almindelige arbejdsstationer har i dag gjort COTS maskiner utrolig hurtige til prisen. Ved køb af disse maskiner får man, som situationen er i dag, langt mere processorkraft for pengene end ved mere specialiserede arkitekturer. Et antal kraftige arbejdsstationer kan sættes sammen i et LAN, en såkaldt klynge, som efterligner arkitekturen af en supercomputer med distribueret lager. Lageret i systemet er distribueret ved, at hver maskine er født med egen lagerenhed. Kommunikationsomkostningerne er ekstreme i forhold til de tidligere arkitekturer, da man her kommunikerer gennem et LAN. På grund af det distribuerede lager vil det være nødvendigt at bruge processortid på eksplicit 1/53

26 Kapitel 4: Arkitektur Sektion 4.4: Massiv parallelisering at kommunikere elementer som skal deles. Det er derfor ikke utænkeligt, at en eller flere maskiner vil løbe tør for arbejde, mens de venter på kommunikation. Software udvikling på disse maskiner adskiller sig ikke væsentligt fra udviklingen til andre parallelmaskiner. Derfor kan den forskning, som er lavet til supercomputere overføres næsten direkte til implementation på et sådan system. Specielt hvis implementationen ikke er meget kommunikationskrævende. 4.4 Massiv parallelisering Processor designs er i dag ved at nå en sådan kompleksitet, at det begynder at være svært at finde på nye idéer, som forøger ydelsen væsentligt i forhold til antal forbrugte transistorer. Dette er ikke noget nyt problem - RISC og VLIW teknologierne er begge opstået, da det har været nødt til at starte forfra og finde på noget nyt. Inden for en overskuelig fremtid vil det være muligt at klemme flere hundrede milioner transistorer ned på en enkelt chip. Med så mange transistorer er det usandsynligt, at RISC og VLIW skalerer godt. Igen er der brug for nytænkning. Den idé, som nogle forskere arbejder med, er massiv on-die parallelisering: Ved at koble beregningsenheder sammen i et tæt koblet netværk på en chip, håbes det fortsat at kunne øge ydelsen af mikroprocessorer. Det mest kendte projekt inden for denne tankegang er MITs RAW arkitektur. RAW[MITINET] arbejder med en idé, som de kalder reconfigurable computing [EW97], som går ud på at placere mange processorer i et on-the-fly rekonfigurerbart netværk på én chip. Firmaet Star Bridge Systems[SBSINET] udvikler maskiner ud fra FPGA teknologi. En FPGA er bygget op af en lang række makroceller i et kommunikationsnetværk, som kan omprogrammeres on-the-fly. Hver makrocelle kan programmeres som en gate-funktion, således at FPGA chippen kan simulere et kredsløb. Idéen i Star Bridge Systems Pensa TM -maskine er at udvide makroceller til at indeholde mere intelligens f.eks. en kombineret multiplikations- og additionsenhed eller en hel processor Flere RISC-kerner på én chip Ved at placere flere RISC processorer på samme chip reduceres kommunikationsomkostningerne til et minimum. Herudover er princippet i denne arkitektur det samme som for andre multiprocessorer maskiner. Arkitekturen kunne implementeres med alle typer lagermodeller, med hver deres fordele og ulemper. Forestiller man sig en række processorer med hver sit lager i et tætkoblet nætværk, vil tilgangen til egen og naboers lager være hurtig. Et tætkoblet nætværk med stor båndbredde kan potentielt optage meget areal på chippen, og hvis kommunikationsvejene bliver for lange, kan det gå ud over /53

27 Sektion 4.4: Massiv parallelisering Kapitel 4: Arkitektur klokfrekvensen. Hvis der i steder benyttes fælleslager er det åbenlyst, at båndbredden kan blive en begrænsning. Tilgår processorerne lageret gennem en fælles bus, kunne denne bus ligeledes blive en begrænsning. Båndbreddeproblemet kunne afhjælpes ved at vælge en lagerarkitektur med tilstrækkelig båndbredde såsom dancehall. Denne arkitektur baserer sig på RISC kerner sat sammen med kendt netværksteknologi og udgør tilsammen alligevel en ny teknologi, som det ikke er usandsynligt, vi kommer til at se mere til fremover Et systolisk array Et systolisk array er en samling af ens elementer, der er sat sammen således, at de er i stand til at løse et matematisk problem utrolig effektivt. Arrayet består af mange gentagne elementer, som gør det let at bygge. Ideen er, i stil med hjertets systole, at pumpe data igennem arrayet i veldefinerede trin. Det var et af de store hit, da VLSI designs kom frem. Det viste sig dog, at der var begrænsninger: Antallet af transistorer ville være for stort til at datidens teknologi kunne bruges, og en udvidelse til at lægge hvert element på hver sin chip ville gøre det for dyrt og for langsomt. Derfor kunne det bedre betale sig at bruge pengene på general purpose maskiner. Da der, som tidligere omtalt, i dag kan være adskillige millioner transistorer på en chip er idéen igen meget interessant, da det nu er muligt at trykke hele arrayet på én chip. Årsagen til at løsningen af et lineært ligningssystem, ved hjælp af et systolisk array, kan lade sig gøre er, at det følgende gælder en omskrivning af algoritme 3. på side 11): ' ' 4.1) ' + 4.) " $, " &, ", 4.3), # &, 0 4.4) Hvor og er indgangen i L hhv. U matricen. På figur 4.4 ses et systolisk + array, der kan LU-transformere en matrix med kardinalitet 4. De sekskantede elementer er celler, der er i stand til at beregne det indre produkt: se figur 4.6). Den øverste venstre række i arrayet er drejet 10 grader med uret således, at C vender ind mod arrayet, ligeledes er øverste højre kant drejet 10 grader mod uret. Den øverste runde celle er en såkaldt reciprokcelle, idet den beregner reciprokken af inddata. På figur 4.5 illustreres trin af processen. 3/53

28 Kapitel 4: Arkitektur Sektion 4.4: Massiv parallelisering L U C C C C C C C 0 0 C C C C C C C C a 11 a 31 a 1 a a 1 a 13 a 41 a 3 a 3 a 14 a 4 a 33 a 4 a 43 a 34 a44 Figur 4.4 Et systolisk array [CM80, s.8]. C fra figur 4.6 er markeret så orienteringen af elementerne står frem. 4/53

29 Sektion 4.4: Massiv parallelisering Kapitel 4: Arkitektur u l u 1 0 ) a 3 ) a u l 41 u 1 1) a 4 l 31 u 13 ) a 33 l 1 u 14 1) a 4 a 43 a 34 0 l 3 1 u u l 3 u 3 ) 3) a 4 a ) a a 5 l 41 u13 l 31a u 14 1) 1) a a 5 a 44 Figur 4.5 Et systolisk array i aktion [CM80, s.83]. 5/53

30 Kapitel 4: Arkitektur Sektion 4.4: Massiv parallelisering A C B B C A Figur 4.6 Celle til at beregne indre produkt [CM80, s.73]. Når reciprokcellen modtager et element gør den ting: Sender ud & Øverste venstre kant beregner ligning 4.3 med fra reciprokcellen og resultaterne fra de indre celler. Resultatet sendes & ud af arrayet. Når cellerne i øverste højre kant modtager et element beregnes ligning 4.4. Ydermere beregnes, som sendes ind i arrayet. af arrayet som resultat samt beregner og sender til sin venstre nabo. De indre celler producerer elementerne, der fremgår af ligning 4.. Da ligning er det samme som en LU transformation se algoritme 3. på side 11) gælder, at et systolisk array er i stand til at LU transformere A ifølge argumentationen oven for. På grund af det systoliske arrays opbygning følger det, at LU transformationen forløber i lineær tid og ikke forbruger mere plads end resultatet [CM80]. Arrayet er opbygget af en række simple celler, som kopieres i stort antal og sat sammen i et meget regulært netværk. Således vil det være nemt at automatgenere et systolisk array af en given størrelse. Samtidig findes automatgeneratorer til multiplikationsenheder, der indgår i arrayets celler. Altså vil det være meget nemt at konstruere elektronikken til det systoliske array, med undtagelse af grænseflade til lageret eller omkringliggende maskineri. 6/53

31 Kapitel 5: Opbygning af systolisk array Kapitel 5 Opbygning af systolisk array Flere af de beskrevne arkitekturer kunne være interessante at undersøge i forbindelse med løsning af lineære ligningssystemer. Flere processorer på én chip er en spændende idé, som kan vise at være meget hurtig. Den arkitektur som ser mest lovende ud med hensyn til ydelse, er dog det systoliske array - da det virker besnærende at et system bygget udelukkende med formålet at løse lineære ligningssystemer, må være uhyre effektivt. Dette kapitel vil derfor koncentrere sig om nogle af de problemstillinger, der er med opbygning af et systolisk array. Der omtales i kapitlet en fiktiv klokperiode, denne klokperiode er ikke defineret. En given implementation vil fastlægge klokperioden for det systoliske array. 5.1 Generelle problemer Det systoliske array, som beskrevet i sidste kapitel, har nogle problemer: Arrayet bruger kun 1/3 af sine elementer ad gangen. Ved at lave hver celle som en lille tilstandsmaskine, kan dette udnyttes til at spare en trediedel af cellerne. Arrayet kan ikke håndtere tyndtbefolkede matricer på en smart måde. Der er flere løsninger til dette problem. Der kan vælges simpelthen ikke at tage højde for, tyndtbefolkede matricer og dermed løse dem som almindelig matricer. Denne løsning er ikke optimal, hvis matricen har mange 0-elementer, da der bruges tid på unødige udregninger. Alternativt kan en anden matematisk metode vælges således, at det er muligt at dele løsningen af matricen op i flere underproblemer, der hverisær består af 7/53

32 Kapitel 5: Opbygning af systolisk array Sektion 5.: Lagertilgang mindre lineære ligningssystemer. Arrayet håndterer kun LU-transformation. Det er muligt at bygge systoliske array, der laver matrix multiplikation, matrix addition, tilbagesubstitution mm. svarende til LU faktoriseringen se [CM80]). Dermed er det muligt, at benytte en af de tidligere omtalte arkitekturer, som RAW, til dynamisk at omkonfigurere det systoliske array til at klare alle opgaver. Arrayet skalerer slet ikke. Arrayet er ikke i stand til at løse LU faktoriseringen af et problem, der er større, end det det er bygget til. Derfor kunne hvert af de systoliske celler udbygges til at håndtere tal hver, hvilket ville presse køretiden op på [CM80], hvor og angiver antallet af systoliske celler. Det ville dog ikke lave om på det faktum, at arrayet stadig kun er i stand til at løse en matrix, der har en maksimal størrelse. Hvis et ligningssystem derimod er mindre end størrelsen af det systoliske array, er det trivielt at udvide det til et større ved at tilføje ligegyldige rækker og søjler. Det systoliske array vil dog arbejde med ligegyldige data, hvilket nedsætter effektiviteten. Arrayet tager ikke højde for numerisk stabilitet. Da det ikke er muligt for det systoliske array, at tage højde for pivotering af elementer, kan der opstå problemer med den numeriske stabilitet. En måde at omgå dette på ville være at skifte nøjagtighed at elementerne. Hvis de elementer, der skal regnes på, er f.eks. 64 bit, kunne nøjagtigheden internt i det systoliske array forøges til 18 bit og konvertere tilbage, når beregningen er færdig. Der kan dog selv med større præcision risikeres, at løsningen divergerer. Endvidere ville det ikke være muligt at håndtere diagonalelementer som er nul. 5. Lagertilgang For at udlede køretiden for et systolisk array, er det nødvendigt at udlede hvordan det systoliske array tilgår elementerne. Figur 5.1 viser dette både for læsning og skrivning. Ud fra figuren udledes læsebåndbreddeforbruget for hver iteration. Det viser sig, at tilgangen er meget regulær når man ser på hver tredie iteration. Følgende tabel viser, hvordan båndbreddeforbruget ændrer sig i løbet af beregningen. Tabellen beskriver i kompakt form hvordan båndbreddeforbruget ændrer sig fra begyndelsen over maksimumforbrug til hele ligningssystemet er indlæst i det systoliske array. 8/53

33 Sektion 5.: Lagertilgang Kapitel 5: Opbygning af systolisk array Figur 5.1 Tallene angiver i hvilken iteration, elementerne hentes ind i det systoliske array. Den venstre angiver indlæsning og den højre skrivning af resultat. Den 19. iteration er markeret som den, der forbruger mest båndbredde. 4/3N Elementer krævet Samlet /3N Læse Skrive 0 0 Hældning: 1/3 Hældning: /3 N+1 N 1 N 3N 1 tid/iterationer 4N 1 Figur 5. Lagerbåndbreddeforbrug af det systoliske array under hele processen. 9/53

34 Kapitel 5: Opbygning af systolisk array Sektion 5.: Lagertilgang Iteration %3=0 %3=1 %3= r%3=0 - - r%3=1 - - r%3= N Maks N+3 Maks- N+6 Maks N Det maksimale båndbreddeforbrug afhænger af, hvordan 3 går op i N: Maks For skrivning gælder det nøjagtig spejlvendte båndbreddeforbrug, toppunktet ligger dog 1 iteration længere fremme end læsningens toppunkt se figur 5.). Som det ses af tabellen, kan det nemt forudsiges hvilke elementer, det er nødvendigt at hente, hvilket gør arbejdet meget nemmere for lageret. Samlet leder det frem til, at det systoliske arrays køretid er 4N. % % % 5..1 Buffer Som det tydeligt kan ses af figur 5., ændrer båndbreddeforbruget til lageret sig over tid med en stor maksimumværdi. Det kan være et problem for lager- 30/53

35 Sektion 5.: Lagertilgang Kapitel 5: Opbygning af systolisk array y 4/3N Elementer krævet Samlet h=y y1 hældning 1 Samlet y1 x 1 =N )/3 g x = x 3 x 1 x 3 = 3N N 1= N 3 N/ N+1)/3 Hældning: 1/3 N+1 3N tid/iterationer 4N Figur 5.3 Udsnit af figur 5. med linien markeret. systemet at levere denne mængde data hurtig nok. Derfor kan det med fordel betale sig at benytte en buffer til at udjævne lagertilgangen, således at det effektive båndbreddeforbrug bliver mindre. Hvis båndbredden af lagersystemet er tilstrækkelig til at mætte det systoliske array, er det selvfølgelig ikke nødvendigt med en buffer. Det antages, at læse- og skrivebåndbredden er ens, og at der bruges en samlet læse-/skrivebuffer. Det gennemsnitlige båndbreddeforbrug til lageret med en klokperiode t er da, idet der i løbet af hele processen på tid hentes og skrives ialt elementer: 5.1) Den mængde data, som skal opbevares i bufferen, er den del af figur 5., som ligger over linien som illustreret i figur 5.3. Denne del findes som arealet af en trekant. Koordinatsystemet forskydes i x retningen og i y retningen udsnittet på figur 5.3). Arealet + udregnes / da som: Y forskydes + 5.) 5.3) Skæringen mellem "! og linien med hældning 1 startende i 5.4) 5.5) 5.6) 31/53

36 Kapitel 5: Opbygning af systolisk array Sektion 5.3: Størrelse Arealet er da: 5.7) For et systolisk array af størrelsens skal der bruges en buffer på ca elementer. Med elementer på 64 bit er det ca. 350kB buffer. Hvis en statisk ram bit i gennemsnit fylder ca. 6 transitor/bit, fylder bufferen ca. /- mio. transistorer. 5.3 Størrelse For at sandsynliggøre konstruktionen af et systolisk array indenfor overskuelig fremtid, er det interessant at anslå størrelsen i transistorforbrug. I det følgende antages størrelsen af elementerne til 64 bit. + Hver af de systoliske celler i et array skal kunne udføre en samlet multiplikation og addition. Overordnet kommer hver celle til at bestå af en multiplikations- og additionsenhed og en kontrolenhed. Hver celle i det systoliske array er koblet sammen i et netværk, men forbindelserne er statiske og forbinder kun naboceller. Derfor vil netværket optage et minimalt areal på chippen Systolisk celle Kontrolenheden i hver celle skal være meget simpel og forbruger ganske få transistorer i det samlede billede; det antages, at den kan implementeres på 500 transistorer. Den afgørende faktor for transistorforbruget vil være multiplikations- og additionsenheden. For at opnå maksimal ydelse er det nødvendigt, at det systoliske array kan behandle elementer i samme hastighed, som lageret kan levere dem. Derfor er der brug for en multiplikations- og additionsenhed, der netop er hurtig nok. Den simpleste enhed består af et shift register og en 64 bit adder, som i løbet af 64 klokperioder kan multiplicere tal. I den anden ende af skalaen ligger en enhed, der er i stand til at beregne det samme på én klokperiode, transistorforbruget stiger dog drastisk. For at få et overslag på transistorforbruget af en 64 bit enkelt-klokperiode multiplikationsenhed, benyttes en automatgenerator. VLSI værktøjet Alliance indeholder programmet AMG - Array Multiplier Generator, som generer multiplikatorer til heltal af den simple arraytype. En multiplikator til flydendekommatal adskiller sig ikke væsentligt i størrelse fra en heltalsmultiplikator og derfor ses bort fra det yderligere transistorforbrug. Parametre til AMG er vedlagt som bilag; af pladshensyn er datafiler ikke vedlagt. 3/53

Grundlæggende køretidsanalyse af algoritmer

Grundlæggende køretidsanalyse af algoritmer Grundlæggende køretidsanalyse af algoritmer Algoritmers effektivitet Størrelse af inddata Forskellige mål for køretid Store -notationen Klassiske effektivitetsklasser Martin Zachariasen DIKU 1 Algoritmers

Læs mere

Matematik og FormLineære ligningssystemer

Matematik og FormLineære ligningssystemer Matematik og Form Lineære ligningssystemer Institut for Matematiske Fag Aalborg Universitet 2014 Ligningssystemer og matricer Til et ligningssystem svarer der en totalmatrix [A b] bestående af koefficientmatrix

Læs mere

DATALOGI 1E. Skriftlig eksamen torsdag den 3. juni 2004

DATALOGI 1E. Skriftlig eksamen torsdag den 3. juni 2004 Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI 1E Skriftlig eksamen torsdag den 3. juni 2004 Opgaverne vægtes i forhold til tidsangivelsen herunder, og hver opgaves besvarelse bedømmes

Læs mere

Matematik og Form 3. Rækkereduktion til reduceret echelonfo. Rang og nullitet

Matematik og Form 3. Rækkereduktion til reduceret echelonfo. Rang og nullitet Matematik og Form 3. Rækkereduktion til reduceret echelonform Rang og nullitet Institut for Matematiske Fag Aalborg Universitet 11.2.2013 Reduktion til (reduceret) echelonmatrix Et eksempel Et ligningssystem

Læs mere

Matematisk modellering og numeriske metoder. Lektion 13

Matematisk modellering og numeriske metoder. Lektion 13 Matematisk modellering og numeriske metoder Lektion 3 Morten Grud Rasmussen 3. november 206 Numerisk metode til Laplace- og Poisson-ligningerne. Finite difference-formulering af problemet I det følgende

Læs mere

Det Ingeniør-, Natur- og Sundhedsvidenskabelige basisår Matematik 2A, Forår 2007, Hold 4 Opgave A Kommenteret version

Det Ingeniør-, Natur- og Sundhedsvidenskabelige basisår Matematik 2A, Forår 2007, Hold 4 Opgave A Kommenteret version Det Ingeniør-, Natur- og Sundhedsvidenskabelige basisår Matematik 2A, Forår 2007, Hold 4 Opgave A Kommenteret version Opgaven består af et antal delopgaver Disse er af varierende omfang Der er også en

Læs mere

Matricer og lineære ligningssystemer

Matricer og lineære ligningssystemer Matricer og lineære ligningssystemer Grete Ridder Ebbesen Virum Gymnasium Indhold 1 Matricer 11 Grundlæggende begreber 1 Regning med matricer 3 13 Kvadratiske matricer og determinant 9 14 Invers matrix

Læs mere

Nummeriske Metoder. 1 Indledning. 2 Davidson metoden. Bo Thomsen, juni 2009

Nummeriske Metoder. 1 Indledning. 2 Davidson metoden. Bo Thomsen, juni 2009 Nummeriske Metoder Bo Thomsen, 20050885 25. juni 2009 1 Indledning I denne opgave søges løsninger på et relativt stort egenværdiproblem. I mit tilfælde er dette fremkommet ved at konstruere hamilton matricen

Læs mere

Kursusgang 3 Matrixalgebra fortsat

Kursusgang 3 Matrixalgebra fortsat Kursusgang 3 fortsat - froberg@math.aau.dk http://people.math.aau.dk/ froberg/oecon3 Institut for Matematiske Fag Aalborg Universitet 12. september 2008 1/31 Nødvendige betingelser En nødvendig betingelse

Læs mere

Matematik: Stuktur og Form Lineære ligningssystemer

Matematik: Stuktur og Form Lineære ligningssystemer Matematik: Stuktur og Form Lineære ligningssystemer Martin Raussen Department of Mathematical Sciences Aalborg University 2016 1 / 10 Ligningssystemer og matricer Ligningssystem totalmatrix Til et ligningssystem

Læs mere

Matematik for økonomer 3. semester

Matematik for økonomer 3. semester Matematik for økonomer 3. semester cand.oecon. studiet, 3. semester Planchesæt 2 - Forelæsning 3 Esben Høg Aalborg Universitet 10. september 2009 Institut for Matematiske Fag Aalborg Universitet Esben

Læs mere

Kursusgang 3 Matrixalgebra Repetition

Kursusgang 3 Matrixalgebra Repetition Kursusgang 3 Repetition - froberg@math.aau.dk http://people.math.aau.dk/ froberg/oecon3 Institut for Matematiske Fag Aalborg Universitet 16. september 2008 1/19 Betingelser for nonsingularitet af en Matrix

Læs mere

Kvadratiske matricer. enote Kvadratiske matricer

Kvadratiske matricer. enote Kvadratiske matricer enote enote Kvadratiske matricer I denne enote undersøges grundlæggende egenskaber ved mængden af kvadratiske matricer herunder indførelse af en invers matrix for visse kvadratiske matricer. Det forudsættes,

Læs mere

Ugeseddel 12(10.12 14.12)

Ugeseddel 12(10.12 14.12) Ugeseddel (..) Matematisk Programmering Niels Lauritzen..7 FORELÆSNINGER I ugen. 7. gennemgik vi algoritmer til løsning af heltalsprogrammer ved hjælp af simplex algoritmen. Dette er heltalsprogrammeringsugesedlen

Læs mere

Affine rum. a 1 u 1 + a 2 u 2 + a 3 u 3 = a 1 u 1 + (1 a 1 )( u 2 + a 3. + a 3. u 3 ) 1 a 1. Da a 2

Affine rum. a 1 u 1 + a 2 u 2 + a 3 u 3 = a 1 u 1 + (1 a 1 )( u 2 + a 3. + a 3. u 3 ) 1 a 1. Da a 2 Affine rum I denne note behandles kun rum over R. Alt kan imidlertid gennemføres på samme måde over C eller ethvert andet legeme. Et underrum U R n er karakteriseret ved at det er en delmængde som er lukket

Læs mere

Selvstudium 1, Diskret matematik

Selvstudium 1, Diskret matematik Selvstudium 1, Diskret matematik Matematik på første studieår for de tekniske og naturvidenskabelige uddannelser Aalborg Universitet I dette selfstudium interesserer vi os alene for tidskompleksitet. Kompleksitet

Læs mere

De fire elementers kostbare spejl

De fire elementers kostbare spejl Projekt.6 Lineær algebra moderne og klassisk kinesisk De fire elementers kostbare spejl "Som bekendt anses matematikken for at være en meget vigtig videnskab. Denne bog om matematik vil derfor være af

Læs mere

Forslag til løsning af Opgaver til afsnittet om de naturlige tal (side 80)

Forslag til løsning af Opgaver til afsnittet om de naturlige tal (side 80) Forslag til løsning af Opgaver til afsnittet om de naturlige tal (side 80) Opgave 1 Vi skal tegne alle de linjestykker, der forbinder vilkårligt valgte punkter blandt de 4 punkter. Gennem forsøg finder

Læs mere

Chapter 3. Modulpakke 3: Egenværdier. 3.1 Indledning

Chapter 3. Modulpakke 3: Egenværdier. 3.1 Indledning Chapter 3 Modulpakke 3: Egenværdier 3.1 Indledning En vektor v har som bekendt både størrelse og retning. Hvis man ganger vektoren fra højre på en kvadratisk matrix A bliver resultatet en ny vektor. Hvis

Læs mere

DATALOGI 1E. Skriftlig eksamen fredag den 7. juni 2002

DATALOGI 1E. Skriftlig eksamen fredag den 7. juni 2002 Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI 1E Skriftlig eksamen fredag den 7. juni 2002 Opgaverne vægtes i forhold til tidsangivelsen, og hver opgaves besvarelse bedømmes som en helhed.

Læs mere

Algorithms & Architectures II

Algorithms & Architectures II Algorithms & Architectures II Algorithms & Architectures II Jens Myrup Pedersen Hans Peter Schwefel Kursusholdere Dagens lektion Overordnet mål: At etablere en forståelse for hvordan hardware og hardwarearkitekturer

Læs mere

Repræsentation af tal

Repræsentation af tal Repræsentation af tal DM534 Rolf Fagerberg 1 / 18 Mål Målet for disse slides er at beskrive, hvordan tal repræsenteres som bitmønstre i computere. Dette emne er et uddrag af kurset DM548 Computerarkitektur

Læs mere

Emneopgave: Lineær- og kvadratisk programmering:

Emneopgave: Lineær- og kvadratisk programmering: Emneopgave: Lineær- og kvadratisk programmering: LINEÆR PROGRAMMERING I lineær programmering løser man problemer hvor man for en bestemt funktion ønsker at finde enten en maksimering eller en minimering

Læs mere

Aflevering 4: Mindste kvadraters metode

Aflevering 4: Mindste kvadraters metode Aflevering 4: Mindste kvadraters metode Daniel Østergaard Andreasen December 2, 2011 Abstract Da meget få havde løst afleveringsopgave 4, giver jeg har en mulig (men meget udførlig) løsning af opgaven.

Læs mere

Algebra - Teori og problemløsning

Algebra - Teori og problemløsning Algebra - Teori og problemløsning, januar 05, Kirsten Rosenkilde. Algebra - Teori og problemløsning Kapitel -3 giver en grundlæggende introduktion til at omskrive udtryk, faktorisere og løse ligningssystemer.

Læs mere

Lineære differentialligningers karakter og lineære 1. ordens differentialligninger

Lineære differentialligningers karakter og lineære 1. ordens differentialligninger enote 11 1 enote 11 Lineære differentialligningers karakter og lineære 1. ordens differentialligninger I denne note introduceres lineære differentialligninger, som er en speciel (og bekvem) form for differentialligninger.

Læs mere

Lineære ligningssystemer

Lineære ligningssystemer enote 2 1 enote 2 Lineære ligningssystemer Denne enote handler om lineære ligningssystemer, om metoder til at beskrive dem og løse dem, og om hvordan man kan få overblik over løsningsmængdernes struktur.

Læs mere

Vejledning i udtræk af input-output data fra Statistikbanken

Vejledning i udtræk af input-output data fra Statistikbanken - 1 - Vejledning i udtræk af input-output data fra Statistikbanken Introduktion Input-output tabellerne er konsistente med nationalregnskabet og udarbejdes i tilknytning hertil. De opdateres årligt i december

Læs mere

LiA 5 Side 0. Lineær algebra Kursusgang 5

LiA 5 Side 0. Lineær algebra Kursusgang 5 LiA 5 Side 0 Lineær algebra Kursusgang 5 LiA 5 Side 1 Ved bestemmelse af mindste kvadraters løsning til (store) ligningssystemer vil man gerne anvende en metode der opfylder to krav: antallet af regneoperationer

Læs mere

Projekt 1.4 Tagrendeproblemet en instruktiv øvelse i modellering med IT.

Projekt 1.4 Tagrendeproblemet en instruktiv øvelse i modellering med IT. Projekt 1.4 Tagrendeproblemet en instruktiv øvelse i modellering med IT. Projektet kan bl.a. anvendes til et forløb, hvor en af målsætningerne er at lære om samspillet mellem værktøjsprogrammernes geometriske

Læs mere

Anvendelse af matematik til konkrete beregninger

Anvendelse af matematik til konkrete beregninger Anvendelse af matematik til konkrete beregninger ved J.B. Sand, Datalogisk Institut, KU Praktisk/teoretisk PROBLEM BEREGNINGSPROBLEM og INDDATA LØSNINGSMETODE EVT. LØSNING REGNEMASKINE Når man vil regne

Læs mere

Kursusgang 3 Matrixalgebra Repetition

Kursusgang 3 Matrixalgebra Repetition Kursusgang 3 Repetition - froberg@mathaaudk http://peoplemathaaudk/ froberg/oecon3 Institut for Matematiske Fag Aalborg Universitet 12 september 2008 1/12 Lineære ligningssystemer Et lineært ligningssystem

Læs mere

Ligningssystemer - nogle konklusioner efter miniprojektet

Ligningssystemer - nogle konklusioner efter miniprojektet Ligningssystemer - nogle konklusioner efter miniprojektet Ligningssystemet Ax = 0 har mere end en løsning (uendelig mange) hvis og kun hvis nullity(a) 0 Løsningerne til et konsistent ligningssystem Ax

Læs mere

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Skriftlig Eksamen Algoritmer og Datastrukturer (dads) Datalogisk Institut Aarhus Universitet Mandag den 27. maj 2002, kl. 9.00 13.00 Opgave 1 (25%) Denne opgave handler om multiplikation af positive heltal.

Læs mere

4. Snittets kædebrøksfremstilling og dets konvergenter

4. Snittets kædebrøksfremstilling og dets konvergenter Dette er den fjerde af fem artikler under den fælles overskrift Studier på grundlag af programmet SKALAGENERATOREN (forfatter: Jørgen Erichsen) 4. Snittets kædebrøksfremstilling og dets konvergenter Vi

Læs mere

Note om interior point metoder

Note om interior point metoder MØK 2016, Operationsanalyse Interior point algoritmer, side 1 Note om interior point metoder Som det er nævnt i bogen, var simplex-metoden til løsning af LP-algoritmer nærmest enerådende i de første 50

Læs mere

Rolf Fagerberg. Forår 2012

Rolf Fagerberg. Forår 2012 Forår 2012 Mål for i dag Dagens program: 1 2 3 4 5 6 Forudsætninger: DM502 og DM503 Timer: 50% forelæsninger, 50% øvelser Forudsætninger: DM502 og DM503 Eksamenform: Skriftlig eksamen: Timer: 50% forelæsninger,

Læs mere

Afstande, skæringer og vinkler i rummet

Afstande, skæringer og vinkler i rummet Afstande, skæringer og vinkler i rummet Frank Villa 2. maj 202 c 2008-20. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Indhold

Læs mere

Figur. To ligninger i to ubekendte. Definition Ved m lineære ligninger med n ubekendte forstås. Definition 6.4 Givet ligningssystemet

Figur. To ligninger i to ubekendte. Definition Ved m lineære ligninger med n ubekendte forstås. Definition 6.4 Givet ligningssystemet Oversigt [LA] 6, 7, 8 Nøgleord og begreber Lineære ligningssystemer smængdens struktur Test løsningsmængde Rækkereduktion Reduceret matrix Test ligningssystem Rækkeoperationsmatricer Rangformlen Enten-eller

Læs mere

Rolf Fagerberg. Forår 2013

Rolf Fagerberg. Forår 2013 Forår 2013 Mål for i dag Dagens program: 1 2 3 4 5 6 Forudsætninger: DM536 og DM537 Timer: 50% forelæsninger, 50% øvelser Forudsætninger: DM536 og DM537 Eksamenform: Skriftlig eksamen: Timer: 50% forelæsninger,

Læs mere

Indhold. Maskinstruktur... 3. Kapitel 1. Assemblersprog...3. 1.1 Indledning...3 1.2 Hop-instruktioner... 7 1.3 Input og output...

Indhold. Maskinstruktur... 3. Kapitel 1. Assemblersprog...3. 1.1 Indledning...3 1.2 Hop-instruktioner... 7 1.3 Input og output... Indhold Maskinstruktur... 3 Kapitel 1. Assemblersprog...3 1.1 Indledning...3 1.2 Hop-instruktioner... 7 1.3 Input og output... 9 Kapitel 2. Maskinkode... 13 2.1 Den fysiske maskine... 13 2.2 Assemblerens

Læs mere

LinAlgDat 2014/2015 Google s page rank

LinAlgDat 2014/2015 Google s page rank LinAlgDat 4/5 Google s page rank Resumé Vi viser hvordan lineære ligninger naturligt optræder i forbindelse med en simpel udgave af Google s algoritme for at vise de mest interessante links først i en

Læs mere

dcomnet-nr. 8 Simpel aritmetik på maskinniveau Computere og Netværk (dcomnet)

dcomnet-nr. 8 Simpel aritmetik på maskinniveau Computere og Netværk (dcomnet) dcomnet-nr. 8 Simpel aritmetik på maskinniveau Computere og Netværk (dcomnet) Efterår 2009 1 Simpel aritmetik på maskinniveau I SCO, appendix A, er det beskrevet, hvordan man adderer ikke-negative heltal

Læs mere

Pointen med Funktioner

Pointen med Funktioner Pointen med Funktioner Frank Nasser 0. april 0 c 0080. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Bemærk: Dette er en

Læs mere

Lageradministration. dopsys

Lageradministration. dopsys Lageradministration 1 Lageret i maskinarkitekturen Beregningsenhed, lagre (registre, RAM, disk), ydre enheder 2 Abstraktion over typerne: et hierarki En maskine har flere forskellige lagre Operativsystemet

Læs mere

Afstande, skæringer og vinkler i rummet

Afstande, skæringer og vinkler i rummet Afstande, skæringer og vinkler i rummet Frank Nasser 9. april 20 c 2008-20. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her.

Læs mere

Matematisk modellering og numeriske metoder. Lektion 16

Matematisk modellering og numeriske metoder. Lektion 16 Matematisk modellering og numeriske metoder Lektion 16 Morten Grud Rasmussen 6. november, 2013 1 Interpolation [Bogens afsnit 19.3 side 805] 1.1 Interpolationspolynomier Enhver kontinuert funktion f på

Læs mere

qwertyuiopåasdfghjklæøzxcvbnmqw ertyuiopåasdfghjklæøzxcvbnmqwert yuiopåasdfghjklæøzxcvbnmqwertyui Polynomier opåasdfghjklæøzxcvbnmqwertyuiopå

qwertyuiopåasdfghjklæøzxcvbnmqw ertyuiopåasdfghjklæøzxcvbnmqwert yuiopåasdfghjklæøzxcvbnmqwertyui Polynomier opåasdfghjklæøzxcvbnmqwertyuiopå qwertyuiopåasdfghjklæøzxcvbnmqw ertyuiopåasdfghjklæøzxcvbnmqwert yuiopåasdfghjklæøzxcvbnmqwertyui Polynomier opåasdfghjklæøzxcvbnmqwertyuiopå Kort gennemgang af polynomier og deres egenskaber. asdfghjklæøzxcvbnmqwertyuiopåasd

Læs mere

Computeren inderst inde

Computeren inderst inde Computeren inderst inde DM534 Rolf Fagerberg Bits Information = valg mellem forskellig muligheder. Simpleste situation: valg mellem to muligheder. Kald dem 0 og. Denne valgmulighed kaldes en bit. Bits

Læs mere

DATALOGI 1E. Skriftlig eksamen mandag den 23. juni 2003

DATALOGI 1E. Skriftlig eksamen mandag den 23. juni 2003 Københavns Universitet Naturvidenskabelig Embedseksamen DATALOGI 1E Skriftlig eksamen mandag den 23. juni 2003 Opgaverne vægtes i forhold til tidsangivelsen herunder, og hver opgaves besvarelse bedømmes

Læs mere

To ligninger i to ubekendte

To ligninger i to ubekendte Oversigt [LA] 6, 7 Nøgleord og begreber Løs ligninger Eliminer ubekendte Rækkereduktion Reduceret matrix Enten-eller princippet Test ligningssystem Rækkeoperationsmatricer Beregn invers matrix Calculus

Læs mere

COMPUTER ANATOMI. 4.-5. klasse 23. FEBRUAR 2015 HTX - ROSKILDE

COMPUTER ANATOMI. 4.-5. klasse 23. FEBRUAR 2015 HTX - ROSKILDE COMPUTER ANATOMI 4.-5. klasse 23. FEBRUAR 2015 HTX - ROSKILDE 1 Indholdsfortegnelse Kapitel 1: Opbygning s.2 Kapitel 2: CPU s.3 Kapitel 3: Motherboard s.4 Kapitel 4: Ram s.6 Kapitel 5: Grafikkort s.7 Kapitel

Læs mere

Kapitel 9. Optimering i Microsoft Excel 97/2000

Kapitel 9. Optimering i Microsoft Excel 97/2000 Kapitel 9 Optimering i Microsoft Excel 97/2000 9.1 Indledning... 164 9.2 Numerisk løsning af ligninger... 164 9.3 Optimering under bibetingelser... 164 9.4 Modelformulering... 165 9.5 Gode råd ommodellering...

Læs mere

Teoretiske Øvelsesopgaver:

Teoretiske Øvelsesopgaver: Teoretiske Øvelsesopgaver: TØ-Opgave 1 Subtraktion division i legemer: Er subtraktion division med elementer 0 i legemer veldefinerede, eller kan et element b have mere end ét modsat element -b eller mere

Læs mere

DesignMat Lineære ligningssystemer og Gauss-elimination

DesignMat Lineære ligningssystemer og Gauss-elimination DesignMat Lineære ligningssystemer og Gauss-elimination Preben Alsholm Uge Forår 010 1 Lineære ligningssystemer og Gauss-elimination 11 Om talrummet R n Om talsæt bestående af n tal R n er blot mængden

Læs mere

LINALG JULENØD 2013 SUNE PRECHT REEH

LINALG JULENØD 2013 SUNE PRECHT REEH LINALG JULENØD 203 SUNE PRECHT REEH Resumé I denne julenød skal vi se på lineær algebra for heltallene Z Hvad går stadig godt? og hvad går galt? I de reelle tal R kan vi for ethvert a 0 altid finde R som

Læs mere

Kapitel 2 Tal og variable

Kapitel 2 Tal og variable Tal og variable Uden tal ingen matematik - matematik handler om tal og anvendelse af tal. Matematik beskæftiger sig ikke udelukkende med konkrete problemer fra andre fag, og de konkrete tal fra andre fagområder

Læs mere

Theory Danish (Denmark) Ikke-lineær dynamik i elektriske kredsløb (10 point)

Theory Danish (Denmark) Ikke-lineær dynamik i elektriske kredsløb (10 point) Q2-1 Ikke-lineær dynamik i elektriske kredsløb (10 point) Læs venligst de generelle instruktioner i den separate konvolut før du starter på opgaven. Introduktion Bi-stabile ikke-lineære halvlederkomponenter

Læs mere

Projekt 7.4 Kvadratisk programmering anvendt til optimering af elektriske kredsløb

Projekt 7.4 Kvadratisk programmering anvendt til optimering af elektriske kredsløb Projekt 7.4 Kvadratisk programmering anvendt til optimering af elektriske kredsløb Indledning: I B-bogen har vi i studieretningskapitlet i B-bogen om matematik-fsik set på parallelkoblinger af resistanser

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Introduktion til kurset Rolf Fagerberg Forår 2019 1 / 20 Hvem er vi? Underviser: Rolf Fagerberg, Institut for Matematik og Datalogi (IMADA) Forskningsområde: algoritmer

Læs mere

Fagets IT Introduktion til MATLAB

Fagets IT Introduktion til MATLAB Fagets IT Introduktion til MATLAB Mads G. Christensen mgc@kom.auc.dk Afdeling for Kommunikationsteknologi, Aalborg Universitet. MATLAB 2002 p.1/28 Kursusoversigt 1. Introduktion, matrix-indeksering, -operationer

Læs mere

Michael Jokil 11-05-2012

Michael Jokil 11-05-2012 HTX, RTG Det skrå kast Informationsteknologi B Michael Jokil 11-05-2012 Indholdsfortegnelse Indledning... 3 Teori... 3 Kravspecifikationer... 4 Design... 4 Funktionalitet... 4 Brugerflade... 4 Implementering...

Læs mere

Lineær Algebra. Lars Hesselholt og Nathalie Wahl

Lineær Algebra. Lars Hesselholt og Nathalie Wahl Lineær Algebra Lars Hesselholt og Nathalie Wahl Oktober 2016 Forord Denne bog er beregnet til et første kursus i lineær algebra, men vi har lagt vægt på at fremstille dette materiale på en sådan måde,

Læs mere

Tietgenskolen - Nørrehus. Data warehouse. Database for udviklere. Thor Harloff Lynggaard DM08125

Tietgenskolen - Nørrehus. Data warehouse. Database for udviklere. Thor Harloff Lynggaard DM08125 Tietgenskolen - Nørrehus Data warehouse Database for udviklere Thor Harloff Lynggaard DM08125 Juni 2010 Indhold Beskrivelse... 3 Data warehouse... 3 Generelt... 3 Sammenligning... 3 Gode sider ved DW...

Læs mere

Acceleration af Kollisionsdetektion på Parallelle Computerarkitekturer

Acceleration af Kollisionsdetektion på Parallelle Computerarkitekturer af Kollisionsdetektion på Parallelle Computerarkitekturer Speciale Andreas Rune Fugl anfug03@student.sdu.dk Thomas Frederik Kvistgaard Ellehøj ththy03@student.sdu.dk Datateknologi ved Teknisk Fakultet

Læs mere

Målet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt.

Målet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt. Merging og hashing Mål Målet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt. Dette emne er et uddrag af kurset DM507 Algoritmer og datastrukturer (2. semester). Mål

Læs mere

Lineære ligningssystemer

Lineære ligningssystemer enote 6 1 enote 6 Lineære ligningssystemer Denne enote handler om lineære ligningssystemer, om metoder til at beskrive dem og løse dem, og om hvordan man kan få overblik over løsningsmængdernes struktur.

Læs mere

Flere ligninger med flere ukendte

Flere ligninger med flere ukendte Flere ligninger med flere ukendte Frank Villa 14. februar 2012 c 2008-2011. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her.

Læs mere

Andengradsligninger. Frank Nasser. 12. april 2011

Andengradsligninger. Frank Nasser. 12. april 2011 Andengradsligninger Frank Nasser 12. april 2011 c 2008-2011. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Bemærk: Dette

Læs mere

Integer Factorization

Integer Factorization Integer Factorization Per Leslie Jensen DIKU 2/12-2005 kl. 10:15 Overblik 1 Faktorisering for dummies Primtal og aritmetikkens fundamentalsætning Lille øvelse 2 Hvorfor er det interessant? RSA 3 Metoder

Læs mere

Introduktion til DM507

Introduktion til DM507 Introduktion til DM507 Rolf Fagerberg Forår 2017 1 / 20 Hvem er vi? Underviser: Rolf Fagerberg, IMADA Forskningsområde: algoritmer og datastrukturer 2 / 20 Hvem er vi? Underviser: Rolf Fagerberg, IMADA

Læs mere

DM13-3. Obligatorisk opgave E.05 Håndoptimering af SPARC assembler-kode

DM13-3. Obligatorisk opgave E.05 Håndoptimering af SPARC assembler-kode - 3. Obligatorisk opgave E.05 Håndoptimering af SPARC assembler-kode Jacob Aae Mikkelsen - 191076 12. december 2005 1 Indhold 1 Opgave beskrivelse 2 2 Muligheder for optimering 2 2.1 efter branch.........................

Læs mere

Introduktion til Laplace transformen (Noter skrevet af Nikolaj Hess-Nielsen sidst revideret marts 2013)

Introduktion til Laplace transformen (Noter skrevet af Nikolaj Hess-Nielsen sidst revideret marts 2013) Introduktion til Laplace transformen (oter skrevet af ikolaj Hess-ielsen sidst revideret marts 23) Integration handler ikke kun om arealer. Tværtimod er integration basis for mange af de vigtigste værktøjer

Læs mere

Vektorer og lineær regression

Vektorer og lineær regression Vektorer og lineær regression Peter Harremoës Niels Brock April 03 Planproduktet Vi har set, at man kan gange en vektor med et tal Et oplagt spørgsmål er, om man også kan gange to vektorer med hinanden

Læs mere

Oversigt [LA] 6, 7, 8

Oversigt [LA] 6, 7, 8 Oversigt [LA] 6, 7, 8 Nøgleord og begreber Lineære ligningssystemer Løsningsmængdens struktur Test løsningsmængde Rækkereduktion Reduceret matrix Test ligningssystem Rækkeoperationsmatricer Rangformlen

Læs mere

Rolf Fagerberg. Forår 2015

Rolf Fagerberg. Forår 2015 Forår 2015 Dagens program 1 2 3 4 5 Underviser:, IMADA Forskningsområde: algoritmer og datastrukturer Deltagere: BA i Datalogi BA i Software Engineering BA i Matematik-Økonomi BA i Anvendt Matematik BA

Læs mere

Vektorer og lineær regression. Peter Harremoës Niels Brock

Vektorer og lineær regression. Peter Harremoës Niels Brock Vektorer og lineær regression Peter Harremoës Niels Brock April 2013 1 Planproduktet Vi har set, at man kan gange en vektor med et tal. Et oplagt spørgsmål er, om man også kan gange to vektorer med hinanden.

Læs mere

Andengradsligninger. Frank Nasser. 11. juli 2011

Andengradsligninger. Frank Nasser. 11. juli 2011 Andengradsligninger Frank Nasser 11. juli 2011 2008-2011. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Indhold 1 Introduktion

Læs mere

Matrx-vektor produkt Mikkel H. Brynildsen Lineær Algebra

Matrx-vektor produkt Mikkel H. Brynildsen Lineær Algebra Matrx-vektor produkt [ ] 1 2 3 1 0 2 1 10 4 Rotationsmatrix Sæt A θ = [ ] cosθ sinθ sinθ cosθ At gange vektor v R 2 med A θ svarer til at rotere vektor v med vinkelen θ til vektor w: [ ][ ] [ ] [ ] cosθ

Læs mere

Bedste rette linje ved mindste kvadraters metode

Bedste rette linje ved mindste kvadraters metode 1/9 Bedste rette linje ved mindste kvadraters metode - fra www.borgeleo.dk Figur 1: Tre datapunkter og den bedste rette linje bestemt af A, B og C Målepunkter og bedste rette linje I ovenstående koordinatsystem

Læs mere

Rolf Fagerberg. Forår 2014

Rolf Fagerberg. Forår 2014 Forår 2014 Mål for i dag Dagens program: 1 2 3 4 5 6 Forudsætninger: Format: Programmering og Diskret matematik I (forelæsninger), TE (øvelser), S (arbejde selv og i studiegrupper) Eksamenform: Skriftlig

Læs mere

Newton-Raphsons metode

Newton-Raphsons metode Newton-Raphsons metode af John V. Petersen Indhold Indledning: Numerisk analyse og Newton-Raphsons metode... 2 Udlede Newtons iterations formel... 2 Sætning 1 Newtons metode... 4 Eksempel 1 konvergens...

Læs mere

Projekt 3.7. Pythagoras sætning

Projekt 3.7. Pythagoras sætning Projekt 3.7. Pythagoras sætning Flere beviser for Pythagoras sætning... Bevis for Pythagoras sætning ved anvendelse af ensvinklede trekanter... Opgave 1: Et kinesisk og et indisk bevis for Pythagoras sætning...

Læs mere

Rolf Fagerberg. Forår 2015

Rolf Fagerberg. Forår 2015 Forår 2015 Dagens program 1 2 3 4 5 Underviser:, IMADA Forskningsområde: algoritmer og datastrukturer Underviser:, IMADA Forskningsområde: algoritmer og datastrukturer Deltagere: BA i Datalogi BA i Software

Læs mere

Fejlkorligerende køder Fejlkorrigerende koder

Fejlkorligerende køder Fejlkorrigerende koder Fejlkorligerende køder Fejlkorrigerende koder Olav Geil Skal man sende en fødselsdagsgave til fætter Børge, så pakker man den godt ind i håb om, at kun indpakningen er beskadiget ved modtagelsen. Noget

Læs mere

π er irrationel Frank Nasser 10. december 2011

π er irrationel Frank Nasser 10. december 2011 π er irrationel Frank Nasser 10. december 2011 2008-2011. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Indhold 1 Introduktion

Læs mere

Repræsentation af tal

Repræsentation af tal Repræsentation af tal DM534 Rolf Fagerberg Bitmønstre 01101011 0001100101011011... Bitmønstre skal fortolkes for at have en betydning: Tal (heltal, decimaltal (kommatal)) Bogstaver Computerinstruktion

Læs mere

Løsning af simple Ligninger

Løsning af simple Ligninger Løsning af simple Ligninger Frank Nasser 19. april 2011 c 2008-2011. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Bemærk:

Læs mere

Chapter 5: Simplex metoden til løsning af LP. -> max problem alle uligheder af typen ì alle højresider ikke-negative alle variable ikke-negative

Chapter 5: Simplex metoden til løsning af LP. -> max problem alle uligheder af typen ì alle højresider ikke-negative alle variable ikke-negative Chapter 5: Simplex metoden til løsning af LP Formål: Udvikling af generel metode til løsning af enhver type LP. Metoden udvikles først for LP i standard form -> max problem alle uligheder af typen ì alle

Læs mere

Håndtering af regnvand i Nye

Håndtering af regnvand i Nye Resume: Håndtering af regnvand i Nye Grønne tage og bassiner Jasper H. Jensen (jhje08@student.aau.dk) & Carina H. B. Winther (cwinth08@student.aau.dk) I projektet fokuseres der på, hvordan lokal afledning

Læs mere

Fraktaler. Mandelbrots Mængde. Foredragsnoter. Af Jonas Lindstrøm Jensen. Institut For Matematiske Fag Århus Universitet

Fraktaler. Mandelbrots Mængde. Foredragsnoter. Af Jonas Lindstrøm Jensen. Institut For Matematiske Fag Århus Universitet Fraktaler Mandelbrots Mængde Foredragsnoter Af Jonas Lindstrøm Jensen Institut For Matematiske Fag Århus Universitet Indhold Indhold 1 1 Komplekse tal 3 1.1 Definition.......................................

Læs mere

Lineære 1. ordens differentialligningssystemer

Lineære 1. ordens differentialligningssystemer enote enote Lineære ordens differentialligningssystemer Denne enote beskriver ordens differentialligningssystemer og viser, hvordan de kan løses enoten er i forlængelse af enote, der beskriver lineære

Læs mere

Repræsentation af tal

Repræsentation af tal Repræsentation af tal DM534 Rolf Fagerberg Mål Målet for disse slides er at beskrive, hvordan tal repræsenteres som bitmønstre i computere. Dette emne er et uddrag af kurset DM548 Computerarkitektur og

Læs mere

BILAG. til. Kommissionens delegerede forordning

BILAG. til. Kommissionens delegerede forordning EUROPA- KOMMISSIONEN Bruxelles, den 12.10.2015 C(2015) 6823 final ANNEX 1 PART 6/11 BILAG til Kommissionens delegerede forordning om ændring af Rådets forordning (EF) nr. 428/2009 om en fællesskabsordning

Læs mere

3. Om skalamønstrene og den indfoldede orden

3. Om skalamønstrene og den indfoldede orden Dette er den tredje af fem artikler under den fælles overskrift Studier på grundlag af programmet SKALAGENERATOREN (forfatter: Jørgen Erichsen) 3. Om skalamønstrene og den indfoldede orden Lad os begynde

Læs mere

\ \ Computerens Anatomi / /

\ \ Computerens Anatomi / / HTX Roskilde - mat-it-prog, 1.4 \ \ Computerens Anatomi / / Introduktion En PC ( personlige computer ) eller computer er bygget op af forskellige komponenter. Vi vil hermed gennemgå størstedelen af computerens

Læs mere

CPUer og maskinkode DM534. Rolf Fagerberg

CPUer og maskinkode DM534. Rolf Fagerberg CPUer og maskinkode DM534 Rolf Fagerberg CPUers opbygning En CPU er bygget op af elektriske kredsløb (jvf. sidste forelæsning), som kan manipulere bits. En CPU manipulerer flere bits ad gangen, deres antal

Læs mere

Chapter 7: Transport-, assignment- & transshipmentproblemer

Chapter 7: Transport-, assignment- & transshipmentproblemer Chapter 7: Transport-, assignment- & transshipmentproblemer 1) Formulering af de 3 problemtyper 2) Algoritme for det balancerede transportproblem 3) Algoritme for assignmentproblemet Samtlige 3 problemtyper

Læs mere

Lineære ligningssystemer og Gauss-elimination

Lineære ligningssystemer og Gauss-elimination Lineære ligningssystemer og Gauss-elimination Preben Alsholm 18 februar 008 1 Lineære ligningssystemer og Gauss-elimination 11 Et eksempel Et eksempel 100g mælk Komælk Fåremælk Gedemælk Protein g 6g 8g

Læs mere

Computerarkitektur. - en introduktion til computerarkitektur med LINDA

Computerarkitektur. - en introduktion til computerarkitektur med LINDA Computerarkitektur - en introduktion til computerarkitektur med LINDA faraz@butt.dk Faraz Butt mads@danquah.dk Mads Danquah doktor@dyregod.dk Ulf Holm Nielsen Roskilde Universitetscenter Naturvidenskabelig

Læs mere