• No results found

Systemvetares behov av kunskaper kring flerkärniga processorer och parallellprogrammering

N/A
N/A
Protected

Academic year: 2021

Share "Systemvetares behov av kunskaper kring flerkärniga processorer och parallellprogrammering"

Copied!
69
0
0

Loading.... (view fulltext now)

Full text

(1)

Örebro Universitet Handelshögskolan

Informatik C med systemvetenskaplig inriktning – Uppsatsarbete, 15 hp Handledare: Åke Grönlund

Examinator: Anders Avdic Höstterminen 2008

Systemvetares behov av kunskaper kring

Systemvetares behov av kunskaper kring

flerkärniga processorer och

flerkärniga processorer och

parallellprogrammering

parallellprogrammering

Jens Stääf 830506

(2)

Förord

Förord

Denna C-uppsats är en del av examinationen för kursen Informatik C med systemvetenskaplig inriktning. Kursen gavs av Handelshögskolan vid Örebro Universitet Höstterminen 2008.

Jag vill tacka min handledare Åke Grönlund för värdefulla tips och råd. Jag vill också tacka Jenny Lagsten, som gav mig insiktsfulla tips, samt även lät mig vara med på sina seminarier. Ett tack riktas också till Anders Avdic, som tog sig tid att diskutera mitt ämnesval innan uppsatsen. Jag vill även tacka Sara Larsson, Ann-Sofie Nordling, Vikesh Kara och Pasi Pursiainen för att de läste igenom min uppsats och kom med värdefull feedback (herregud vad jag gör många stavfel!). Slutligen vill jag tacka min flickvän Jennie Andersson, som gett mig stöd under uppsatsen och orkat lyssna på allt mitt babbel om parallellprogrammering och flerkärniga processorer.

(3)

Sammanfattning

Sammanfattning

Utvecklingen av processorer har kommit till en punkt där det är problematiskt att öka

klockfrekvensen ytterligare; processorerna skulle bli allt för effektförbrukande, med höga kostnader och kylningsproblem som följd. Lösningen som processortillverkare har börjat tillämpa på detta problem är att placera flera processorkärnor på samma kretskort. Detta ger en snabbare processor, samtidigt som effektförbrukningen hålls nere. Flera experter tror att alla processorer kommer att vara flerkärniga i framtiden.

För att dra nytta av kraften hos de flerkärniga processorerna måste såväl program som

operativsystem vara optimerade för ändamålet; program som inte är optimerade för flerkärniga processorer gör oftast inga större prestandavinster. Tyvärr är utveckling av parallella program (parallellprogrammering), svårt och kan föra med sig många programfel.

Denna studie har undersökt i vilken grad kunskaper kring parallellprogrammering och flerkärniga processorer är relevanta för systemvetare. I syfte att samla in data kring ämnena har en

litteraturstudie, samt två enkätundersökningar, utförts. Litteraturstudien hade till sitt syfte att skapa en bild av området kring flerkärniga processorer och parallellprogrammering. Den första

enkätundersökningen vände sig till företag inom IT-branschen, och ämnade samla in information kring i vilken grad företag använde sig av parallellprogrammering, samt i vilken grad systemvetare var inblandade i denna. Den andra enkätundersökningen vände sig till systemvetenskapliga

utbildningar, och syftade till att göra en bild av utbildningsansvarigas inställning till området. Slutligen analyserades insamlad data, och de olika datainsamlingarna kopplades till varandra. På grund av ett stort bortfall i studiens enkätundersökningar försämrades möjligheten att

generalisera kring området i stort. Studien tydde dock på att parallellprogrammering idag inte är särskilt relevant för systemvetare. Parallella program kan ge stora prestandafördelar, och vissa av de företag som tillfrågats använder sig idag av parallellprogrammering. Systemvetare var dock sällan involverande i dessa moment i de företag som studerades.

Flerkärniga processorer blir allt vanligare, och därmed blir parallella applikationer allt viktigare. Om alla program skulle vara parallella i framtiden så kommer systemvetare att beröras av detta. Mycket pengar läggs dock på forskning kring framtagning av verktyg och tekniker som skall kunna förenkla utvecklingen av parallella program. På grund av detta kan det vara så att området ser annorlunda ut den dagen alla program är parallella, än vad den gör idag.

Kunskaper kring skillnader mellan enkärniga och flerkärniga processorer är dock mer relevanta för systemvetare, då dessa kan appliceras på fler områden än just utveckling av parallella program.

(4)

Referenssystem

Referenssystem

Det sätt som denna uppsats hanterar referenser och källor utgår från "Lathund" för

referensskrivning enligt APA-manualen av Kerstin Nilsson (2005). För att öka läsbarheten har dock källhänvisningar som inte är en del av den löpande texten placerats i fotnoter. Således kan en och samma fotnot peka på mer än en källa.

(5)

Centrala begrepp

Centrala begrepp

Följande begrepp är förekommande i uppsatsen. Innebörden av begreppen kan vara svår att förstå och begreppen kan därmed vara föremål för feltolkningar. Därför definieras dessa begrepp här i detalj.

Befintlig applikation - Äldre system, ofta skapat med hjälp av idag omoderna tekniker, vilket är i drift eftersom användarna (t.ex. en organisation) av något skäl inte vill byta ut det. Befintligt system är en översättning av engelskans legacy application. 1

Deadlock – Deadlock uppstår när två eller fler processer efterfrågar samma resurs på ett sådant sätt att en cirkulär kedja av processer formas, i vilken varje process väntar på den resurs som nästa process i kedjan använder. Resultatet av detta är att ingen process kan forsätta; de är i dödläge (deadlock). 2

Multitrådning - sätt att programmera där man delar upp programmet i flera trådar som kan exekveras parallellt och oberoende av varandra. Det är en förutsättning för att datorer med flera processorer ska bli effektiva, men har också fördelar i datorer med bara en processor. 3

Parallelprogrammering – Programmering utförd på ett sätt som indikerar hur olika delar av ett program bör exekveras på olika processorer. 4. Parallellprogrammering är en

översättning av engelskans parallel programming.

Parallelbearbetning – Simultant utförande av en uppgift (genom att uppgiften delas upp i mindre deluppgifter) med hjälp av multipla processorer, i syfte att nå snabbare resultat. 5

Parallellbearbetning är en översättning av engelskans parallel computing.

Processor - logisk krets för bearbetning av data. Åsyftar ofta centralprocessor, cpu (central processing unit) - den viktigaste processorn i en dator. 6

Processorkärna - den del av en processor som utför beräkningarna - själva kretsen - till skillnad från kapseln och stiften. Flera kärnor kan vara hopbyggda till en flerkärnig processor. Varje kärna kan arbeta oberoende av de andra kärnorna, men de ingår i samma kapsel och delar på anslutning till kretskortet. 7

Race condition – Ett race condition uppstår när ett program inte uppför sig så som väntat, på grund av en oväntad ordningsföljd av händelser som "kämpar" om samma resurser. Att denna typ av fel inträffar ökar betydligt då flera processer exekverar samtidigt. 8

Systemvetare – Systemvetare är beteckningen på en person med en akademisk examen inriktad mot systemvetenskap (kandidat, magister/master, doktor). Systemvetenskap handlar förenklat om kunskap kring utveckling och användning av IT-system för olika ändamål. En systemvetares yrkesroll innebär ofta att fungera som systemutvecklare. Den

systemvetenskapliga utbildningen vid sveriges universitet och högskolor bedrivs ofta inom ämnet informatik. 9

1 (Svenska datatermsgruppen, 2007) 2 (Britannica Online Encyclopedia) 3 (a a)

4 (Graham, 2007) 5 (a a)

6 (Computer Sweden Språkwebb) 7 (a a)

(6)

Innehållsförteckning

Innehållsförteckning

1 INLEDNING...1

1.1 ÄMNESOMRÅDE...1

1.2 SYFTEOCHFRÅGESTÄLLNING...2

1.3 YTTERLIGARESPECIFIKATIONERAVFRÅGESTÄLLNINGAR...2

1.4 AVGRÄNSNING...3

1.5 INTRESSENTER...4

2 PERSPEKTIV...5

2.1 DENNASTUDIESPERSPEKTIV...5

2.2 KOPPLINGTILLBEFINTLIGKUNSKAP...5

2.3 ALTERNATIVAPERSPEKTIV...5

3 METOD...6

3.1 METODANSATS...6

3.2 DATAINSAMLING...7

3.2.1 Litteraturstudier...7

3.2.2 Enkätundersökning 1 – Företags användning av parallellprogrammering...10

3.2.3 Enkätundersökning 2 – Parallellbearbetning och systemvetenskaplig utbildning...11

3.2.4 Utskick av enkäter...13

3.2.5 Vad gör systemvetare?...13

3.3 TILLVÄGAGÅNGSSÄTTFÖRANALYS...14

3.3.1 Parallellbearbetning, nytta och praktik...14

3.3.2 Utvärdering av enkätundersökning 2 – Parallellbearbetning och systemvetenskaplig utbildning...16

3.3.3 Slutanalys – Vilka kunskaper behöver en systemvetare ha?...16

3.4 KÄLLKRITIK...16

3.5 METODKRITIK...17

4 RESULTAT...18

4.1 LITTERATURSTUDIE...18

4.1.1 För- och nackdelar med parallellbearbetning...18

4.1.2 Nytta av parallellitet i applikationer...24

4.2 ENKÄTUNDERSÖKNING 1 – FÖRETAGSANVÄNDNINGAVPARALLELLPROGRAMMERING...25

4.3 ENKÄTUNDERSÖKNING 2 – PARALLELLPROGRAMMERINGOCHSYSTEMVETENSKAPLIGUTBILDNING...27

4.4 VADGÖRSYSTEMVETARE?...30

5 ANALYS...31

5.1 PARALLELLBEARBETNING, NYTTAOCHPRAKTIK...31

5.1.1 Argumentationsanalys av för- och nackdelar med parallellprogrammering...31

5.1.2 Utvärdering av enkätundersökning 1 – Företags användning av parallellprogrammering...32

5.1.3 Kopplingar – parallellbearbetning i teori och praktik...32

5.2 UTVÄRDERINGAVENKÄTUNDERSÖKNING 2 – PARALLELLBEARBETNINGOCHSYSTEMVETENSKAPLIGUTBILDNING...32

5.3 KOPPLINGAR – PARALLELLBEARBETNINGOCHSYSTEMVETARE...32

6 SLUTSATS...34

7 DISKUSSION...35

7.1 RESULTATDISKUSSION...35

7.2 METODDISKUSSION...35

7.3 FÖRSLAGTILLFORTSATTFORSKNING...36

8 KÄLLFÖRTECKNING...37 8.1 ARTIKLARFRÅNFORSKNINGSDATABASER...37 8.2 ÖVRIGAARTIKLAR...38 8.3 BLOGGINLÄGG...39 8.4 METODLITTERATUR...40 8.5 ORDLISTOR...40 8.6 WEBBSIDOR...40 9. BILAGOR...42 9.1 BILAGA 1 – ENKÄTER...42

9.2 BILAGA 2 – ENKÄTSVARFÖRENKÄT 1...44

(7)

1

1

Inledning

Inledning

1.1

1.1 ÄmnesområdeÄmnesområde

En processor är en enhet som har till uppgift att utföra beräkningar i en dator. I ett traditionellt datorsystem ingår endast en processor. Denna processor arbetar sekventiellt, d.v.s. utför endast en instruktion i taget. För att få instruktioner att utföras snabbare kan processorns snabbhet

(klockfrekvens) ökas. Med en ökad klockfrekvens följer en ökad effektförbrukning. 10

Det finns också datorsystem som innefattar mer än en processor. Ett system med flera processorer kan utföra flera beräkningar samtidigt, och på det sättet utföra uppgifter snabbare. Det är således inte lika nödvändigt att öka klockfrekvensen för ett system med flera processorer, som för ett system med endast en processor. 11 Ett datorsystem som har flera processorer omnämns som

parallellt, vilket åsyftar att flera instruktioner kan bearbetas samtidigt 12.

Parallella datorsystem är dock inte endast guld och gröna skogar; för att dra nytta av de parallella systemen behövs specialskrivna program. Vid exekvering av traditionella, sekventiella,

applikationer finns det stor risk att det mesta av arbetet läggs på en enda processor i systemet 13. De

applikationer som exekveras måste själva ta ansvar att för flera instruktioner utförs samtidigt. Detta blir en utmaning som applikationsutvecklarna får tampas med. Detta görs med hjälp av komplicerad trådhantering 14. Olika tekniker för att utveckla applikationer som optimalt kan utnyttja kraften hos

parallella datorsystem går under samlingsnamnet parallellprogrammering. 15

Parallella datorer, såväl som parallellprogrammering, är gamla idéer. Redan på 60-talet forskades det om parallella datorer. 16 Under 80-talet bedrevs mycket forskning kring parallella datorer. Denna

forskning gav dock inga större avtryck i den praktiska världen; datorvärlden var ännu inte redo. 17

Länge riktades större delen av processorutvecklingen mot sekventiella system, och prestanda ökades genom att tillverkarna gång på gång skruva upp klockfrekvensen. Idag har utvecklingen av processorer kommit till en punkt där det är problematiskt att öka klockfrekvensen ytterligare; processorerna skulle bli allt för effektförbrukande 18, med höga kostnader och kylningsproblem som

följd. 19

Lösningen som processortillverkare idag tillämpar på problemet är att placera flera processorer (processorkärnor) på ett och samma kretskort. Istället för att skruva upp klockfrekvensen ytterligare, så är det istället tänkt att arbetsbördan skall spridas över flera långsammare processorkärnor. Detta ger en snabbare processor, samtidigt som effektförbrukningen hålls nere. 20 Flera experter tror att

alla processorer kommer att vara flerkärniga i framtiden 21. Denna hårdvarusituation har gjort att

parallellprogrammering åter igen är aktuellt 22.

Problemet är att få applikationer utnyttjar den nya hårdvarans möjligheter 23, samt att få utvecklare

10 (Tröger, 2008) 11 (a a)

12 (Computer Sweden Språkwebb) 13 (Lotsson, 2008a)

14 (Fjälling, 2007) 15 (Graham, 2007) 16 (Tröger, 2008)

17 (Mattson & Wrinn, 2008; Tröger, 2008; Lotsson, 2007) 18 (Tröger, 2008; Lotsson, 2008a)

19 (Lotsson, 2008a)

20 (Andersson, 2008; Lotsson, 2008a)

21 (Dvorak, 2008; Andersson, 2008; Lotsson, 2007) 22 (Tröger, 2008)

(8)

har kunskap och färdighet i att utveckla sådana applikationer 24. Justin Rattner, Intels tekniska chef,

menar att det kommer att behövas en ny sorts programmerare och efterlyser en storsatsning på utbildning inom parallellprogrammering. Han säger också att det kommer att ta många år att göra parallellprogrammering till en norm inom programutveckling. 25

1.2

1.2 Syfte och frågeställningSyfte och frågeställning

Flerkärniga processorer och parallellt exekverande program beskrivs av flera källor som framtiden i IT-världen 26. Flera källor påpekar också att utvecklingen av applikationer till denna nya hårdvara,

kräver andra tekniker än traditionell systemutveckling 27, samt att få personer har kunskaper om

dessa tekniker 28. Flera källor nämner att parallellprogrammering och kunskaper om flerkärniga

processorer är relevanta ämnen för datavetare, samt att dessa ämnen har inkluderats på vissa datavetenskapliga utbildningar 29.

Denna situation väcker frågor kring på vilka sätt systemvetare berörs av den nya hårdvaran, och den kompetensbrist som påstås finnas. Kommer endast datavetare i kontakt med de flerkärniga

processorerna och den parallella mjukvaran, eller är kunskaper inom dessa områden relevanta även för en systemvetare?

Syftet med denna studie är att sammanfatta i vilken grad parallellprogrammering och flerkärniga processorer berör systemvetare. Målsättningen är att en läsare, efter att denne har tagit del av uppsatsens innehåll, har fått förståelse för i vilken grad den nya tekniken berör systemvetares yrkesliv.

Uppsatsen syftar till att göra studerande systemvetare uppmärksamma på situationen som råder i IT-området, samt systemvetares relation till denna. Uppsatsens innehåll skulle kunna användas som beslutsunderlag för utbildningsutformning. Slutligen kan uppsatsen även ge en övergripande bild av området kring flerkärniga processorer och parallella program.

Den primära frågeställningen är:

1. På vilka sätt berör parallellbearbetning systemvetare? Vad bör en systemvetare kunna om parallellbearbetning, parallellprogrammering och flerkärniga processorer?

För att kunna besvara denna frågeställning måste även följande, sekundära, frågeställningar besvaras:

1. Vilka aspekter finns av parallellbearbetning, flerkärniga processorer och

parallellprogrammering? Vilka för- och nackdelar för fenomenen med sig? Vilken nytta kan applikationer dra av parallellbearbetning? Vilken nytta drar applikationer i praktiken? 2. I hur stor utsträckning används parallellprogrammering hos företag som utvecklar program? 3. Vilka kunskaper förmedlar systemvetenskapliga utbildningar kring flerkärniga processorer

och parallellprogrammering, samt vad anser utbildningsansvariga om kunskaper kring dessa områden?

4. Inom vilka områden är systemvetare verksamma? 1.3

1.3 Ytterligare specifikationer av frågeställningarYtterligare specifikationer av frågeställningar

På vilka sätt parallellbearbetning berör systemvetare, och vad dessa behöver veta om

24 (Hochstein, Basili, Vishkin, & Gilbert, 2008; Tröger, 2008; Lotsson, 2007) 25 (Lotsson, 2007)

26 (Liu, 2008; Dvorak, 2008; Andersson, 2008; Lotsson, 2007)

27 (Massingill, 2007; Hochstein, 2008; Matthew, 2007; Brokin, 2008a; Gaudin, 2008; Lotsson, 2008a)

28 (Mattson & Wrinn, 2008; Hochstein, Basili, Vishkin, & Gilbert, 2008; Ernst & Stevensson, 2008; Lotsson, 2008a) 29 (Graham, 2007; Ernst & Stevensson, 2008; Liu, 2008)

(9)

parallellbearbetning, parallellprogrammering och flerkärniga processorer utgår ifrån vilka arbetsuppgifter systemvetare har, och inom vilka områden systemvetare arbetar. Om dessa arbetsuppgifter och områden har relationer till parallellbearbetning anses, i denna studie, även systemvetare (som utför arbetsuppgifterna, och verkar inom områdena) ha relationer till parallellbearbetning.

Aspekter av parallellbearbetning och flerkärniga processorer syftar på olika sidor av

parallellprogrammering. Vissa av dessa sidor var okända vid frågeställningarnas formulering, vilket gjorde att de inte kunde preciseras ytterligare. För- och nackdelar avses för- och nackdelar ur samtliga parters (utvecklingsföretag, programmerare och användare) perspektiv. I förlängningen är för- och nackdelar ofta kopplade till ekonomiska frågor. Användning rör hur parallellbearbetning och flerkärniga processorer används i praktiken.

Frågan om i hur stor utsträckning parallellbearbetning används åsyftar om företag som utvecklar program använder sig av parallellbearbetning, eller planerar börja använda detta inom en snar framtid (inom ett år). Detta ämnar inte ge några exakta mått, utan endast en överblick i området. När det efterfrågas inom vilka områden systemvetare är verksamma menas de områden där

systemvetare vanligtvis i praktiken arbetar. Således åsyftas inte områden där systemvetare teoretiskt är tänkta att vara verksamma. Var systemvetare vanligtvis arbetar syftar på de områden där större delen av systemvetare arbetar; att någon enstaka systemvetare arbetar i en korvkiosk kommer ej att innebära att korvkiosker betraktas som ett verksamhetsområde för systemvetare.

För definitioner av begreppen parallellprogrammering, parallellbearbetning, processor och processorkärna, se Centrala begrepp.

Aspekter av parallellbearbetning behövde samlas in för att övergripande beskriva fenomenet. För- och nackdelar behövde beskrivas för att kunna förstå inom vilka området fenomenet används, samt varför det används.

1.4

1.4 AvgränsningAvgränsning

Denna studie kommer ej att behandla rent tekniska aspekter kring specifika algoritmer eller

hårdvarutekniker. Studien syftar inte till att lära ut parallellprogrammering eller att förmedla djupa tekniska detaljer kring parallell hårdvara. Studien syftar ej heller till att bidraga med någon

heltäckande beskrivning av de programmeringsverktyg, programmeringsspråk och kompilatorer som är aktuella inom området. En kortare genomgång kan dock vara aktuell i andra syften än att beskriva teknikerna och verktygen i sig.

Studien kommer ej heller beskriva vilka kunskaper som yrkesverksamma systemvetare faktiskt har kring parallellbearbetning.

Svaren på de övergripande frågeställningarna kommer endast att innefatta systemvetares relationer till parallellbearbetning. Det kommer ej att läggas fokus på hur parallellbearbetning berör andra yrkesgrupper, såsom t.ex. ingenjörer eller datavetare, även om vissa jämförelser kan bli nödvändiga. Studien kommer också i huvudsak att behandla centralprocessorer. Inriktning kommer ej att göras mot andra slags processorer, såsom specifika grafikprocessorer, eller flyttalsprocessorer. De centralprocessorer som studien inriktar sig mot är sådana som återfinns i persondatorer,

stordatorsystem och liknande datorsystem. Processorer som kan finnas i t.ex. vissa klockor kommer ej att behandlas.

(10)

1.5

1.5 IntressenterIntressenter Huvudsakliga intressenter är:

Lärare och utbildningsansvariga vid systemvetenskapliga utbildningar – För dessa grupper kan studiens innehåll motivera att vissa moment, kunskaper och tekniker bör, eller inte bör, betonas i undervisningen.

Systemvetarstudenter – Studiens innehåll kan för denna grupp uppmärksamma området kring flerkärniga processorer och parallella program, samt ge en fingervisning om i vilken grad parallellprogrammering kommer att vara relevant i deras framtida yrkesliv.

Sekundär intressenter är:

Företag inom IT-branschen, samt yrkesverksamma systemvetare – Dessa grupper kan använda sig av studiens innehåll för att göra sig en bild av situationen kring flerkärniga processorer och parallella program, samt systemvetares förhållande till denna.

(11)

2

2

Perspektiv

Perspektiv

2.1

2.1 Denna studies perspektivDenna studies perspektiv

Denna studie betraktar parallellbearbetning utifrån ett systemvetarperspektiv. Det som avses relevant är på vilka sätt parallellbearbetning berör systemvetare. Detta har påverkat såväl

datainsamling som analys. Vid litteraturstudier har ett brett perspektiv intagits för att få en överblick av ämnet. Enkätsvar och enkätfrågor har formulerats på ett sådant sätt att de skulle fånga upp data som var relevant just för systemvetare. Även valet av respondenter har påverkats av det aktuella perspektivet.

Jag som skriver denna uppsats studerar själv till systemvetare. Detta gör att jag har ett personligt intresse kring vilka tekniker och kunskaper som är relevanta för systemvetare. Detta gör att jag är uppriktigt intresserad av hur verkligheten föreligger, och ej har någon önskan av att förvränga sanningen. Jag drivs inte av någon hypotes, och har inga förutfattade meningar kring de resultat som denna studie kommer att frambringa.

Jag är ej tidigare insatt i ämnet parallellbearbetning, men har ägnat mig åt utveckling av

traditionella, seriella, program sedan jag var nio år gammal. Jag är även relativt insatt i tekniker kring flertrådade applikationer.

2.2

2.2 Koppling till befintlig kunskapKoppling till befintlig kunskap

Specifik forskning med inriktning på systemvetares förhållande till parallellprogrammering och flerkärniga processorer har inte hittats. Det finns dock ett flertal källor som tar upp nyttoaspekter (positiva och negativa) av dessa fenomen (se avsnitt 4.1 – Litteraturstudie).

Det finns också artiklar som tar upp vikten av högskoleutbildning inom parallellprogrammering, men dessa artiklar rör datavetenskapliga utbildningar (se avsnitt 4.1.1.1.3 - Framtidens teknik?). 2.3

2.3 Alternativa perspektivAlternativa perspektiv

Fenomenet parallellbearbetning hade kunnat betraktas utifrån ett rent tekniskt perspektiv med fokus på de fysiska komponenterna i flerkärniga processorer. Ett sådant fokus hade framhävt andra

begrepp och samband inom området.

Fenomenet hade också kunnat betraktas med fokus på parallellprogrammering i sig, och med något specifikt programmeringsverktyg, programmeringsspråk eller någon speciell programmeringsteknik som målobjekt. Även dessa perspektiv hade framhävt andra begrepp och samband.

Parallellbearbetning hade också kunnat betraktas från ett ännu mer generellt perspektiv, vilket innefattade t.ex. fler yrkesgrupper än systemvetare.

(12)

3

3

Metod

Metod

Syftet med studien var att studera hur viktigt det är med kunskaper kring parallellprogrammering och flerkärniga processorer, för systemvetare. För att kunna dra slutsatser kring detta behövdes data kring fenomenen fångas upp och beskrivas. Data som efterfrågades var:

1. Data kring inom vilka områden systemvetare arbetar.

2. Aspekter kring fenomenen parallellprogrammering och flerkärniga processorer. 3. Data kring utvecklingsrelaterade företags användning av parallellprogrammering. 4. Data kring systemvetenskapliga utbildningars erbjudande av kunskaper kring

parallellprogrammering och flerkärniga processorer, samt utbildningsansvarigas inställning till kunskaper kring dessa ämnen.

Punkt 1 studerades med hjälp av statistik kring vad systemvetare arbetade med.

För att samla in data som beskrev punkt 2 gjordes en litteraturstudie. Ovetenskapliga källor såsom tidningsartiklar och blogginlägg studerades i syfte att skapa en bild av rådande diskussion kring fenomenen. Vetenskaplig litteratur studerades i syfte att belysa faktaaspekter kring fenomenen. Punkt 3 och 4 studerades med hjälp av enkätundersökningar. Enkäten releterad till punkt 3

skickades till företag som ägnade sig åt utveckling av programvara, då detta (vid insamling av data kring punkt 1) identifierats som det enskilt största arbetsområdet för systemvetare. Systemvetare arbetar dock även inom andra områden än applikationsutveckling. Information relaterad till andra områden kommer dock i viss mån att fångas upp vid studier av punkt 1.

Enkäten som rörde punkt 4 skickades till kontaktpersoner för samtliga av Sveriges

systemvetarutbildningar. Systemvetenskapliga utbildningar bedömdes relevanta att studera, då det är dessa som förmedlar grundläggande kunskaper till systemvetare.

Slutligen genomfördes en analys; data från de fyra datainsamlingarna tolkades och kopplingar gjordes mellan dessa.

3.1

3.1 MetodansatsMetodansats

En kvalitativ insamlingsmetod ämnar att samla in data som kan beskriva unika situationer. Exempel på kvalitativa insamlingsmetoder är intervjuer och enkäter med fallstudier. En kvantitativ

insamlingsmetod ämnar istället att samla in data som vittnar om mer generella samband. Exempel på kvantitativa insamlingsmetoder är enkätundersökningar med slutna svarsalternativ. 30

Kvalitativa bearbetningsmetoder, metoder för sammanställande av insamlad data, baserar sig på tolkning av något slag. Ett exempel på kvalitativa bearbetningsmetoder är hermeneutik, vilket är en slags tillvägagångssätt för tolkning. En kvantitativ forskningsmetod strävar istället efter objektivitet. Exempel på kvantitativa forskningsmetoder är olika former av statistiska sammanställningar. 31

Kvalitativa analysmetoder, metoder som används för att dra slutsatser ur sammanställd data, karaktäriseras av att de har ett visst inslag av subjektiv tolkning. Ett exempel på en kvantitativ analysmetod är innehållsanalys. Kvantitativa analysmetoder avser beräkningar av olika statistiska mätvärden, t.ex. medelvärde och standardavvikelse. 32

Denna studie kommer att kombinera både kvalitativa och kvantitativa forskningsmetoder. Data kommer att samlas in med hjälp av en kvantitativ insamlingsmetod. Viss data kommer att

30 (Olsson & Sörensen, 2004) 31 (a a)

(13)

samlas in med hjälp av en systematisk litteraturstudie. Ytterligare data kommer att samlas in via två enkäter med fasta svarsalternativ.

Vid sammanställning av data kommer objektivitet att eftersträvas. Uppsatsens resultatdel kommer ej att innehålla inslag av tolkning.

Tolkning och analys kommer att utgå från ett kvalitativt synsätt. Analys kommer att utföras systematiskt och metodiskt. En tolkning är dock alltid subjektiv, och slutsatser som dras vid en sådan har alltid sin utgångspunkt hos den som tolkar 33.

3.2

3.2 DatainsamlingDatainsamling

3.2.1

3.2.1 LitteraturstudierLitteraturstudier

För att fånga upp en bred bild av den diskussion som finns kring ämnena parallellprogrammering och flerkärniga processorer, så begränsades informationssökningar inte till att endast inkludera strikt vetenskapliga källor. Målet var att få en övergripande bild av diskussionen och de argument som florerar i denna. Ett argument måste betraktas som ett argument, oavsett hur vetenskapligt förankrat detta är 34. Vid analys togs dock hänsyn till de olika källornas auktoritet, samt vilket slag

av information de förmedlade.

Samtliga litteraturstudier gjorde efter det tillvägagångssätt som presenteras i boken Att göra

systematiska litteraturstudier, av Forsberg och Wengström (2003). Forsberg och Wengström (2003) förespråkar systematiska sökningar av litteratur, samt presentation av sådana där tillvägagångssätt, insamlad litteratur, inklusionskriterier och exklusionskriterier presenteras detaljrikt och översiktligt. För att ovetenskapliga källor, vilka bedömdes kunna hjälpa till att ge en bredare bild av fenomenen undersöktes webbplatser för processortillverkaren Intel, samt för den svenska nyhetsbyrån IDG. Intel undersöktes då de är en stor tillverkare av flerkärniga processorer 35. IDG undersöktes då de är

utgivare för ett flertal svenska IT-branschtidningar, i vilka de studerade fenomenen omskrivs. Intels webbplats innehöll en avdelning med namnet ”Intel Software Network - Parallel

Programming and Multi-Core”, vilken var speciellt riktad mot utveckling av parallellt exekverande program för flerkärniga processorer. Avdelningen bestod av ett diskussionsforum samt ett stort antal bloggar. Efter en kortare överblick av forumet bedömdes dessa diskussioner främst handla om programtekniska aspekter såsom programmeringsalgoritmer och lösningar på specifika

programmeringsproblem. På grund av detta valdes istället en genomgång av avdelningens bloggar, vilka bedömdes vara mer diskuterande och argumenterande. Efter en genomgång av de senaste 200 blogginläggen bedömdes en mättnad vara uppnådd hos den information som fanns. Genomgången innebar läsning av rubriker, samt läsning av de inlägg vars rubrik indikerade att innehållet skulle kunna svara mot de frågor min studie ämnar söka svar på. Många inlägg var allt för lika varandra, vilket gjorde att inkludering ej motiverades. Utöver detta inkluderades samtliga inlägg som

bedömdes kunna svara mot denna studies syfte, vilket var 17 stycken inlägg.

IDGs webbplats undersöktes genom att artiklar som var relaterade till denna studies syfte

eftersöktes i webbplatsens egna artikeldatabas. Totalt fem sökningar gjordes i databasen, och endast ett sökord användes per sökning. De sökord som användes var ”parallell programmering”,

”parallellprogrammering”, ”multicore” (eller ”multi core”. ”multicore” och ”multi core” genererade samma resultat), ”flerkärnig”, samt ”flerkärniga”. Samtliga artiklar genomlästes, och artiklar som bedömdes kunna vara till hjälp vid besvarande av denna studies frågeställningar inkluderades. Totalt inkluderades 30 artiklar i denna studies resultat. (se tabell 1)

33 (Thurén, 1991)

34 (Björnsson, Kihlbom, Tersman, & Ullholm, 2006) 35 (Intel)

(14)

Tabell 1 – (Sökningar i IDGs artikeldatabas) Tabell 1 – (Sökningar i IDGs artikeldatabas)

Nr. Sökord Begränsningar Träffar Utvalda

1 "parallell programming" Inga 6 5

2 "parallellprogrammering" Inga 3 1

3 "multicore" / ”multi core” Inga 8 6

4 "flerkärnig" Inga 10 5

5 ”flerkärniga” Inga 73 13

Sum - - - 30

Sökningar efter vetenskapliga källor gjordes i databaserna ELIN@Örebro och ACM Digital Library. Åtta olika sökningar gjordes. Var och en av av dessa åtta sökning upprepades identiskt i de båda databaserna, vilket totalt resulterade i sexton sökningar. Endast ett sökord användes per sökning. Sökord som användes vara ”parallel programming”, ”parallel computing”, ”multicore” samt ”multi-core”. För varje sökord gjorde två sökningar: en sökning där sökordet användes som nyckelord, samt en sökning där artiklar, vilka innehöll sökordet i sin titel, eftersöktes. Sökningarna begränsades till att innefatta artiklar som tidigast var publicerade år 2007. Detta då jag ville

begränsa mig till ny och aktuell forskning, samt begränsa antalet artiklar. (se tabell 2)

Genom sökningarna hittades artiklar. För att sålla ut endast de artiklar som svarade mot min

undersöknings syfte gjordes två urval. Vid ett första urval lästes titel och sammanfattning (abstract) på samtliga artiklar som hittats. De artiklar som uppfattades svara mot min undersöknings syfte gick vidare till ett andra urval. Totalt 55 artiklar gick vidare från det första urvalet, till det andra. (se tabell 2)

(15)

Tabell 2 - (Sökningar i vetenskapliga databaser – Urval 1) Tabell 2 - (Sökningar i vetenskapliga databaser – Urval 1)

Nr. Sökord Sökfält Begränsningar Artiklar i

ELIN@Örebro Artiklar i ACM DL Utvalda artiklar 1 ”parallel programming”

Nyckelord Endast artiklar publicerade efter år 2007.

45 42 7

2 ”parallel programming”

Titel Endast artiklar publicerade efter år 2007.

20 18 9

3 ”parallel computing”

Nyckelord Endast artiklar publicerade efter år 2007.

159 28 3

4 ”parallel computing”

Titel Endast artiklar publicerade efter år 2007.

33 12 7

5 ”Multicore” Nyckelord Endast artiklar publicerade efter år 2007.

18 42 2

6 ”Multicore” Titel Endast artiklar publicerade efter år 2007.

108 38 22

7 ”Multi-core” Nyckelord Endast artiklar publicerade efter år 2007.

9 50 1

8 ”Multi-core” Titel Endast artiklar publicerade efter år 2007.

22 49 4

Sum - - - 55

Det andra urvalet gjordes genom att samtliga 55 artiklar lästes i fulltext (i de fall där fulltext fanns tillgänglig). Följande exklusionskriterier användes:

• Artiklar som inte bedömdes kunna vara till hjälp med att svara mot min studies syfte. • Artiklar som enbart inriktade sig mot tekniska aspekter, såsom fysisk teknik eller enskilda

algoritmer.

• Artiklar som endast bestod av en sammanfattning (abstract), och således inte fanns i fulltext. • Artiklar som bedömdes hålla allt för låg kvalitet (källor som inte angivit författarens namn,

källor som enbart bestod av illustrativa figurer eller källor där trovärdigheten bedömdes vara allt för låg)

• Artiklar som var dubbletter.

(16)

3.2.2

3.2.2 Enkätundersökning 1 – Företags användning av parallellprogrammeringEnkätundersökning 1 – Företags användning av parallellprogrammering

3.2.2.1 Utformning av enkät

3.2.2.1 Utformning av enkät

Olsson och Sörensen (2004) skriver att det första steget vid varje enkätundersökning är att analysera vilka frågor som skall ingå i enkäten, samt varför de skall ingå. Det är viktigt att analysera vilka variabler som skall studeras, och att endast ta med sådant som är viktigt för studiens syfte. Det är också viktigt att frågorna, såväl som svarsalternativen, är entydigt formulerade och lätta att förstå. Frågor och svar får inte kunna misstolkas, eller kunna vara föremål för tolkning. 36

De data som efterfrågades för varje företag var:

1. Vad det aktuella företaget utvecklade för applikationer (IT-konsulttjänster / Webblösning / Generella applikationer / Annat svar (öppet svarsalternativ)).

2. Hur många av de som anställdes på företaget var systemvetare (Nästan alla / En stor del / Ett fåtal / Ingen).

3. Huruvida företaget använde sig av parallellprogrammering vid utveckling av applikationer (Alltid / Ibland / Sällan / Aldrig).

4. Om systemvetare var delaktiga i utvecklingen av parallella applikationer (Alltid / Ibland / Sällan / Aldrig).

5. Varför de företag som inte använde sig av parallellprogrammering valt att avstå från detta. 6. Huruvida ett företag planerat att öka sin användning av parallellprogrammering (Ja / Nej). 7. Huruvida ett företag planerat att öka sin användning av parallellprogrammering inom det

närmaste året (Ja / Nej).

Utifrån dessa data formulerades enkätfrågor med fasta flersvarsalternativ. Alternativ för frågan som formulerats utifrån punkt 5 ovan baserades på skäl som bedömdes rimliga utifrån resultatet av denna studies litteraturstudie. Denna fråga fick även en möjlighet till ett öppet svarsalternativ. De svarsalternativ som gavs för frågan var:

• Det är ovidkommande inom det område/de områden där vi arbetar. • De plattformar vi utvecklar för har ej flerkärniga processorer. • Vi har inte tillräckligt mycket att vinna på det.

• Det skulle innebära för höga kostnader.

• Det finns inte tillräckligt bra utvecklingsverktyg.

• Parallellprogrammering är inte tillräckligt moget (ännu?). • Våra utvecklare har inte den kompetens som krävs. • Vi har inte satt oss in i frågan.

Annat svar (öppet svarsalternativ).

Vad ord som ”en stor del”, ”ett fåtal”, "ibland", och "sällan" innebär är subjektivt; olika

respondenter kan lägga in olika betydelse i orden 37. Det bedömdes dock vara svårt att formulera

alternativen annorlunda. Att fråga efter hur stor andel av de applikationer som skapas som är parallella är en fråga som skulle kunna uppfattas som svårbesvarad. Potentiellt hade det varit svårt för en respondent att exakt minnas en sådan andel, vilket hade gjort svaren otillförlitliga 38. En fråga

36 (Olsson & Sörensen, 2004) 37 (a a)

(17)

kring exakt hur många systemvetare som arbetade på företaget hade kunnat uppfattas som krånglig och svårbesvarad. Grundsyftet med de data som samlades in var ej heller att fastställa några exakta värden. Syftet var istället att skapa en övergripande bild av de förhållanden som rådde. Således bedömdes subjektiviteten inte utgöra en fara för insamlad data.

(För komplett enkät, se avsnitt 9.1 – Bilaga 1 – Enkäter – Enkät 1 – Företags användning av parallellprogrammering.)

3.2.2.2 Val av respondenter

3.2.2.2 Val av respondenter

Urval av respondenter söktes med hjälp av webbverktyget hitta.se. Företag i kategorin ”IT-systemleverantörer & Applikationsleverantörer ” söktes. I syfte att begränsa urvalet begränsades sökningarna till företag i städerna Örebro, Malmö, Umeå och Göteborg. Städer spridda över hela Sverige valdes för att resultaten skulle återspegla en geografisk bredd. Exakt vilka städer som studerades bedömdes ej vara relevant.

Totalt hittade hitta.se 309 företag. Samtliga företags hemsidor gicks igenom. Potentiella respondenter valdes utifrån följande inklusionskriterier:

• Företaget som uttryckte att de utvecklade mjukvara (Generella program, konsult-utvecklingsjobb, webblösningar).

• Företagen som hade en fungerande hemsida.

• Företag som hade kontaktinformation på sin hemsida.

Totalt identifierades 52 företag som potentiella respondenter. E-postadresser användes för att kontakta dessa.

Ett alternativt perspektiv hade varit att göra ett slumpmässigt urval av hela Sveriges samtliga IT-företag. Motivationen till varför detta inte gjordes var att en sådan sökning statiskt sätt skulle medfört inkludering av främst små företag, samt missat de få stora företagen. Genom att gå igenom samtliga företag i ett antal städer bedömdes chansen att fånga upp fler typer av företag vara större.

3.2.2.3 Provundersökning

3.2.2.3 Provundersökning

I syfte att undersöka om en enkät uppfattas på det sätt som den är tänkt att uppfattas, och ifall den ger korrekta svar på de frågor som ställs, så kan en provundesökning utföras. En provundersökning är en mindre undersökning vilken utförs på en mindre population som är tänkt att motsvara

enkätundersökningens tänkta respondenter. 39

En provundersökning, inför enkätundersökning 1, genomfördes genom att enkäten lämnades ut till fyra personer som var verksamma inom IT-branschen. Personerna fick fylla i enkäten, och efteråt berätta om hur de hade tolkat enkätens frågor och svarsalternativ. Alla testpersonerna förstod frågor/ svarsalternativ, och uppfattade enkäten så som den var tänkt att uppfattas. Resultatet av

testpersonernas enkäter användes ej i denna studies resultat.

3.2.3

3.2.3 Enkätundersökning 2 – Parallellbearbetning och systemvetenskaplig utbildningEnkätundersökning 2 – Parallellbearbetning och systemvetenskaplig utbildning

3.2.3.1 Utformning av enkät

3.2.3.1 Utformning av enkät

De två huvudsakliga data som efterfrågades var om parallellprogrammering ingår i

systemvetenskapliga utbildningar, samt om utbildningen ger studenterna insikt i skillnader mellan enkärniga och flerkärniga processorer. Frågor kring detta bedömdes ha svaren ja eller nej; antingen tar utbildningar upp dessa moment, eller så gör dem det inte. Svarsalternativ av typen "Ja, i hög grad" och "Ja, i viss omfattning" är inte entydiga och innebär tolkningsproblem för respondenten 40.

39 (a a)

(18)

Att mäta graden av förekomst i antal timmar är också problematiskt; det är tveksamt om alla respondenter kan uppskatta en sådan tidsåtgång. Således ansågs Ja eller Nej vara de bästa möjliga svaren.

Detta gav två frågor:

• 1. Ingår parallellprogrammering i er utbildning? (Ja / Nej)

• 2. Ger utbildningen studenterna insikt i skillnader mellan enkärniga och flerkärniga processorer? (Ja / Nej)

Om en utbildning inte innehöll dessa moment ansågs det vara intressant att veta varför. Detta

motiverade, i de fall där respondenten svaret nej på en huvudfråga, en följdfråga vilken kunde fånga upp denna information. I syfte att göra det enkelt för respondenterna beslutades att frågorna skulle ges fem fasta svarsalternativ, såväl som ett öppet svarsalternativ. För att få en bra svarsfrekvens är det viktigt att en enkät är enkel att fylla i 41. De svarsalternativ som formulerades var:

• Dessa kompetenser efterfrågas inte av systemvetare.

• Tidsbrist; det finns så många andra viktigare saker att lära sig.

Området är ännu inte tillräckligt moget (ännu?). (För frågan kring parallellprogrammering) • Vi saknar kompetens inom området.

• Vi har inte satt oss in i frågan. • Annat svar:

Då det är fullt möjligt att flera av svarsalternativen stämmer gavs möjlighet att markera alla alternativ som uppfattades som korrekta. Frågan formulerades därför som:

• Varför ingår inte detta i er utbildningen? Markera de alternativ som passar.

Ytterligare data som efterfrågades var om de utbildningar som idag ej innehöll de två momenten hade tänkt att inkludera dem i utbildningen inom en snar framtid. Detta gav ytterligare en följdfrågor till vardera av huvudfrågorna:

• Har ni planer på att inkludera parallellprogrammering i er utbildning? • Om ja: Har ni planer på att inkludera detta inom det närmaste året? • Har ni planer på att, i er utbildning, börja ta upp dessa skillnader?

• Om ja: Har ni planer på att börja ta upp detta inom det närmaste året?

Båda dessa frågor gavs svarsalternativen Ja och Nej; antingen hade de planerat införa momenten i sin utbildning, eller också hade de inte tänkt göra det.

(För komplett enkät, se avsnitt 9.1 – Bilaga 1 – Enkäter – Företags användning av parallellprogrammering.)

3.2.3.2 Val av respondenter

3.2.3.2 Val av respondenter

Som respondenter till enkäten eftersöktes utbildningsansvariga vid systemvetenskapliga

utbildningar. För att möjliggöra identifiering av dessa behövdes samtliga av de institutioner, där systemvetenskapliga utbildningar bedrevs, identifieras. I syfte att identifiera systemvetenskapliga institutioner eftersöktes systemvetenskapliga utbildningar. Dessa utbildningar identifierades genom genomsökning av studera.nu, vilket är en webbplats som ger en översiktlig bild av samtliga

högskoleutbildningar i Sverige. På studera.nu återfanns en avdelning med namnet ”Program A-Ö på grundnivå”, vilken tillhandahöll en lista i bokstavordning över de av Sveriges högskoleutbildningar

(19)

som ges på grundnivå. Listan genomsöktes efter utbildningar som innehöll bokstavskombinationen ”systemvet”. Totalt 14 utbildningar identifierades:

Data och systemvetenskap, miljöinriktning 180 hp, vid Sveriges lantbruksuniversitetData- och systemvetenskap 180 hp, vid Blekinge tekniska högskola

Data- och systemvetenskap 180 hp, vid Stockholms universitetData- och systemvetenskap 180 hp, vid Uppsala universitet

Data- och systemvetenskap med inriktning mot nätverksteknik 180 hp, vid Högskolan Väst

Systemvetare 180 hp, vid Högskolan i SkövdeSystemvetarprogram 180 hp, vid Lunds universitetSystemvetarprogram 180 hp, vid Växjö universitetSystemvetarutbildning 180 hp, vid Högskolan i BoråsSystemvetenskap 180 hp, vid Luleå tekniska universitet

Systemvetenskap, IT, människa och organisation 180 hp, vid Göteborgs universitetSystemvetenskapliga programmet 180 hp, vid Högskolan Dalarna

Systemvetenskapliga programmet 180 hp, vid Örebro universitet

Systemvetenskapliga programmet, inriktning mot design, interaktion och innovation

180 hp, vid Umeå universitet

Utbildningarnas webbplatser identifierades med hjälp av sökmotorn Google. När utbildningarnas webbplatser var identifierade undersöktes dessa efter lämpliga kontaktpersoner. Det visade sig att det inte var enkelt att veta vilken person som skulle kontaktas i alla av fallen. På grund av detta gjordes valet att skicka enkäten till den person som uppfattades som mest lämplig, och be denne att vidarebefordra enkäten till en mer lämplig person om detta var aktuellt. Lämpliga kontaktpersoner, t.ex utbildningsansvarig, studievägledare eller programansvarig, identifierades för samtliga 14 utbildningar. E-postadresser samlades in, i syfte att kunna kontakta dessa.

3.2.4

3.2.4 Utskick av enkäterUtskick av enkäter

Samtliga identifierade respondenter, i de båda enkätundersökningarna, kontaktades via e-post. E-brevet innehöll:

• En förklaring av denna studies syfte • En förfrågan om att fylla i aktuell enkät

• En förklaring av att de resultat som samlades in skulle behandlas konfidentiellt, och således ej kunna kopplas till den enskilda respondenten.

• Aktuell enkät, som textmeddelande direkt i e-brevet.

3.2.5

3.2.5 Vad gör systemvetare?Vad gör systemvetare?

För att skapa en bild av inom vilka områden systemvetare arbetar i den praktiska verkligheten genomsöktes fackförbundet Juseks hemsida. Juseks webbplats innehöll en avdelning med titeln ”Vad jobbar systemvetare med?”, vilken innehöll statistik över systemvetares arbetsuppgifter.

(20)

3.3

3.3 Tillvägagångssätt för analysTillvägagångssätt för analys Analysen gjordes i två steg.

Som ett första steg analyserades parallellbearbetning som fenomen. Argument kring för- och nackdelar analyserades. I detta steg var även enkätsvar från enkätundersökningarna föremål för analys. Slutligen kopplades dessa två datakällor (analys kring litteraturstudien, samt enkätsvar) till varandra.

Som ett andra steg analyserades systemvetares relation till parallellbearbetning. En slutsats drogs kring vilka kunskaper en systemvetare behöver ha kring parallellbearbetning, flerkärniga

processorer och parallellprogrammering. (se figur 1 – Analysdiagram)

3.3.1

3.3.1 Parallellbearbetning, nytta och praktikParallellbearbetning, nytta och praktik

3.3.1.1 Analys av litteraturstudie kring för- och nackdelar med parallellprogrammering

3.3.1.1 Analys av litteraturstudie kring för- och nackdelar med parallellprogrammering

Avdic (2007) menar att det kan vara onödigt överdrivet att skilja på resultat och analys när det gäller litteraturstudier. Syftet med denna analys var därför endast att formulera en kortfattad och lättöverskådlig sammanfattning av litteraturresultatet. En sådan lättöverskådlig sammanfattning underlättade vid vidare analys.

I detta analysmoment togs argument kring för- och nackdelar, från såväl vetenskaplig som

ovetenskaplig litteratur, upp. Olika slag av information i artiklar bedömdes trovärdig utifrån vilken slags information saken gällde (se avsnitt 3.4 – Källkritik).

Figur

(21)

3.3.1.2 Utvärdering av enkätundersökning 1 – Företags användning av

3.3.1.2 Utvärdering av enkätundersökning 1 – Företags användning av

parallellprogrammering

parallellprogrammering

I detta moment utvärderades rådata från enkätundersökning 1. Vad talade insamlad data för? Användes parallellprogrammering ute i verkligheten?

Insamlad sifferdata tolkades och låg till grund för formulering av beskrivande text. Denna beskrivande text utgjorde produkten av denna delanalys.

3.3.1.3 Kopplingar – Parallellbearbetning i teori och praktik

3.3.1.3 Kopplingar – Parallellbearbetning i teori och praktik

Analysen av litteraturstudien och utvärderingen av enkätsvaren ställdes mot varandra. De två texterna jämfördes i syfte att se om de båda informationskällorna gav en samstämmig bild, och för att identifiera skillnader mellan litteraturen och undersökningen av den praktiska verkligheten. I texterna identifierades ett antal punkter: bärande påståenden vilka beskrev situationen kring flerkärniga processorer och parallellprogrammering. De punkter som kunde identifieras i de båda källorna jämfördes med varandra, i syfte att undersöka om de båda källorna talade för samma sak, eller om de sa emot varandra. Texterna jämfördes endast på de punkter som förekom i de båda texterna; punkter som endast togs upp i en av texterna, t.ex. vissa tekniska detaljer från

litteraturstudien, togs ej upp i jämförelsen.

Produkten av denna analys var en beskrivande text som sammanfattade skillnader och likheter mellan de två textuella källor som var föremål för analysen. Punkter som endast togs upp i en av analysens ingående textuella källor togs ej upp i denna produkt. Sådana punkter gick istället vidare till slutanalysen, där slutsatser kring studien drogs.

(se illustration 2 – Analysdiagram 2)

Figur

(22)

3.3.2

3.3.2 Utvärdering av enkätundersökning 2 – Parallellbearbetning och systemvetenskapligUtvärdering av enkätundersökning 2 – Parallellbearbetning och systemvetenskaplig utbildning

utbildning

I detta moment utvärderades rådata från enkätundersökning 2. Vad talade insamlad data för? Lärdes parallellprogrammering och kunskaper kring flerkärniga processorer ut på systemvetenskapliga utbildningar? Om inte: varför?

Insamlad sifferdata tolkades och låg till grund för formulering av beskrivande text. Denna beskrivande text utgjorde produkten av denna delanalys.

3.3.3 Slutanalys – Vilka kunskaper behöver en systemvetare ha?

3.3.3 Slutanalys – Vilka kunskaper behöver en systemvetare ha?

Information kring vad en systemvetare arbetar med kopplades till slutsatsen kring

parallellbearbetnings nytta och praktiska användning, samt rådata kring systemvetenskapliga utbildningars förhållande till parallellprogrammering och flerkärniga processorer. Rörde sig systemvetare inom områden där parallellprogrammering och flerkärniga processorer var aktuella? Hur berörda var systemvetare av parallellprogrammering och flerkärniga processorer? Var detta någonting som en systemvetare bör ha kunskaper kring?

3.4

3.4 KällkritikKällkritik

Det är viktigt att förhålla sig kritisk till de källor som inkluderas i en studie. Ett första kriterium är att en källa måste vara äkta, d.v.s. vara det som den utger sig för att vara. Även tidssamband bör tas i beaktning: ett allt för långt tidsintervall mellan en händelse, och en källas beskrivning av denna, ger större skäl för tvivel. Slutligen är det viktigt att iaktta en källas tendensfrihet: vem står

egentligen bakom artikeln, och vad har denna för intressen? Finns det pengar med i spelet? Vill artikelförfattaren göra reklam för någon produkt? 42

I denna studie har flera slag av information ingått i resultatet. De olika källorna är intressanta på olika sätt, och vissa kan inte betraktas som hundraprocentig fakta. Den vetenskapliga litteraturen är intressant då de faktaförhållanden som nämns kan betraktas som relativt trovärdiga. Enkätsvar vittnar om faktiska förhållanden i verkliga världen. En artikel i branschtidningen Computer Sweden är intressant på det sättet att den vittnar om på vilka sätt ett fenomen diskuteras, och debatteras. En intervju med företrädare från Intel, Sun och Microsoft är intressanta eftersom de vittnar om att företagen engagerar sig djupt i området, och spenderar stora pengar på forskning kring det. En bloggare på Intel är intressant då denne berättar om företagets satsningar, och ger en bild av fördelar och problem kring parallellprogrammering.

En företrädare för ett företag, eller ett bloggare från Intel, är dock definitivt inte tendensfria; de har en mycket öppen agenda där ekonomiska vinster står i fokus. Information från dessa källor kan ej betraktas som fakta, annat än om det gäller specifikationer kring företagens egna produkter. Företagen har ingen anledning att ljuga om huruvida de utvecklar en viss produkt eller ej. Om företaget påpekar att produkten är effektiv och användbar är detta dock inte att betrakta som fakta. Författare till en artikel i en icke vetenskaplig tidsskrift (t.ex. Computer Sweden, Electronic Design eller Tech World) har troligtvis inte någon dold agenda med sitt skrivande. Dock presenteras artiklarna inte på ett vetenskapligt sätt, vilket gör att de inte kan betraktas som hundraprocentiga faktakällor.

När det gäller tidsaspekter rör de flesta källorna en situation som i högsta grad är här och nu, och samtliga källor är färska. Ett par källor rör dock äldre forskning och satsningar kring

parallellbearbetning. Då denna äldre forskning inte är målet för undersökning har inga djupare studier gjorts kring detta.

(23)

3.5

3.5 MetodkritikMetodkritik

För att djupare kunna utföra en kritisk granskning av denna studies metod så bör även studiens resultat tas i beaktande. Detta då en insikt i studiens utfall är nödvändig för en mer ingående granskning av metoden. På detta sätt kan metoden granskas i ett större sammanhang, och det blir lättare att se hela bilden. På grund av detta redogör jag för samtlig metodkritik efter det att resultatet presenterats. Metodkritik återfinns i avsnittet om metoddiskussion (se avsnitt 7.2 –

(24)

4

4

Resultat

Resultat

4.1

4.1 LitteraturstudieLitteraturstudie

Resultatet av litteraturstudien sammanfattar för- och nackdelar med parallellbearbetning, samt nytta av parallellbearbetning i specifika applikationstyper.

Informationen kring för- och nackdelar med sorterats in under tre övergripande fördelar, samt två övergripande nackdelar.

4.1.1

4.1.1 För- och nackdelar med parallellbearbetningFör- och nackdelar med parallellbearbetning

4.1.1.1 Fördelar

4.1.1.1 Fördelar 4.1.1.1.1

4.1.1.1.1 PrestandavinsterPrestandavinster

Datorer med flera processorkärnor kan ge stora prestandavinster. Denna prestandaökning kommer dock inte utav sig själv, utan kräver att applikationen är utvecklad speciellt för parallell exekvering. Traditionella program som utvecklats för seriell exekvering vinner små, eller inga, prestandavinster. Dessa program använder sig i praktiken endast av en bråkdel av den kapacitet som finns. 43

Exakt hur stora dessa prestandavinster är framgår inte hos alla källor. Gaudin (2008) skriver att prestandavinsterna av parallell exekvering kan vara så höga som 100% per kärna, men är också noga med att påpeka att så sällan är fallet med dagens program. Microsofts parallellsystemsexpert Dan Reed beskriver prestandavinsterna som att ”prestandan kommer att gå in i warp drive”, och att detta kommer att gälla såväl stationära som mobila lösningar 44. Exakt vad denna ”warp drive”

innebär framgår inte.

Doug David, chef på Intel, säger i en intervju i tidningen Computer Sweden att det är viktigt för företags lönsamhet att utnyttja processorkapacitet fullt ut. Detta då ett bättre utnyttjande ökar applikationers prestanda, vilket i förlängningen innebär kostnadsfördelar. 45

Vissa källor påpekar också att parallell exekvering inte alltid är nödvändigt, eller ens önskvärt. Fjälling (2007) skriver i tidningen Computer Sweden att webbservrar många gånger kan utnyttja delar av kraften hos parallella datorer, utan att kräva speciella parallellexeverande applikationer. Detta då servrar har en naturlig trådningsmekanism som hanteras helt och hållet av servern själv. 46

Jim Skirvin, huvudansvarig för Holland Computer Center vid Nebraskas Universitet, påpekar att alla applikationer inte behöver parallell exekvering, och att vissa speciella applikationer t.o.m. med fördel kan köras på processorer med endast en kärna. Detta då den enskilda processorkärnan ofta är snabbare i en enkärnad processor. 47

Även den vetenskapliga litteraturen pekar på prestandavinster för parallella program. Marowka (2007) skriver i sin artikel att program behöver bli allt mer parallella för att kunna bli snabbare, och dra prestandafördelar av den nya hårdvaran. Marowka (2007) menar att de prestandavinster som kan nås är värt den möda och de kostnader som utveckling av parallella applikationer för med sig. Även Ernst och Stevensson (2008) påpekar att många slags program skulle kunna dra stor nytta av den nya tekniken, och skriver att många applikationer kan tjäna på parallellitet, på samma sätt som applikationer kan tjäna på traditionell trådning.

Tröger (2008) menar att parallellisering av applikationer är en allmänt vedertagen princip för

43 (Gaudin, 2008; Lotsson, 2008c; Fjälling, 2007, Wallström, 2008; Hoover, 2008; Fontana, 2007; Lotsson, 2007; Wong, 2007b)

44 (Fontana, 2007) 45 (Larsson, 2008a) 46 (Fjälling, 2007) 47 (Brodkin, 2008a)

(25)

förbättrad prestanda. Förhållandet mellan graden av förbättrad prestanda, och antal processorer kan sammanfattas med Amdahls lag, och Gustafssons lag. Amdahls lag beskriver hur graden av en applikations parallellitet (uttrycks i %) medför hur många processorer (processorkärnor) som applikationen maximalt kan utnyttja. Detta säger också hur många gånger snabbare en parallell applikation kan vara än en icke-parallell applikation. Gustafsons lag menar att den övre gränsen för hur många processorer en parallell applikation kan utnyttja även beror på hur stora de uppgifter som skall utföras är. 48 (se figur 3 – Amdahls lag)

4.1.1.1.2

4.1.1.1.2 EnergisnålhetEnergisnålhet

Det är tekniskt möjligt att skapa supersnabba enkärniga system, fria från parallellbearbetning. Dessa processorer skulle dock få en väsentligt ökad energiförbrukning, samt alstra betydligt mer värme än dagens processorer. Ökad energiförbrukning innebär högre kostnader 49. Ökad värme innebär behov

av effektivare kylning, vilket också innebär högre kostnader 50. Flerkärniga processorer kan, till sin

natur, vara betydligt mer strömsnåla 51.

Mats Brorsson, professor på KTH, berättar i en intervju i tidningen Computer Sweden att

energikostnader ökar när kravet på processorprestanda ökar, då en högre klockfrekvens kräver en högre matningsspänning för att processorn ska kunna skilja mellan ettor och nollor. Efter två till fyra gigaherz börjar energiförbrukningen öka dramatiskt. 52 På grund av att flerkärniga processorer

använder sig av flera, fast långsammare, processorer kan de öka prestandan samtidigt som de sänker elförbrukningen. 53

Ett flerkärnigt system har också möjligheten att stänga av de processorkärnor som inte används för tillfället. På detta sättet kan ytterligare energi sparas. 54.

Det finns, förutom rena kostnadsaspekter, även miljöaspekter på energiförbrukning. Michael Dell, grundaren av datorföretaget Dell, säger i tidningen Computer Sweden att de tagit fram ett

webbaserat verktyg som kan räkna ut hur mycket koldioxid-utsläpp som sparas genom att välja

48 (Tröger, 2008)

49 (Lotsson, 2008a; Lotsson, 2008c) 50 (Lotsson, 2008a)

51 (Lotsson, 2008a; Lotsson, 2008b; Lotsson, 2008c; Dobos, 2008; Inge, 2008; Wong, 2007b; Dvorak, 2008) 52 (Lotsson, 2008b)

53 (Larsson, 2008a)

54 (Lotsson, 2008c; Löfgren, 2008; Dvorak, 2008) Figur

(26)

deras nya, flerkärniga, servrar. 55.

Det finns även en aspekt på en minskad värmealstring som inte enbart rör kostnader. Mindre värme medför att mindre kylning behövs, vilket i sin tur ger tystare datorer. 56

En vetenskaplig studie 57 visar att flerkärniga processorers förmåga att tillfälligt stänga av de

processorkärnor som inte används, innebär ett drastiskt minskat energibehov. Undersökningen inriktade sig endast på processortillverkaren AMD:s processorer. 58

4.1.1.1.3

4.1.1.1.3 Framtidens teknik?Framtidens teknik?

Snabbare enkärniga processorer ger en problematiskt ökad energiförbrukning. Detta gör att det i praktiken är svårt att tillverka användbara produkter i denna klass. Strömproblemen har bromsat klockfrekvensökningen för den enskilda processorkärnan. Flerkärniga processorer är en lösning på problemet, då dessa möjliggör en lägre energiförbrukning. 59

Huelskoetter (2008c) skriver på sin Intel-baserade utvecklarblogg att den nya hårdvaran tvingar mjukvaran att följa med; programmerare måste utveckla parallellexeverande program för att kunna utnyttja den nya hårdvarans fördelar. Steinberg (2008a), ytterligare en bloggare hos Intel, påstår att enkärniga processorer blott tillhör det förflutna och aldrig kommer att komma tillbaka. Steinberg (2008a) menar att det blir allt viktigare för programutvecklare att anpassa sig till de nya

förutsättningarna. Även Dvorak (2008), på tidningen Machine Design, tror att framtiden för processorer kommer att vara flerkärnig.

Breshears (2008b; 2008c) påpekar dock på sin blogg att seriell programmering kommer att vara aktuellt även i framtiden. Han menar att vikten av seriella optimeringsalgoritmer även i framtiden kommer att vara viktiga programmeringsinslag, då inte all form av kod lämpar sig för parallell exekvering. 60

Även många enbart seriella applikationer kommer att köras även i framtiden. Många företag

använder sig också av befintliga applikationer, som är såpass omfattande att de inte låter sig skrivas om på en natt. 61 De befintliga applikationer är ofta så stora och omfångsrika att det i praktiken blir

billigare att köpa en ny specialanpassad dator, än att skriva om applikationen. 62.

Även vetenskaplig forskning har visat att existerande programmeringsparadigm och språk, såväl som existerande design patterns inte lämpar sig för den nya hårdvaran. För att utnyttja den nya hårdvara kommer det att krävas nya verktyg och design patterns, såväl som nya teststrategier, mjukvaruarkitekturer, samt ett nytt slag av algoritmiskt tänkande. Teknikförändringen beskrivs dock som oundviklig. Förr var parallellprogrammering något som endast vissa specialämnen använde sig av; idag är ämnet högaktuellt inom alla fält. Därför är det viktigt för utvecklare av applikationer att lära sig parallellprogrammering. 63

Marowka (2007) pekar på att endast parallella program kan dra fördel av flerkärniga processorer, och uttrycker att parallella program är framtiden. Marowka (2007) erkänner dock att området idag är kantat av problem, då utvecklingen är komplicerad och problematisk.

Hårdvarutrenden beskrivs av Ernst och Stevensson (2008) som att fler och fler processorer ger stöd för parallella program. De menar att detta kommer att ställa nya krav på utvecklare då nuvarande

55 (Brundin, 2006) 56 (Söderlind, 2007) 57 (Birtcher & Lizy 2008) 58 (a a)

59 (Lotsson, 2007; Fjälling, 2007) 60 Breshears (2008b; 2008c) 61 (Gaudin, 2008; Brodkin; 2008a) 62 (Brodkin; 2008a)

(27)

programmeringsmodeller inte längre kommer att vara tillämpbara. Ernst och Stevensson (2008) förutspår att seriell programmering kommer att bli allt mindre accepterat, i takt med att antalet kärnor i processorerna ökar.

Massingill, Mattson och Sanders (2007) skriver om befintliga applikationers relation till

parallellprogrammering. Dessa menar att många parallella program börjat som seriella, och sedan skrivs om till parallella. Denna omskrivning beskrivs som problematisk. För att lösa problemen har författarna tagit fram PPLP (Pattern Language for Parallel Programming), ett speciellt patternspråk som syftar till att förenkla omkodningen av seriella program. 64

Mattson och Wrinn (2008) påpekar att hårdvarutvecklingen stadigt går framåt, men att mjukvaran inte hänger med. De anser att fler måste lära sig parallellprogrammering. 65

Det finns vetenskapliga artiklar som beskriver införandet av parallellprogrammering i

datavetenskapliga utbildningar. Graham (2007) skriver att ”Longwood University” har valt att inkludera parallellprogrammering i sina datavetenskapliga utbildningar, med motivationen att hårdvaran och tekniken blir allt mer spridd. Ernst och Stevensson (2008) skriver att ”University of Winsconsin” har låtit parallellism genomsyra hela sin datorvetenskapliga utbildning, för att få studenterna att känna att parallella program alltid är det naturliga. Även det mindre ”Hood College” har börjat lära ut parallellprogrammering, då allt fler studenter intresserar sig för parallella program och efterfrågar utbildning i utveckling av dessa 66.

Tröger (2008) menar att utveckling av parallella program är så olik utveckling av seriella, att det är viktigt för utvecklare att lära sig tänka parallellt från första början när de lär sig skriva program. Ernst och Stevensson (2008) pekar på vikten av att inkludera parallellprogrammering, och kunskap om de flerkärniga systemen, i datorvetenskapliga utbildningar, och beskriver läget genom att skriva:

”In a world where every machine is multiprocessor, we consider it a good trait for our students to be always thinking about ways to take advantage of concurrency.”

- Ernst och Stevensson (2008), sid. 234

4.1.1.2 Nackdelar

4.1.1.2 Nackdelar 4.1.1.2.1

4.1.1.2.1 Parallellprogrammering är svårtParallellprogrammering är svårt

Ett flertal källor hävdar att parallellprogrammering är svårt, och till sin natur mer komplicerat än traditionell seriell utveckling.

Forskaren Johan Bevemyr förklarar i en artikel i tidningen Computer Sweden att parallell

programmering är svårare än seriell programmering. Bevemyr menar att det dels är andra typer av algoritmer som är aktuella, men också att det rör sig om en radikalt annorlunda

programmeringsmodell. 67

Bilha Mendelson på Intel berättar att den stora utmaningen med parallellprogrammering ligger i att kunna urskilja hur en arbetsuppgift kan delas upp i smådelar, vilka sedan kan lösas parallellt. Mendelson menar att detta är en mycket komplicerad uppgift, t.o.m. så komplicerad att Intel experimenterar med maskininlärning för att lösa den. Mendelsson menar att programmering riktad mot många processorkärnor kan kräva en stor mental omställning. 68

Forskaren Sriram Vangel berättar i en intervju för tidningen Computer Sweden att

64 (Massingill, Mattson & Sanders, 2007) 65 (Mattson och Wrinn, 2008)

66 (Liu, 2008) 67 (Larsson, 2008c) 68 (Lotsson, 2008a)

References

Related documents

Nearly all the parents (l4) stated that the children could sleep in the seats, but seven parents mentioned that the child s heed fell forward when it slept and suggested that

Riksdagen ställer sig bakom det som anförs i motionen om att se över hur kommunerna kan ges bästa möjliga förutsättningar att bedriva en kvalitativ och resultatinriktad

Länder som bestämmer sig för att det är sommartid som ska gälla ska ställa fram klockan för sista gången i mars 2021.. De som vill ha vintertid, eller normaltid, som det

[r]

Syftet med denna studie var att beskriva pappor/partners kunskaper och känslor gällande amning samt hur de resonerar kring jämställdhet och delaktighet när det gäller

(Undantag finns dock: Tage A urell vill räkna Kinck som »nordisk novellkonsts ypperste».) För svenska läsare är Beyers monografi emellertid inte enbart

bakgrunden har juridiska fakultetsnämnden vid Uppsala universitet inget att erinra mot förslagen i betänkandet SOU 2019:53. Förslag till yttrande i detta ärende har upprättats

Nuvarande vinklar läses in från textfilerna Räknar ut skillnad i steg mellan nuvarande och önskad position Går antalet uträknade steg Skriver nya elevationsvinkeln