PARALLELLISERING AV ALGORITMER PROCESSORER FÖR FLERKÄRNIGA
|
|
- Fredrik Hansson
- för 9 år sedan
- Visningar:
Transkript
1 PARALLELLISERING AV ALGORITMER FÖR FLERKÄRNIGA PROCESSORER Johan Gustafsson Gustaf David Hallberg Per Hallgren Wuilbert Lopez 1/7
2 Innehållsförteckning Table of Contents Innehållsförteckning Bakgrund Projektbeskrivning Syfte Problem Avgränsningar Metod och genomförande Analys Parallellisering Verifiering Testning Tidsplan...7 2/7
3 1 Bakgrund Datortillverkning utmärks av två saker, prestanda och design. Kunden måste tilltalas av produkten, datorn, och samtidigt måste nya datorer prestera bättre än föregångarna. Vad gäller prestandaförbättring är minne (RAM) och processor centrala begrepp. I vårt projekt kommer vi inte att prata särskilt mycket om minne annat än om det är relevant för vår förståelse av en specifik algoritm. Grunden till vårt projekt är att aktörer inom processorindustrin under det senaste decenniet har varit tvungna att sätta samman flera processorkärnor på samma chip istället för att producera snabbare processorer. Detta då höga klockfrekvenser (processorns arbetshastighet) innebär höga temperaturer, och att tempereraturerna i chippen blivit en begränsing. Man kan överkomma denna begränsning genom exotiska kylmetoder men kostnaden för kunden blir oacceptabel. Idag återfinns processorer med flera kärnor inte bara i industrisammanhang utan i gemene mans persondator varför man idag bör se hur dessa resurser kan nyttjas på bästa sätt. Ett traditionellt program skrivs som en steg för steg instruktion, dvs seriellt. Program bör inte längre skrivas så att de exekveras seriellt. Istället bör man i sitt arbete som programmerare ta med i beräkningen att det finns mer än en kärna på den dator som ska köra det färdiga programmet och därmed skriva programmet med parallelliserad kod. Med parallelliserad kod kan delar av programmet köras på skilda processorkärnor oberoende av andra delar för att sedan låta resultat från de olika kärnorna sammanställas till det slutgiltiga resultatet. Parallelliserad kod kan därmed utföras snabbare än sekventiell kod (i en miljö med flera processorkärnor) med en faktor N, där N är lika med antalet processorkärnor. 3/7
4 2 Projektbeskrivning 2.1 Syfte Vi ämnar att för en person utan datorvetenskapliga kunskaper visa hur parallellisering av sekventiella algoritmer på programspråknivå bättre kan nyttja dagens processorresurser. Fokus kommer ligga på en snabbare exekvering av terminerande algoritmer, det vill säga finita beräkningar. Det ideala målet är en linjär hastighetsökning som skalar med antalet kärnor. Kan man inte uppnå detta ska man ändå sträva efter detta mål i så stor utsträckning som möjligt. Rapporten avser även att redogöra för de svårigheter som föreligger vad gäller parallellisering samt generella metoder och riktlinjer för algoritmanalys. 2.2 Problem Vi vill parallellisera en beräkningsintensiv algoritm som i regel körs över en för användaren märkbar tidsrymd. Det är viktigt att användaren upplever en märkbar prestandaökning varför vi finner det fördragbart att algoritmens arbetsprocess förmedlas visuellt. Exempelvis har vi haft bildredigeringsprogrammet GIMPs olika grafikfilter i åtanke; neonfilter, ta bort röda ögon filter, serietidningsfilter, och så vidare. Under uppgiftens gång kommer vi behöva analysera algoritmerna i fråga. Analysen kommer till stor del att gå ut på profilering. Profilering innebär att man mäter vilka delar av koden som används mest och vilka som tar mest tid. Detta mynnar sedan ut i en uppdelning av algoritmen där varje enskild del sedan var för sig kan analyseras vidare för att bestämma hur bäst man utför parallelliseringen. Viktigt att notera är att programmeringens behovsträd fortfarande måste iaktas. Först och främst måste ett program ge korrekt resultat. Först därefter är kodens prestanda av intresse. Uppgiften vi föresatt oss är i sin essens att ta befintlig (och korrekt) kod och se till att den delas upp på mer än en processor. Vi räknar med att vi kommer få korrekthetsproblem liknande de man får närhelst flera programprocesser är igång samtidigt på en enkärnig dator. Problem såsom låsning eller korrekt uppdelning av gemensamma minnesrymder. 2.3 Avgränsningar Eftersom vi arbetar med algoritmerna på en programspråksnivå så kommer vi inte arbeta alltför hårdvarunära i hur algoritmerna kan köras snabbare, då skulle det kunna handla om att optimera minnescaching eller generella metoder för att utvidga godtyckliga algoritmer i hårdvara till flera kärnor så som det för några år sedan ryktades att företaget AMD arbetade med 1. Vi kommer under projektets gång inte sätta oss in i teorin bakom de algoritmer vi jobbar mot, mer än så mycketuntitled spreadsheet som krävs för att göra en övergripande analys av deras förlopp och isolera kritiska delar som vi kan bryta ut. 1http:// 4/7
5 3 Metod och genomförande Vi har beslutat att exemplifiera hur parallelisering av ett program förbättrar dess prestanda genom att bearbeta simuleringsmiljön OpenFOAM som är ett projekt med öppen källkod skrivet i programspråket C++. OpenFOAM är ett mycket generellt verktyg för att utföra simuleringar. OpenFOAM ämnar att isolera programmering så mycket som möjligt för att underlätta för eventuella fysiker, kemister och mattematiker som skulle vilja utföra en simulering. Varje simuleringsproblem implementeras som ett fristående program, och det finns inga kopplingar mellan olika simuleringsproblem utan bara mellan varje problem och OpenFOAMs kärna. Vi kommer att dela upp OpenFOAM i flera delar så att vi kan bearbeta kod relevant för olika simuleringsprogram var för sig och därmed arbeta effektivare. Vi delar dessutom upp arbetet i fyra steg enligt vår generella parallelliseringsmall: 1. Analys Överskådning Profilering Punktanalys Uppdelning 2. Parallellisering Val av metod Implementering 3. Verifiering Säkerställande av resultatets överensstämmande med originalet 4. Testning Prestandamätning Profilering Steg två till tre och två till fyra kan behöva upprepas om vi ej uppnått önskat resultat. 3.1 Analys Analysfasen skapar en tydlig bild av hur programmet arbetar och var parallellisering kan göra mest nytta. Vi kommer att använda oss av gränssnittet OpenMP för att underlätta parallelliseringen, och vi använder profileringsverktyget GProf för att underlätta analys av hur programmet arbetar. Till att börja med är det bra att överskåda projektet, dess mappstruktur och uppbyggnad. Detta kallar vi överskådning. När man fått en något klarare bild över hur projektet är upplaggt kan man gå vidare till profilering. 3.2 Parallellisering Efter att analyserat och satt sig in i projektet, är det dags att parallellisera kod. I detta steg kommer vi försöka parallellisera både kärnan och simuleringsprogrammet i sig i den mån det går. Vi gör detta för att parallellisering introducerar ett visst extraarbete för processorn och i praktiken kan det innebära att ett stycke kod i kärnan som anropas ofta men som vid varje anrop körs över små tidsrymder inte tjänar på att delas upp över flera kärnor, tvärtom så kan man förlora prestanda. Om man istället delar upp alla dessa anrop i simuleringsprogrammet i sig kommer inte varje anrop delas upp, utan alla anrop i sin helhet sprids istället ut på de tillgängliga kärnorna. Vid detta förfarande 5/7
6 riskerar man istället att betala en större minneskostnad. Detta är alltså två olika metoder, och vi kommer att implementera båda för att kunna testa dem och se vilken som är effektivast. 3.3 Verifiering För att parallelliseringen skall vara korrekt räcker det inte med att den är snabbare. Det parallelliserade programmet måste också ge samma resultat som originalet. Vi vill säkerställa ett exakt överensstämmande och vara säkra på att vi inte luras av snarlikt resultat eller tillfälliga överensstämmanden. 3.4 Testning Eftersom det här projektet i sin helhet går ut på att effektivisera ett program, är den här delen väldigt viktig. Vi kommer att testköra våra program noga. Till att börja med på våra privata datorer med upp till 4 kärnor, och som grand finale på en 64 trådad dator från Sun. 6/7
7 4 Tidsplan 25/3 Torsdag Möte med handledare. Besluta om vi ska parallellisera kärna eller modul. Påsklovet Viss mån av parallellisering uppnådd 12/4 Måndag Möte, uppslutning. 12/4 18/4 Testa på Sun maskinen. 19/4 Måndag Möte 26/4 Måndag Möte 3/5 Måndag Möte, Börja arbeta med rapporten 10/5 Måndag Möte 17/5 Måndag Möte 18/5 Tisdag Inlämning av rapport 24/5 Måndag Möte 26/5 Onsdag Inlämning av opposition (skriftlig) 31/5 Måndag Muntlig slutredovising 1/6 Tisdag Muntlig slutredovising 7/7
Parallellprogrammering i C++ 17 EDT621 Datorarkitekturer med Operativsystem Viktor Lindgren
Parallellprogrammering i C++ 17 EDT621 Datorarkitekturer med Operativsystem Viktor Lindgren 2016-12-05 Sammanfattning I följande rapport introduceras de tillägg som planeras genomföras i kommande C++ 17
Spelschema för årets fotbollsmästerskap! island tyskland Söndag 14/7 Växjö Arena, Växjö. Söndag 14/7 Kalmar Arena, Kalmar
! Onsdagen 10/7 Onsdagen 10/7 Torsdag 11/7 Torsdag 11/7, Fredag 12/7 Fredag 12/7 Lördag 13/7 Lördag 13/7 Söndag 14/7 Söndag 14/7 Måndag 15/7 Måndag 15/7 Tisdag 16/7 Tisdag 16/7 Onsdag 17/7 Onsdag 17/7
Föreläsning 2. Operativsystem och programmering
Föreläsning 2 Operativsystem och programmering Behov av operativsystem En dator så som beskriven i förra föreläsningen är nästan oanvändbar. Processorn kan bara ges enkla instruktioner såsom hämta data
Hyper-Threading i Intelprocessorer
Lunds Tekniska Högskola Campus Helsingborg DATORARKITEKTURER MED OPERATIVSYSTEM EITF60 RAPPORT Hyper-Threading i Intelprocessorer 4 december 2017 Rasmus Hanning IDA2 Sammanfattning Det har sedan den första
LUNDS UNIVERSITET. Parallell exekvering av Float32 och INT32 operationer
LUNDS UNIVERSITET Parallell exekvering av Float32 och INT32 operationer Samuel Molin Kursansvarig: Erik Larsson Datum 2018-12-05 Referat Grafikkort utför många liknande instruktioner parallellt då typiska
Multithreading in Intel Pentium 4 - Hyperthreading
Multithreading in Intel Pentium 4 - Hyperthreading Sammanfattning Hyper-threading är en implementation av SMT(Simultaneous Multithreading) teknologi som används på Intel processorer. Implementationen användes
Cache-koherens protokoll MESI och MOSI
Handledare: Erik Larsson Lunds Tekniska Högskola HT2016 Cache-koherens protokoll MESI och MOSI Författare: Adnan Mohamed Abstrakt Cache koherens protokoll hanterar cacheminnet i ett multiprocessor system,
Lunds Tekniska Högskola Datorarkitektur med operativsystem EITF60. Superscalar vs VLIW. Cornelia Kloth IDA2. Inlämningsdatum:
Lunds Tekniska Högskola Datorarkitektur med operativsystem EITF60 Superscalar vs VLIW Cornelia Kloth IDA2 Inlämningsdatum: 2018-12-05 Abstract Rapporten handlar om två tekniker inom multiple issue processorer
Forskning och utveckling inom språkteknologi Uppgift 3: Projektförslag Parallelliserad dependensparsning i CUDA
Forskning och utveckling inom språkteknologi Uppgift 3: Projektförslag Parallelliserad dependensparsning i CUDA Evelina Andersson 18 maj 2011 1 Introduktion Att träna mycket för att bli duktig på ett språk
Introduktion till programmering
Introduktion till programmering Vad är programmering? Vad gör en dator? Vad är ett datorprogram? 1 (9) Vad är programmering? För att bestämma en cirkels area måste du: 1. Dividera diametern 5 med 2. 2.
Grundkurs i programmering - intro
Grundkurs i programmering - intro Linda Mannila 4.9.2007 Dagens föreläsning Allmän kursinformation: mål, syfte, upplägg, examination, litteratur, etc. Hur arbetar en dator? Hur vi får datorn att förstå
Introduktion till programmering och Python Grundkurs i programmering med Python
Introduktion till programmering och Python Hösten 2009 Dagens lektion Vad är programmering? Vad är en dator? Filer Att tala med datorer En första titt på Python 2 Vad är programmering? 3 VAD ÄR PROGRAMMERING?
Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock
Inledning Vad är ett datorprogram, egentligen? Olika språk Problemlösning och algoritmer 1 (14) Varför använda en dator? Genom att variera de program som styr datorn kan den användas för olika uppgifter.
Dela, koda och korrigera! Undervisningsmaterial inom digital kompetens
Dela, koda och korrigera! Undervisningsmaterial inom digital kompetens Utvidgat regionalt lärarnätverk Stiftelsen Norrbottens Läns Arbetsstugor Lärarnätverket i samtliga Norrbottens kommuner Likvärdighet
Viktiga begrepp. Algoritm. Array. Binärkod. Blockprogrammering. Bugg / fel och felsökning. Dataspel. Dator
Viktiga begrepp Den här ordlistan är till för dig som går kursen Om Programmering. Eftersom detta är en grundläggande kurs har vi i vissa fall gjort en del förenklingar. En del begrepp är svåra att förenkla,
Datorsystem 2 CPU. Förra gången: Datorns historia Denna gång: Byggstenar i en dators arkitektur. Visning av Akka (för de som är intresserade)
Datorsystem 2 CPU Förra gången: Datorns historia Denna gång: Byggstenar i en dators arkitektur CPU Visning av Akka (för de som är intresserade) En dators arkitektur På en lägre nivå kan vi ha lite olika
PROGRAMMERING. Ämnets syfte. Kurser i ämnet
PROGRAMMERING Ämnet programmering behandlar programmeringens roll i informationstekniska sammanhang som datorsimulering, animerad grafik, praktisk datoriserad problemlösning och användaranpassad konfiguration
Minnesisolering för virtuella maskiner en hypervisorstudie
1.Introduktion 1.1 Inledning Den senaste trenden inom IT-världen är cloud computing (molntjänster). Molntjänster har uppnått stor popularitet både hos IT-chefer och ekonomichefer inom stora företag. Molntjänster
PROGRAMMERING ÅK 9 INTRODUKTION
PROGRAMMERING ÅK 9 INTRODUKTION VARFÖR PROGRAMMERING? Med programmering kan man: Skapa nästan vad som helst som är digitalt. Allt som är digitalt är uppbyggt av kod som människor har skrivit, finns i både
Cacheminne i en Intel Core 2 Duo-processor
Peter Hesslow EDT621 Cacheminne i en Intel Core 2 Duo-processor Abstrakt Det finns många olika sätt att bygga upp ett datorminne på, och med en flerkärnig processor så blir alternativen ännu fler. Denna
Hyper Threading Intels implementation av SMT. Datorarkitekturer med operativsystem - EITF60. Felix Danielsson IDA2
Hyper Threading Intels implementation av SMT Datorarkitekturer med operativsystem - EITF60 Felix Danielsson IDA2 Sammanfattning Simultaneous multithreading (SMT) är en teknik som används i processorer
PROGRAMMERING. Ämnets syfte. Kurser i ämnet
PROGRAMMERING Ämnet programmering behandlar programmeringens roll i informationstekniska sammanhang som datorsimulering, animerad grafik, praktisk datoriserad problemlösning och användaranpassad konfiguration
Programmering och digital kompetens
Kollegialt lärande Föreläsning Workshop Programmering och digital kompetens Lärcafé, 14 juni OSÄKERHET RÄDSLA NYFIKENHET FÖRVALTARE OCH ENTREPRENÖRER Kompetensutveckling Skolverket släpper en modul i oktober.
Programmering, dans och loopar
Lektionen är en introduktion till programmering; träna loopar med analog dansprogrammering. Lektionsförfattare: Karin Nygårds Till läraren 1. En loop 2. Varför behövs loopar? En digital lektion från https://digitalalektioner.iis.se
Projekt i programmering 1 (ver 2)... 2 Projektidé... 2 Planering... 2 Genomförande... 2 Testning och buggar... 3 Utvärdering... 3 Planering...
Projekt i programmering 1 (ver 2)... 2 Projektidé... 2 Planering... 2 Genomförande... 2 Testning och buggar... 3 Utvärdering... 3 Planering... 4 Bussen (projektförslag)... 5 Bakgrund... 5 Klassen Buss
HF0010. Introduktionskurs i datateknik 1,5 hp
HF0010 Introduktionskurs i datateknik 1,5 hp Välkommna - till KTH, Haninge, Datateknik, kursen och till första steget mot att bli programmerare! Er lärare och kursansvarig: Nicklas Brandefelt, bfelt@kth.se
Föreläsning 1: Intro till kursen och programmering
Föreläsning 1: Intro till kursen och programmering Kursens hemsida http:www.it.uu.se/edu/course/homepage/prog1/vt11 Studentportalen http://www.studentportalen.uu.se Lärare: Tom Smedsaas, Tom.Smedsaas@it.uu.se
Hur det går att minska effektutvecklingen i en processor genom att ändra pipeline
Hur det går att minska effektutvecklingen i en processor genom att ändra pipeline Linda Wapner HT2018 EITF60 Sammanfattning Effektutvecklingen i en processor har länge ökat genom att klockfrekvensen för
Programmering, dans och loopar
Programmering, dans och loopar Lektionen handlar om loopar som förklaras genom att eleverna tittar på avsnittet "Vad är en loop?" från serien "Programmera mera". Sedan prövar ni loopar genom dansprogrammering.
Cacheprobe: programbibliotek för extrahering av cacheminnesparametrar
Cacheprobe: programbibliotek för extrahering av cacheminnesparametrar Gabriel Gerhardsson Cacheprobe p.1/38 Abstract Kan analytiskt ta reda på associativitet, line storlek och storlek på processorns cacheminnen
PROGRAMMERING. Ämnets syfte. Kurser i ämnet
PROGRAMMERING Ämnet programmering behandlar programmeringens roll i informationstekniska sammanhang som datorsimulering, animerad grafik, praktisk datoriserad problemlösning och användaranpassad konfiguration
Hur fungerar en dator? Lektionen handlar om att förstå hur datorer styrs av program. Hur fungerar en dator? Lektionsförfattare: Boel Nygren
Lektionen handlar om att förstå hur datorer styrs av program. Lektionsförfattare: Boel Nygren Till läraren 1. Datorn säger "Hej!" 2. Använd programmeringsord En digital lektion från https://digitalalektioner.iis.se
Realtidssystem HT03. Vad är realtidssystem? Inbyggda system. Att programmera, Tasks (Uppgifter) Realtidssystem kräver analys
Realtidssystem HT03 Vad är realtidssystem? Föreläsare: Wang Yi Rum: 1235, yi@it.uu.se, Tel: 471 3110 Assistent: Tobias Amnell Rum: 1216, tobiasa@it.uu.se, Tel: 4717122 Webbsida: www.it.uu.se/edu/course/homepage/realtid/h03
Lär dig programmera! Prova på programmering med enkla exempel! Björn Regnell www.bjornregnell.se
Lär dig programmera! Prova på programmering med enkla exempel! Björn Regnell www.bjornregnell.se Mål Så enkelt som möjligt: låg tröskel Ett riktigt programmeringsspråk: inget tak Roliga uppgifter som går
Introduktion till Datalogi DD1339. Föreläsning 1 8 sept 2014
Introduktion till Datalogi DD1339 Föreläsning 1 8 sept 2014 Kontaktuppgifter & Info: Kurskod: DD1339, 19hp Kursomgång: inda14 Kursansvarig: Christian Smith, ccs@kth.se Michael Minock, minock@kth.se Dilian
PROGRAMMERING. Ämnets syfte. Kurser i ämnet
PROGRAMMERING Ämnet programmering behandlar hur mjukvaror skapas, anpassas och utvecklas samt programmeringens roll i informationstekniska sammanhang som datorsimulering och praktisk datoriserad problemlösning.
Inlämningsuppgift : Finn. 2D1418 Språkteknologi. Christoffer Sabel E-post: csabel@kth.se 1
Inlämningsuppgift : Finn 2D1418 Språkteknologi Christoffer Sabel E-post: csabel@kth.se 1 1. Inledning...3 2. Teori...3 2.1 Termdokumentmatrisen...3 2.2 Finn...4 3. Implementation...4 3.1 Databasen...4
Webservice & ERP-Integration Rapport
Webservice & ERP-Integration Rapport Hardwood AB Mustafa Lazem 930916-9713 Jonas Ahrne 920325-0379 Hasan Nerjovaj 940130-7195 Stefan Liden 920628-0639 2014-05-18 Innehåll Bakgrund... 2 Syfte... 2 Projektbeskrivning...
Föreläsning 1: Intro till kursen och programmering
Föreläsning 1: Intro till kursen och programmering λ Kursens hemsida http:www.it.uu.se/edu/course/homepage/prog1/mafykht11/ λ Studentportalen http://www.studentportalen.uu.se UNIX-konton (systemansvariga
Emil Kristiansson Kurs: EDT621 Delmoment: Rapport. En introduktion till Smart cache
En introduktion till Smart cache 1 Sammanfattning Syftet med den här rapporten är att ge en introduktion till tekniken smart cache för läsaren. Smart cache är en teknik som låter de olika cacheminnena
Datalogiskt tänkande är mer än Programmering. Fredrik Heintz Linköpings universitet
Datalogiskt tänkande är mer än Programmering Fredrik Heintz Linköpings universitet Vad kommer jag säga idag? Datalogiskt tänkande är en uppsättning generella färdigheter och attityder som är viktiga för
Programmering från början
Färdiga lektioner till de nya digitala kunskapsmålen för årskurs 1 till 6 Lektionsserien består av följande lektioner: 1. Programmera någon att bre en smörgås 2. Lapp-programmering 3. Programmera kompisar
Matematisk modellering
Matematisk modellering Genomgång 1 Pelle Matematikcentrum Lunds universitet 6 november 2018 Pelle Matematisk modellering 6 november 2018 1 / 25 Mål Dagens program Vad handlar kursen om, mål, kurskrav,
Hållbar utveckling A, Ht. 2014
Hållbar utveckling A, Ht. 2014 Kommunikation och projektledning för hållbar utveckling Projektplan Bakgrund Som ett stöd i ert projekt kommer ni att arbeta utifrån en projektplan i tre delar, varje ny
Övning: hitta buggarna
Se video Lektionen handlar om att hitta buggar i en färdiga kodexempel. Lektionsförfattare: Karin Nygårds Till läraren 1. Hitta buggen 2. 3. Sammanfatta och reflektera 4. Lektion att fortsätta med LÄRARINSTRUKTIONER
Processor pipelining genom historien (Intel i9-intel i7)
Processor pipelining genom historien (Intel i9-intel i7) Besnik Redzepi Lunds Universitet Abstrakt/Sammanfattning Syftet med denna uppsats är att jämföra Intels nya generation processorer och deras pipelining.
Objektorienterad Programkonstruktion. Föreläsning jan 2017
Objektorienterad Programkonstruktion Föreläsning 15 30 jan 2017 Felsökning Med moderna programmeringsverktyg är rena syntaxfel oftast lätta att åtgärda Fel som kan vara svårare att åtgärda är t.ex: thread
Programmeringsteknik II
Programmeringteknik II Kursintroduktion http://www.it.uu.se/edu/course/homepage/prog2/vt18/ 2018-03-19 Programmeringsteknik II 2018-03-19 1 / 9 Lärare Carl Nettelblad (kursansvarig) Anna Eckerdal Biträdande
Fortsätt med Scratch: Så funkar kloner (del 3/6)
Fortsätt med Scratch: Så funkar kloner (del 3/6) I lektionen programmerar eleverna ett spel Scratch och lär sig använda kloner. Till läraren 1. Kloner i Scratch 2. Hur fungerar kloner i Scratch? 3. Nästa
Hur fungerar en dator?
Hur fungerar en dator? Lektionen handlar om att få en förståelse för datorn olika delar och deras funktioner. Hur datorer styrs av program och bara kan utföra det de är programmerade till att göra. Till
The Intelligent Timer
The Intelligent Timer Linnea Karell och Oscar Bagge, I10 Handledare: Bertil Lindvall 2013-05-20 Abstract The objective of this project was to build a prototype of a digital timer. The product design specification
SKOLFS. beslutade den XXX 2017.
1 (11) Föreskrifter om ändring i Skolverkets föreskrifter (SKOLFS 2010:247) om ämnesplan för ämnet programmering i gymnasieskolan, inom kommunal vuxenutbildning på gymnasial nivå och inom vidareutbildning
Universe Engine Rapport
1 Universe Engine Rapport Alexander Mennborg 2017-05-08 2 Inledning I denna rapport diskuteras utvecklingsprocessen till projektet Universe Engine. Denna diskussion omfattar hela utveckling från starten
Automatiserade testsystem
Automatiserade testsystem Fredrik Edling, Tekn. Dr. Enea Services Stockholm fredrik.edling@enea.com Min bakgrund 2000: Civilingenjör teknisk fysik, inriktning mot tillämpad fysik 2004: Teknisk doktor,
Digitala Projekt (EITF11)
Digitala Projekt (EITF11) Temperaturgivare med larm Handledare: Bertil Lindvall 2014-05-20 Erik Hellered, I-11 Andreas Sjöblom, I-11 Philip Dahlström, I-11 Table of Contents Inledning... 1 Kravspecifikation...
Inledande programmering med C# (1DV402) Introduktion till programmering
Introduktion till programmering Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande programmering med C# vid Linnéuniversitetet. Du får använda detta verk så här: Allt
Generell säkerhet. Loggning - Hur mycket ska man logga? Inloggningsrutinerna i Unix. Loggning fortsättning
Generell säkerhet Här finns det inga direkta rätt eller fel. Snarare saker man bör tänka på när man implementerar ett program. Kort sagt: Efter att du kommit på hur du tänkt göra, sov på saken och tänk
DATORER OCH PROGRAM. Datorn är en symbolmaskin
DATORER OCH PROGRAM Datorn är en symbolmaskin men kan ha såväl symboliska som fysiska gränssnitt till omvärlden Program beteendeplan och beteendegenerator Programmerade maskiner Generalitet och portabilitet
Lennart Rolandsson, Uppsala universitet, Ulrica Dahlberg och Ola Helenius, NCM
Matematik Gymnasieskola Modul: Matematikundervisning med digitala verktyg II Del 1: Om programmering Aktiviteter Del 1 Lennart Rolandsson, Uppsala universitet, Ulrica Dahlberg och Ola Helenius, NCM Ni
Programmera ett dörrlarm. Se video
Se video Lektionen handlar om att låta eleverna programmera algoritmer för att de ska lära sig styra tekniska system och öva på programmering i teknik. Måns Jonasson, Internetstiftelsen, har arbetat fram
Tentamen PC-teknik 5 p Lösningar och kommentarer
Tentamen PC-teknik 5 p Lösningar och kommentarer Program: Di2, Em3, Et3 Datum: 04-08-10 Tid: 13:30-18:30 Lokal E171 Hjälpmedel: Linjal, miniräknare, Instruktionsrepertoar för 8086 (utdelas), Lathund, Pacific
Pipelining i Intel Pentium II
Pipelining i Intel Pentium II John Abdulnoor Lund Universitet 04/12/2017 Abstract För att en processor ska fungera måste alla komponenter inuti den samarbeta för att nå en acceptabel nivå av prestanda.
Parallellisering av algoritmer för flerkärniga processorer Kandidatarbete inom Data- och informationsteknik
Parallellisering av algoritmer för flerkärniga processorer Kandidatarbete inom Data- och informationsteknik GUSTAF HALLBERG PER HALLGREN WUILBERT LOPEZ Institutionen för Data- och informationsteknik CHALMERS
Programmera ett övergångsställe
Programmera ett övergångsställe I lektionen programmeras en algoritm för att styra trafikljus i en korsning. Eleverna får skapa en praktisk applikation och lära sig att skapa och modifiera algoritmer.
Programmering från början
Färdiga lektioner till de nya digitala kunskapsmålen för årskurs 1 till 6 Lektionsserien består av följande lektioner: 1. Programmera någon att bre en smörgås 2. Lapp-programmering 3. Programmera kompisar
729G74 IT och programmering, grundkurs. Tema 1, Föreläsning 2 Jody Foo,
729G74 IT och programmering, grundkurs Tema 1, Föreläsning 2 Jody Foo, jody.foo@liu.se Föreläsningsöversikt Kurslogistik Begreppspresentationer Uppgifter i diskret matematik Uppgifter i Python Tema 1:
Anvisningar till rapporter i psykologi på B-nivå
Anvisningar till rapporter i psykologi på B-nivå En rapport i psykologi är det enklaste formatet för att rapportera en vetenskaplig undersökning inom psykologins forskningsfält. Något som kännetecknar
Anujan Balasingam IDA14 NAND flashminnen
Anujan Balasingam IDA14 NAND flashminnen Hur kan prestandan och kapaciteten förbättras? Kursansvarig: Erik Larsson Datorarkitektur med operativsystem 7,5 hp 04-12-2015 Innehållsförteckning 1. Inledning...
CDC en jämförelse mellan superskalära processorer. EDT621 Campus Helsingborg av: Marcus Karlsson IDA
CDC6600 - en jämförelse mellan superskalära processorer av: Marcus Karlsson Sammanfattning I denna rapport visas konkret information om hur den första superskalära processorn såg ut och hur den använde
Kravspecifikation Fredrik Berntsson Version 1.3
Kravspecifikation Fredrik Berntsson Version 1.3 Status Granskad FB 2017-01-27 Godkänd FB 2017-01-27 Dokumenthistorik Version Datum Utförda ändringar Utförda av Granskad 1.0 2014-01-15 Första versionen
Tentamen. 2D4135 vt 2005 Objektorienterad programmering, design och analys med Java Lördagen den 28 maj 2005 kl 9.00 14.
Tentamen 2D4135 vt 2005 Objektorienterad programmering, design och analys med Java Lördagen den 28 maj 2005 kl 9.00 14.00, sal E33 Tentan har en teoridel och en problemdel. På teoridelen är inga hjälpmedel
Datalagringsmetodik och arkitektur i Java. Projektdefinition. Projektdefinition. Björn Brenander. 7 maj 2001
Datalagringsmetodik och arkitektur i Java Projektdefinition Dokumenttitel Projektdefinition Dokumentansvarig Dokumentförfattare Björn Brenander Dokumentnamn Projektdefinition.doc Version 16 Ref. nr. Skapades
Preliminär specifikation av projekt
Preliminär specifikation av projekt Projektets namn: Infraröd Minneslåda (numera omdöpt till FastSync) Uppdragsgivare: Alex Olwal aolwal@cs.columbia.edu Deltagare: Johan Ullberg Nils
Innehållsförteckning
Innehållsförteckning Årsplanering för Projektarbete 100 poäng, läsåret 2005/06 s.2 PA 1201 Projektarbete, 100 poäng s.3 Projektarbetets syfte s.3 Projektarbetets karaktär s.3 Lokal kursplan för Donnergymnasiet,
Formell Verifiering. Hur vet man att ett system fungerar korrekt? Lisa Kaati
Formell Verifiering Hur vet man att ett system fungerar korrekt? Lisa Kaati Innehåll Motivering Formell verifiering Modellkontroll (model checking) Verifiering av kod Forskning Dator system finns överallt
Tentamen den 18 mars svar Datorteknik, EIT070
Lunds Universitet LTH Tentamen den 18 mars 2015 - svar Datorteknik, EIT070 Skrivtid: 14.00-19.00 Tillåtna hjälpmedel: Inga. Maximalt antal poäng: 50 poäng För betyg 3 krävs 20 poäng För betyg 4 krävs 30
Grundläggande programmering med matematikdidaktisk inriktning för lärare som undervisar i gy eller komvux gy nivå, 7,5 hp
Grundläggande programmering med matematikdidaktisk inriktning för lärare som undervisar i gy eller komvux gy nivå, 7,5 hp Dag Wedelin, bitr professor, och K V S Prasad, docent Institutionen för data- och
Föreläsning 1 & 2 INTRODUKTION
Föreläsning 1 & 2 INTRODUKTION Denna föreläsning Vad händer under kursen? praktisk information Kursens mål vad är programmering? Skriva små program i programspråket Java Skriva program som använder färdiga
Loopar och ljud 3 av 7. Lektionen handlar om att lära sig programmera loopar och använda ljudeffekter med verktyget Scratch. Loopar och ljud 3 av 7
Lektionen handlar om att lära sig programmera loopar och använda ljudeffekter med verktyget Scratch. Lektionsförfattare: Lotta Ohlin Andersson Till läraren 1. Loopar och ljud 2. Repetera det du gjort Sida
Rapport Digitala Projekt EITF11 Grupp 4 Axel Sundberg, Jakob Wennerström Gille Handledare: Bertil Lindvall
Sammanfattning I denna rapport behandlas ett projekt inom kursen Digitala Projekt, EITF11, vid Lunds Tekniska högskola. Syftet med projektet är att konstruera en enkel digital prototyp samt programmera
DATORER OCH PROGRAM. Programmerade maskiner Program beteendeplan och beteendegenerator Generalitet och portabilitet Datorn är en symbolmaskin
DATORER OCH PROGRAM Programmerade maskiner Program beteendeplan och beteendegenerator Generalitet och portabilitet Datorn är en symbolmaskin men kan ha såväl symboliska som fysiska gränssnitt till omvärlden
Loopar och ljud 3 av 7. Lektionen handlar om att lära sig programmera loopar och använda ljudeffekter med verktyget Scratch. Loopar och ljud 3 av 7
Lektionen handlar om att lära sig programmera loopar och använda ljudeffekter med verktyget Scratch. Lektionsförfattare: Lotta Ohlin Andersson Till läraren 1. Loopar och ljud 2. Repetera det du gjort En
Objektorienterad programmering, allmänt
Objektorienterad programmering, allmänt Sven-Olof Nyström Uppsala Universitet 17 juni 2005 1 Vilka egenskaper vill vi att program ska ha? Förslag (en partiell lista): De ska... gå snabbt att skriva vara
Viktiga egenskaper hos ett program (Meyer): Objektorienterad programmering, allmänt. Vilka egenskaper vill vi att våra program ska ha?
Viktiga egenskaper hos ett program (Meyer): Objektorienterad programmering, allmänt Sven-Olof Nyström Uppsala Universitet 17 mars 2005 1. Korrekthet 2. Robusthet 3. Utökbarhet 4. Återanvändbarhet 5. Kompatibilitet
Laboration i datateknik
KUNGLIGA TEKNISKA HÖGSKOLAN Laboration i datateknik Felsökning och programmering av LEGO NXT robot Daniel Willén 2012 09 06 dwill@kth.se Introduktionskurs i datateknik II1310 Sammanfattning Syftet med
Design och konstruktion av grafiska gränssnitt
Design och konstruktion av grafiska gränssnitt Armin Nezirevic Peter Börjesson Interaktionsdesign Tillämpad informationsteknologi Chalmers/GU Idag Vad utmärker ett bra användargränssnitt? Kort kursinfo
Mälardalens högskola
Teknisk rapportskrivning - en kortfattad handledning (Version 1.2) Mälardalens högskola Institutionen för datateknik (IDt) Thomas Larsson 10 september 1998 Västerås Sammanfattning En mycket viktig del
ENKEL Programmering 3
ENKEL Programmering 3 Figurer i långa rader Titta på de olika figurerna i de olika raderna. Kan du se att de olika figurerna i varje rad är placerade enligt ett visst mönster? Kan du lista ut vilken figur
Imperativ programmering. Föreläsning 4
Imperativ programmering 1DL126 3p Föreläsning 4 Imperativa paradigmer Ostrukturerad programmering Strukturerad programmering Procedurell programmering Objektorienterad programmering Klassbaserad programmering
TDDD92 Artificiell intelligens -- projekt
jonas.kvarnstrom@liu.se 2018 TDDD92 Artificiell intelligens -- projekt Individuella uppgifter UPG2: Individuell skriftlig rapport 2 Vad? Läsa och förstå vetenskaplig litteratur Varför? Framtiden: Inte
Elektroteknik MF1016 föreläsning 9 MF1017 föreläsning 7 Mikrodatorteknik
Elektroteknik MF1016 föreläsning 9 MF1017 föreläsning 7 - Inbyggda system - Analog till digital signal - Utvecklingssystem, målsystem - Labutrustningen - Uppbyggnad av mikrokontroller - Masinkod, assemblerkod
Hur vi hittar till bra sömn
Hur vi hittar till bra sömn Förenklat kan man säga att det finns tre viktiga saker att tänka på när vi har svårt att sova: 1. Bara sova i sängen och inte göra någonting annat till exempel, kolla datorn
Program & programmering
Program & programmering Vad är program? Satser och instruktioner, toggla igenom exempel Program på olika nivåer, för olika maskiner, för olika saker Tolka program; kompilator, intepretator, binärbytekod,
Uppdragsbeskrivning. Google Glass. Version 1.0 Mats Persson. Distributionslista. Namn Åtgärd Info.
Version 1.0 Distributionslista Befattning Bolag/en het Student KaU Richard Hoorn Student KaU Johan Häger Konsult/handledare Sogeti Konsultchef Sogeti Åsa Maspers Säljare Sogeti Bengt Löwenhamn Namn Åtgärd
Digitala projekt - Radiostyrd bil
Digitala projekt - Radiostyrd bil Handledare: Bertil Lindvall Johan Lennartsson e02jle David Thomasson e02dt Magnus Lisborg e02mls Innehållsförteckning 1. Inledning.3 2. Målsättning med projektet.......3
Objektorienterad Programkonstruktion. Föreläsning 11 6 dec 2016
Objektorienterad Programkonstruktion Föreläsning 11 6 dec 2016 Föreläsningen 13/12 Halvtidsrepetition Maila frågor som ni vill att jag tar upp! ccs@kth.se Processer Vad vi i dagligt tal menar när vi pratar
Snake. Digitala Projekt (EITF11) Fredrik Jansson, I-12 Lunds Tekniska Högskola,
Snake Digitala Projekt (EITF11) Fredrik Jansson, I-12 Lunds Tekniska Högskola, 2015-05-18 Oskar Petersen, I-12 Handledare: Bertil Lindvall Abstract Denna rapport beskriver ett projekt där ett klassiskt
Introduktion till programmering D0009E. Föreläsning 5: Fruktbara funktioner
Introduktion till programmering D0009E Föreläsning 5: Fruktbara funktioner 1 Retur-värden Funktioner kan både orsaka en effekt och returnera ett resultat. Hittills har vi ej definierat några egna funktioner
Datorhårdvaruteknik 1DV426 - Seminarie 1
Datorhårdvaruteknik 1DV426 - Seminarie 1 Marcus Wilhelmsson marcus.wilhelmsson@lnu.se 19 mars 2014 Introduktion Detta seminarie behandlar följande: 1. Processorer 2. Minne 3. Chipset 4. BIOS 5. Moderkort
Björn Åstrand
HÖGSKOLAN I HALMSTAD Examensarbete Instruktioner Halvtidseminarium 2014 HT Björn Åstrand 2014-10-08 Björn Åstrand 2014 1 Halvtidsseminarium Vid halvtidsseminariet presenteras hittills uppnådda resultat