Harlan maakt van grafische processor supercomputer

Een grafische processor doet/kan veel meer dan verwerken van beelden. Foto: Flickr/Wimox

Grafische processors zijn kleine chips die voor veel meer zaken gebruikt kunnen worden dan voor beeldverwerking. Zo gebruikt Google ze voor het modelleren van het menselijk brein en gebruikt het internetbedrijf SalesForce ze voor het analyseren van de gegevensstromen op Twitter. Grafische processors zijn goed in parallelle verwerking, het tegelijkertijd afhandelen van duizenden taken.
Het punt is dat je daarvoor aparte programmatuur moet ontwikkelen om daar maximaal gebruik van te kunnen maken. Eric Holk, een promovendus aan de universiteit van Indiana, heeft een programmeertaal ontwikkeld, Harlan, die speciaal ontworpen is voor grafische processors. Holk: “Het programmeren voor zulke processors bevat nog steeds veel basaal werk, die je afhoudt van het eigenlijke doel. Wij wilden een systeem dat dat voor de programmeur doet, terwijl die zich op het echte werk kan richten.”
De centrale processor in een computer werkt snel, maar in het algemeen niet parallel (het kan wel, maar ze zijn er niet voor ontworpen). Als je een grafische parallele processor op de juiste manier ‘aanspreekt’, kan die, per saldo, sneller werken dat die veel snellere seriële processor. Dan gaan we denken aan een supercomputer.
De grafische processor heeft zich ontwikkeld van een component dat puur bedoeld was voor de beeldverwerking tot een parallel systeem met verschillende programmeerbare kernen waar je van alles en nog wat mee kan. Het is heel goed mogelijk dat beide, de centrale en de grafische, processors op den duur zullen versmelten, maar ondertussen kun je veel meer uit de beeldverwerkers halen dan beeldverwerking. Amazon biedt GPU-verwerking aan als internetdienst. “Grafische processoren hebben ook meer geheugen, zodat ze relatief simpele berekeningen kunnen maken voor een groot aantal gegevens”, stelt Holk.
Er bestaan al programmeertalen voor grafische processoren, zoals CUDA en OpenCL, maar Harlan zou meer bieden. Holk wilde ook iets ontwikkelen dat van de grond af aan gericht is op de grafische processor. “Meestal wordt het programmeren van de grafische processor ingebed in een andere programmeeromgeving, waarvan je de ook de nukken moet kennen,” verklaart de onderzoeker. “Met Harlan kun je de juiste beslissingen nemen bedoeld voor de grafische processor.”
Harlan is gebaseerd op Lisp ooit in ’58 ontwikkeld door John McCarty voor kunstmatige intelligentie. Of eigenlijk is het daar weer een ‘dialect’ van waar in Indiana veel mee gewerkt wordt: Scheme. Op Lisp zou elke goede programmeertaal gebaseerd moeten zijn, stelde Yukihiro “Matz” Matsumoto, ontwerper van de taal Ruby.
Er zijn ook andere wegen naar Rome, zoals Mozilla’s programmeertaal Rust, maar Holk is er van overtuigd dat zijn taal de mogelijkheden van grafisch processors ten volle gaat benutten.

Bron: Wired