Nieuwe methode voor eenvoudiger parallel programmeren

Door de toename van multicore processoren in smartphones, game consoles en andere computers is parallel programmeren steeds belangrijker geworden. Om softwarefouten te voorkomen, moeten gelijktijdige berekeningen altijd precies in de goede volgorde gebeuren en dat is lastig. Bekende programmeertechnieken voor het afdwingen van zulke volgordes, interactieprotocollen, zijn namelijk erg moeilijk te gebruiken.

Promovendus Sung-Shik Jongmans van het Centrum Wiskunde & Informatica en de Universiteit Leiden onderzocht een nieuwe programmeermethode om dit te vereenvoudigen. Hij promoveerde begin deze maand cum laude aan de Universiteit Leiden op zijn proefschrift ‘Automata-Theoretic Protocol Programming‘. Zijn resultaten zijn interessant voor onderzoekers en software engineers.

Arbeiders en protocollen

De onderzoeker licht toe: "Parallelle software bestaat conceptueel gezien uit twee onderdelen: uit ‘arbeiders’ die achter elkaar berekeningen uitvoeren en uit interactieprotocollen, die vastleggen wie wat op welk moment mag doen. Het is belangrijk dat dat helemaal goed gaat. Soms draait parallelle software jarenlang prima maar crasht een systeem na vijf jaar ineens bij een bepaalde volgorde van berekeningen. Je wilt niet dat dit bijvoorbeeld in een vliegtuig kan gebeuren. De programmeermethode die ik heb ontwikkeld maakt het eenvoudiger voor programmeurs om interactieprotocollen te programmeren en hergebruiken. Hierdoor neemt de kwaliteit van parallelle software toe."

Nieuwe programmeertaal

Voor zijn onderzoek gebruikte Jongmans formele methoden, een wiskundig-logische manier om software te beschrijven, om de correctheid van zijn methode aan te tonen. De onderzoeker ontwikkelde hiervoor een nieuwe programmeertaal die speciaal gericht is op het programmeren van interactieprotocollen. Programmeurs kunnen deze nieuwe programmeertaal gebruiken als aanvulling op een bestaande programmeertaal, zoals Java.

In bestaande benchmarks van de Nasa toonde de onderzoeker empirisch aan dat deze aanpak kan leiden tot software die net zo snel is als software ontwikkeld met klassieke programmeertechnieken, maar zonder de bestaande problemen.

Het onderzoek is uitgevoerd in de Formal Methods onderzoeksgroep op het Centrum Wiskunde & Informatica (CWI) in Amsterdam en de Universiteit Leiden, onder auspiciën van onderzoeksschool IPA (Institute for Programming research and Algorithms).

Meer informatie: https://www.cwi.nl/research-groups/Formal-Methods