Problemet är att webbläsarens programspråk – som heter Javascript – inte är konstruerat för tunga beräkningar eller för parallell programmering. Intel försöker nu reparera denna brist i efterhand. Det som Intel vill stödja är så kallad dataparallellism – när en stor mängd data ska utsättas för en gemensam bearbetning.
Utökningen av Javascript kallas ”Parallell JS”. I demonstrationer visar Intel hur Javascript klarar av att skala om en bild och göra en fysiksimulering. Prestanda blir rimliga först när programmeraren växlar från Javascript till Parallell Javascript.
Parallellismen i River Trail uttrycks på en hög nivå. Värdena som ska bearbetas stoppas in i en datatyp kallad parallellArray och skickas tillsammans med en algoritm för att bearbetas enligt någon av sex olika metoder: map, combine, reduce, filter, scan, scatter.
Den kodutvecklare använt det paradigm som kallas funktionell programmering känner igen de sex metoderna. Också för den som programmerar i C++ direkt för processorn meddelar Intel att företaget söker efter att höja abstraktionsnivån med hjälp av just funktionell programmering. Akademin har i decennier tjatat om paradigmet som en universalbot. Just nu tycks Intel vara redo för att släppa in idéerna:
– Funktionell programmering ser ut att bli en av grunderna för parallell programmering i framtiden, med dess högre abstraktionsnivåer och automatiska parallellisering. Kompilatorn kan själv upptäcka parallellismen vilket avlastar programutvecklaren från att uttrycka allting explicit, som den måste i Open CL eller Cuda, säger Intels teknikchef Justin Rattner.
Här är projektet River Trail på webben: https://github.com/RiverTrail. Där finns bland annat en plugin till webbläsaren Firefox – rivertrail.xpi – att ladda hem för den som vill experimentera med Parallell JS – tillägget är ett gränssnitt till OpenCL.