Parallellisering av Coin3D for Systems in Motion av Sveinung Thunes.

Slides:



Advertisements
Liknende presentasjoner
Memento Object Behavioral Design Pattern. Lagre og hente tilstander • Et system inneholder ofte mekanismer som trenger gjenbruk av tilstander • Memento.
Advertisements

EVurdering Et webbasert system for elektronisk vurdering av søknader om forskningsmidler Kort presentasjon av elektronisk system for vurdering av forskningssøknader.
Slik kommer du til «Personverninnstillinger»: Logg inn på Facebook.
Funksjonalitetsbeskrivelse
Høgskolen i Oslo - GM Vær metodisk  Definer og forstå problemet  Spesifiser hva du har av hardware  Lag en prototyp av brukersnittet  Design.
@ TDT4120 Algoritmer og datastrukturer Trær og søking i dem, samt litt diverse emner Åsmund Eldhuset asmunde idi.ntnu.no.
TDT4120 Algoritmer og datastrukturer Trær og søking i dem, samt litt diverse emner Kristian Veøy
Sikkerhet - bakgrunn og introduksjon til kryptosystemer
Operativsystemer.  En prosess kan sees på som et stykke arbeid som skal utføres på datamaskinen.  Ofte vil det være flere prosesser/tråder på datamaskinen.
Begrenset redigering “Klubbjournalister” For web ansvarlig klubb.
MS kap 61 Nye trender  Vi skal se på  Virtualisering  ”Cloud computing”
Ideutvikling - Problemdefinisjonen. Hva gjør de erfarne problemløserne? •Samler og analyserer informasjon og data •Snakker med mennesker som kjenner problemet.
Kryptografi og nettverkssikkerhet
@ TDT4120 Algoritmer og datastrukturer Trær og søking i dem, samt litt diverse emner Åsmund Eldhuset asmunde idi.ntnu.no.
1 Øvingsforelesning Andreas Knudsen Nils Grimsmo
Objektorientert utforming In 140 Forelesning Nr 13 Sommerville kap 12 – del 2.
Utført av: Jeppe Flensted HiST Vår 2009
Algoritmiske metoder Innhold: Effektivitetsbetraktninger Programmeringsteknikker Datastrukturer Algoritmer tilknyttet datastrukturene Lærebok: Hafting/Ljosland:
LocMoc : Avatar 3D – Visualisering av menneskelige bevegelser ved bruk av Java og Coin3D. En presentasjon av: Øivind Hoff Johansen og Jon Kåre Sørensen.
Gå inn på denne internettadressen:
Jæger: Robuste og sikre systemer INF150 Programmering torsdag 31.8 Kapittel 3: Grunnlag for programmering i Visual Basic.
Læring og tenkning Systemutvikling er læring Gjensidig respekt og samarbeid Følge en konkret oppskrift Velge blant flere oppskrifter Nå målet uten oppskrift,
Strukturerende elementer i UML
I dag snakker vi om: Brukergrensesnitt med kvalitet Bruksegenskaper Normans 7 stadier Testing med papirprototyp.
Combining Compound Conceptual User Interface Components with Modelling Patterns - a Promising Direction for Model-based Cross-platform User Interface Development.
Gruppe 3 – Presentasjon 2 Henning Kristiansen, Mats Lindh, André Hauge og Vegard Simensen.
DEKOMPONERING OG MODULARITET ~Gruppe 4~. Gjennomgang Designtyper/kriterier innen dekomponering Dekomponeringsspesifikasjon Strukturert og objektorientert.
Singleton & Adapter Pattern Gruppe 3. Singleton Pattern Sørger for at en klasse kun kan ha en instans Vanligvis implementert med globale variabler –Singleton.
Teknikker for å bedre design- prosessen -Design by contract -Prototyping design -Fault-tree analyses.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Flash og ActionScript - Nye muligheter Jostein Nordengen.
INF 295 forelesning 14 - kap 8 Disjunkt mengde ADT Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 9a Søketrær Hans Fr. Nordhaug (Ola Bø)
INF 295 Forelesning 16 - kap 9 Minimalt spenntre og korteste vei i grafer Hans Fredrik Nordhaug (Ola Bø)
INF 295 Forelesning 17 - kap 9 Korteste vei i grafer Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 4 Algoritmeanalyse Hans Fr. Nordhaug (Ola Bø)
INF 295 forelesning 13 - kap 6 Andre prioritetskøer Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 9b Balanserte (binære) trær Hans Fr. Nordhaug.
INF 295 Algoritmer og datastrukturer Forelesning 10 Invarianter og Hashing Hans Fr. Nordhaug (Ola Bø)
Hovedfagspresentasjon
eSøknad - Et webbasert system for elektronisk innlevering av søknader om forskningsmidler. Kort presentasjon av endinger i forbindelse med søknad.
ESøknad - Et webbasert system for elektronisk innlevering av søknader om forskningsmidler Kort presentasjon av systemet beregnet på prosjektledere/forskere.
CARISMA Context-Aware Reflective Middleware System for Mobile Applications.
INF 4130 Eksamen 2008 Gjennomgang.
1 Java Database Connectivity (JDBC) Norvald H. Ryeng
Objektorientert utforming In 140 Sommerville kap. 12.
Opplæring: Pålogging Prosedyre for logge på og av, låse og åpne PC’er DatoVersjonForfatterGodkjent avEndringer utført André S. MathiesenTore.
En heuristisk evaluering avRelaxation Gjort av: ● Espen Solberg ● Geir Normann ● Leif Morten Kofoed ● Tommy Jansson.
Trådløs kulturby Andy Pham Damir Nedic Amund Letrud Ruben Vijayaroopan Sivarajah Espen Olsen.
Android-Programmering Våren Oversikt Ytelse vs responsivitet Strategier for og opprettholde responsiviteten Tråder Asynchronous Task.
Sorterings- Algoritmer Algoritmer og Datastrukturer.
Objektorientert design
LOG530 Distribusjonsplanlegging
Objektorientert design In 140 Sommerville kap 12 – del 1.
Kapittel 12 Samlingar Samlingar og datastrukturar Ei samling (collection) blir brukt til å oppbevare og handtere andre objekt ArrayList – klassen.
PRESENTASJON AV FORSLAG
Forprosjekt – nytt skoleadministrativt system Vedlegg 6 – Prosessbeskrivelse Aktivitetsskolen.
ESøknad - Et webbasert system for elektronisk innlevering av søknader om forskningsmidler Kort presentasjon av systemet beregnet på prosjektledere/forskere.
INF-1400 Obligatorisk Oppgave 3 Mayhem Clone
1 Øvingsforelesning 4 Topologisk sortering Minimale spenntrær Håkon Jacobsen
Android-Programmering Våren Oversikt Ytelse vs responsivitet Strategier for og opprettholde responsiviteten Tråder Asynchronous Task.
I den prosessorienterte organisasjon spør man
ESøknad - Et webbasert system for elektronisk innlevering av søknader om forskningsmidler Kort presentasjon av systemet beregnet på prosjektledere/forskere.
Nye trender Vi skal se på Virtualisering ”Cloud computing”
ESøknad - Et webbasert system for elektronisk innlevering av søknader om forskningsmidler Kort presentasjon av systemet beregnet på prosjektledere/forskere.
Eric Jul PSE, Inst. for informatikk
IN3030 – Effektiv parallellprogrammering Uke 1 2. del, våren 2019
Utskrift av presentasjonen:

Parallellisering av Coin3D for Systems in Motion av Sveinung Thunes

Coin3D  Høynivå objektorientert bibliotek over OpenGL for rask utvikling av 3D grafikk  Benytter scenegrafer som datastruktur  API fullt ut kompatibel med Open Inventor fra SGI  Dokumentasjon i The Inventor Mentor (grunnleggende bruk) og The Inventor Toolmaker (muligheter for egne utvidelser)

Dagens situasjon  Utviklet for enkelttråds applikasjoner –API tilbyr global synkronisering av tråder –Ikke støtte for samtidige lese- og skrivetråder, selv om dette skjer på uavhengige data –Ingen mekanisme for å definere dataavhengigheter eller å internt skille mellom uavhengige scenegrafer  Flerprosessor datamaskiner blir nå standard, så dette er ikke lenger akseptabelt

Utfordringer (1)  Muliggjøre samtidige tråder, ikke bare samtidige lesetråder –Ta hensyn til dataavhengigheter –Effektivt, utelukker utstrakt bruk av kostbare synkroniseringsmekanismer (mutex og låser) –Fleksibelt mht kjøretid, balansere ekstra kostnad per prosessor mot total ytelse –Fleksibelt mht minnebruk, balansere total minnebruk mot ytelse –Generell løsning, unngå spesialtilfeller

Utfordringer (2)  Minimale endringer i dagens API –Coin er i utstrakt bruk, endringer i API kan være kostbart –Løsning kan tilby ekstra funksjonalitet, men må ikke kreve at denne tas i bruk –Bør ikke kreve spesialkunnskaper for å kunne benytte nye mekanismer for synkronisering  Intern implementasjon –Støtter full parallellisering, men har potensielle flaskehalser

Oppbygning av scenegrafer  Gruppenoder –Lister av undernoder som beskriver grafens struktur –Gruppenoder kan dele undernoder  Egenskapsnoder  Transformasjonsnoder  Geometrinoder

Eksempel scenegraf Gruppenode, separator Gruppenode, delt Egenskap Transformasjon Geometri

Uttegning av scenegraf  Scenegraf gjennomgås venstre-høyre, dybde først  Gruppenoder endrer ikke tilstand for OpenGL, men sender videre til undernoder  Andre noder som behandles underveis endrer tilstand og matriser i OpenGL  Geometrinoder som behandles tegnes med gjeldende tilstand og matriser  Andre operasjoner utføres tilsvarende

Dataavhengigheter (1)  Gruppenoder i samme scenegraf må ikke endres uavhengig av hverandre –Når en operasjon har startet på en scenegraf må ikke lister med undernoder endres på noen måte –Når en tråd får lese- eller skrivetilgang til en gruppenode må den få samme tilgang til alle gruppenoder i scenegrafen

Dataavhengigheter (2)  Data i noder kan være avhengig av hverandre –Data innkapsles i feltklasser –Feltklasser kan kobles sammen slik at endringer i et felt skal føre endringer i et eller flere andre felt –Dersom en tråd har lese- eller skrivetilgang til en node i en slik gruppe felt må den ha samme tilgang til alle nodene i gruppen

Løsningsmetoder  Låsbar baseklasse for noder –Per objekt låsing av noder  Delte låsobjekter gjennom låsgrensesnitt –Låsing av nodegrupper med dataavhengigheter  Ulike implementasjoner av låsobjekter –Mutex, lese-skrive lås, bufferlås  Hurtiglåsing av delte låsobjekter –Låse effektivt, frigjøre hurtig

Delte låsobjekter Alle gruppenoder må dele samme lås Delt lås Unik lås

Implementasjoner låsobjekter  Standardlåser –Mutex –Lese-Skrive lås  Bufferlås –Benytter separate lese- og skrivefelt for noder –Endringer på data kan gjøres uten å blokkere lesetråder –Endringer gjøres synlige ved å bytte gjeldende lese- og skrivefelt –Mindre blokkering av tråder, økt minnebruk

Bufferlås  A.readLock –Leser fra felt[0]  A.readUnlock  B.readLock –Leser fra felt[1]  B.writeLock –Skriver til felt[1]  B.writeUnlock –Bufferlås bytter gjeldende lese- og skrivefelt for noder  A.writeLock –Felt[0] ikke klar for skriving  A.writeLock –Tråd frigjøres og skriver til felt[0] BA Bufferlås Noder i scenegraf Lesetråd Skrivetråd felt[]

Hurtiglåsing  Operasjoner på scenegraf –Per node låsing er for kostbart, låsing skjer kun én gang per faktiske lås –Alle avhengige noder må holdes låst til de ikke lenger skal behandles, ellers vil ikke resultatet bli korrekt –Låser må frigjøres så fort som mulig for å frigjøre eventuelle blokkerte tråder  Disse kravene er sammenfallende og kan innfris ved å la låsobjekter vite hvor mange noder som er tilknyttet dem

Eksempel hurtiglåsing Låser Låser og frigjør Låser Frigjør Låser Frigjør

Videre  Dokumentere ytelse for ulike bruksområder og vurdere egnet bruk for ulike teknikker  Påpeke situasjoner som kan føre til problemer  Vurdere hvordan scenegrafer skal organiseres dersom bruker ikke ønsker å overstyre dette (de fleste vil nok ikke det)