Digital assistent ska hjälpa ninja-programmerare
IBM:s Watson och Apples Siri är två exempel på datoriserade system som hjälper oss människor analysera information och få svar. Forskare vid Linnéuniversitetet har tagit fram ett system som på liknande sätt hjälper programmerare skapa programkod som bättre utnyttjar kapaciteten hos dagens datorer och mobiler.
Moderna IT-prylar – datorer, surfplattor, mobiler – innehåller processorer som kan arbeta med flera uppgifter parallellt. De flesta program och appar är dock utformade för att bearbeta uppgifter sekventiellt, en i taget, vilket innebär att stora delar av processorernas kapacitet inte används. För att utnyttja resurserna maximalt krävs avancerad kunskap i så kallad parallellprogrammering. Det är mycket svårare och de som är experter på detta kallas ibland ninja-programmerare.
– Det har utvecklats olika modeller för parallellprogrammering, men många nybörjare gör ändå vanliga misstag som kan leda till försämrad prestanda eller till att ett program beter sig konstigt. Därför utvecklar vi en kognitivt baserad digital assistent som hjälp, säger Sabri Pllana, ledare för High-Performance Computing Center och lektor i datavetenskap vid Linnéuniversitetet.
Kognitiva datorsystem
Kognition är en samlingsterm för processer som handlar om bland annat kunskap, tänkande och information. Kognitiva datorsystem ligger på gränsen till ett genombrott på grund av deras förmåga att bearbeta naturligt språk. Detta kommer att göra en helt ny nivå av interaktion mellan människor och datorsystem möjlig, vilket kan hjälpa oss att fatta bättre beslut.
Det kanske mest kända kognitiva datorsystemet är IBM:s Watson, som besegrade två tidigare mästare i tv-frågesporten Jeopardy! år 2011. Apples Siri och Googles Nu är andra exempel på system som kan svara på frågor om hälsa, kalendrar, sport och annat.
Hjälper nybörjare i parallellprogrammering
– På ett sätt som liknar Siris kan vår Parallel Programming Assistant (PPA) svara på frågor som rör parallell programmering. PPA kan kommunicera och interagera i realtid via text och tal. En nybörjare på parallellprogrammering kan ställa frågor, så söker PPA i sin kunskapsdatabas efter ett lämpligt svar, berättar Sabri Pllana.
Den PPA forskargruppen skapat utvärderas med hjälp av studenter som läser parallellprogrammering vid Linnéuniversitetet. Preliminära resultat tyder på att assistenten erbjuder värdefulla svar som skulle vara till hjälp för nybörjare och att dessa även är villiga att använda en sådan interaktiv digital assistent när de utvecklar sina program. Forskarna tror därför att PPA:n kan användas som en pedagogisk resurs på en grundkurs i parallellprogrammering – och att man i framtiden inte behöver vara en ninja för att utnyttja möjligheterna med parallellprogrammering.
Publikationen: Using Cognitive Computing for Learning Parallel Programming: An IBM Watson Solution, i Procedia Computer Science
Mer information:
Sabri Pllana, ledare för High-Performance Computing Center och lektor i datavetenskap vid Linnéuniversitetet, tel 0470-76 74 29, e-post sabri.pllana@lnu.se
Anders Runesson, forskningskommunikatör, 073-064 82 71, anders.runesson@lnu.se