4x sneller rekenen aan Big data met programmeertaal Milk
De nieuwe programmeertaal 'Milk' maakt het verwerken van grote datasets 4 maal sneller dan momenteel met de reguliere algoritmes mogelijk is door het geheugenmanagement te optimaliseren.
Deze week presenteerden onderzoekers van de afdeling Computer Science and Artificial Intelligence Laboratory (CSAIL) van het MIT in Massachusetts een nieuwe programmeertaal genaamd Milk. Hiermee moet geheugen efficiënter kunnen worden gebruikt in programma’s die verspreide data points in grote datasets verwerken. In vergelijkingen met een aantal gebruikelijke algoritmes presteren programma’s die geschreven zijn in Milk tot vier keer sneller. En de verwachting is dat daar nog rek naar boven in zit.
Het probleem bij ‘Big data’ is voornamelijk dat de voor een proces benodigde data ‘sparse’ is. De benodigde hoeveelheid data is klein ten opzichte van en verdeeld over een grote dataset. Geheugenbeheer in huidige processoren is gebaseerd op ‘lokaliteit’: wanneer een programma data van een bepaalde geheugenlocatie opvraagt, gaat het geheugenbeheer ervan uit dat het de naburige data ook nodig heeft en verwerkt deze ook. Dat is bij big data-processing vaak niet het geval omdat de data erg verspreid is over de dataset.
Door een paar extra regels in de programmacode toe te voegen, kan Milk’s compiler het geheugenbeheer optimaliseren. Wanneer een processorkern data nodig heeft, voegt hij het data-adres toe aan een lijst die gedeeld wordt met andere kernen. Als de lijst lang genoeg is, worden de adressen die dicht bij elkaar liggen gegroepeerd en herverdeeld over de kernen. Zo vragen deze alleen data op die ook daadwerkelijk nodig is, wat de efficiëntie aanzienlijk verhoogt.
Meer info: http://news.mit.edu/2016/faster-parallel-computing-big-data-0913.
Het probleem bij ‘Big data’ is voornamelijk dat de voor een proces benodigde data ‘sparse’ is. De benodigde hoeveelheid data is klein ten opzichte van en verdeeld over een grote dataset. Geheugenbeheer in huidige processoren is gebaseerd op ‘lokaliteit’: wanneer een programma data van een bepaalde geheugenlocatie opvraagt, gaat het geheugenbeheer ervan uit dat het de naburige data ook nodig heeft en verwerkt deze ook. Dat is bij big data-processing vaak niet het geval omdat de data erg verspreid is over de dataset.
Door een paar extra regels in de programmacode toe te voegen, kan Milk’s compiler het geheugenbeheer optimaliseren. Wanneer een processorkern data nodig heeft, voegt hij het data-adres toe aan een lijst die gedeeld wordt met andere kernen. Als de lijst lang genoeg is, worden de adressen die dicht bij elkaar liggen gegroepeerd en herverdeeld over de kernen. Zo vragen deze alleen data op die ook daadwerkelijk nodig is, wat de efficiëntie aanzienlijk verhoogt.
Meer info: http://news.mit.edu/2016/faster-parallel-computing-big-data-0913.