A. PARALLELLE ARCHITECTUREN

A8. Een generisch objectgeoriënteerd raamwerk voor multiprocessor computer systemen, toegepast op gedistribueerde programma's met de nadruk op performantie


De Heer P. STEYAERT, VUB, Dep. Artificiële Intelligentie
Pleinlaan 2, 1050 Brussel

De Heer E. DIRKX, VUB, Dep. Info
Pleinlaan 2, 1050 Brussel

Het doel van de bijdrage van INFO was de experimentele evaluatie van de ontwikkelde programmeeromgeving en methode op een spectrum van parallelle architekturen. Als modelapplikatie werd diskrete simulatie genomen omdat dit een gebied is met reële behoeften op het vlak van rekensnelheid en omdat het de basis is voor een groot aantal toepassingen zoals bv. operationeel onderzoek, de studie van computer- en telekommunikatie netwerken, de simulatie en foutanalyse van (digitale) elektronische schakelingen etc. M.b.t. software engineering is dit probleem uitermate geschikt omdat het representatief is voor de problematiek van de programmatie en het gebruik van parallelle computerarchitekturen in andere toepassingsdomeinen : het hele spectrum van fine grain tot coarse grain algoritmen en machines kan (en werd) onderzocht worden zodat de software en machineparameters en karakteristieken in dit "laboratorium" op een gekontroleerde wijze geanalyseerd (en evt. geoptimizeerd) kunnen worden.

Het resultaat van dit werk is diep inzicht in het run-time gedrag van een gamma parallelle machines gaande van "clusters" tot architekturen met dedicated interkonnektienetwerken. In de context van de studie van zeer fine grain algorithmen werd een custom (weliswaar konfigureerbaar en programmeerbaar door de eindgebruiker) computing node ontwikkeld en geïmplementeerd op basis van "field programmable gate arrays". Alhoewel oorspronkelijk de versnelling van kritische operaties het doel was (en nog is) heeft deze komponent bewezen over veel meer mogelijkheden te beschikken, wat geleid heeft tot a-priori onverwachte mogelijkheden en resultaten.

De brede basis-know-how op het vlak van zowel parallelle computers als parallelle algorithmen leidde (en leidt nog steeds) op zijn beurt tot een behoefte aan software tools voor dit soort machines. Het is duidelijk dat dit de sleutel is tot het efficiënt en effectief gebruik van parallelle computer systemen door niet specialisten.

Er moet opgemerkt worden dat gedurende de loop van dit projekt de hardware en (low-level) systeemprogrammatuur van parallelle computers een opmerkelijke vooruitgang hebben gemaakt. De voornaamste reden hiervoor is de erkenning in industriële en niet-computer science onderzoeksomgevingen dat er een fundamentele (al dan niet economische) beperking zit op de schaalbaarheid van de rekenkracht van klassieke (Von Neumann) computerarchitecturen en dat parallelle computers daar eigenlijk de enige oplossing voor zijn. Daar waar mogelijk werden (en worden) de resultaten van deze evolutie gebruikt. Een belangrijk besluit op dit vlak is echter dat het zeer onwaarschijnlijk is dat de evolutieve strategie die gevolgd wordt door zowel suppliers als consumers van general purpose parallelle machines zal leiden tot abstracties (en hun implementatie in de vorm van software tools) en methoden die toelaten dit nieuw soort machine effectief en efficiënt te gebruiken. General purpose parallelle computers voegen inderdaad een nieuwe dimensie (kommunikatie) toe aan zowel hardware, systeem- als applikatiesoftware waaraan van in het begin (minstens) evenveel aandacht moet besteed worden als aan de meer klassieke dimensies van processing en storage. Dit was (en is meer dan ooit) de justifikatie van de studie (en implementatie) van nieuwe paradigma's voor het ontwerp, de implementatie en optimizatie van parallelle software zoals bewezen werd in het software engineering deel van dit projekt.

Er kan ook gesteld worden dat de implementatie van een voorbeeld (simulatie van een Asychronous Transfer Mode schakelaar) op een dedicated parallelle machine industriële interesse en toepassingen tot gevolg heeft gehad (en nog steeds heeft), aangezien dit prototype nog altijd operationeel is voor de evaluatie van implementatiealternatieven voor dit type telekommunikatieschakelaar. Het blijkt dat moderne kommerciële parallelle systemen niet in de buurt komen (en zullen komen in de nabije toekomst) van de prijs/prestatieverhouding van onze implementatie.

Het doel van de bijdrage van dienst PROG was de ontwikkeling van een programmeeromgeving en raamwerk voor de programmatuur van parallelle architecturen. Gezien de toegekende middelen en de trage evolutie op internationaal vlak van de beschikbare technologie werden na een grondige evaluatie de initiële ambities tot meer realistische proporties herleid. Alhoewel een belangrijk deel van het onderzoek gewijd werd (en wordt) aan het aspect parallellisme richtte het project zich voornamelijk op de fundamenten van objectgerichte (OO) software ontwerp en technieken en methoden voor de ontwikkeling en toepassingen van herbruikbare of aanpasbare software.

De verschillende deelaspecten die aan bod kwamen, omvatten de formele en semantische grondslagen van objectgerichtheid, de ontwikkeling van nieuwe OO-concepten en methoden, implementatietechnieken voor objectgerichte (parallelle) programmeertalen, objectgerichte ontwikkelingsomgevingen en analyse en typering van objectgerichte programma's. De verschillende karakteristieken van objectgerichtheid zoals encapsulatie, polymorfisme en overerving maken objectgerichte software uitermate geschikt voor "software reuse". We kunnen hier een onderscheid maken in hergebruik van software die niet specifiek ontwikkeld is voor hergebruik en het ontwikkelen van software met het specifieke doel van herbruikbaarheid. We noemen dit laatste aanpasbare of generische software. In elk van de hierboven opgenoemde deeldomeinen werd sterk de nadruk gelegd op methoden en technieken voor het maken van aanpasbare software. Bijvoorbeeld bij de ontwikkeling van nieuwe OO-overervingsconcepten werd een modulaire overervingstechniek onderzocht die toelaat objecten samen te stellen uit voorgedefinieerde modules. Tegelijk werden er richtlijnen (of kwaliteitseisen) onderzocht om te garanderen dat ontwikkelde modules maximaal kunnen herbruikt worden. Of, bij het onderzoek naar OO-ontwikkelingsomgevingen werd nagegaan hoe de ontwikkelingsomgeving kan worden aangepast voor software hergebruik. De voornaamste toepassingsdomeinen van dit alles zijn "open hypertext systemen", aanpasbare "user interface builders", aanpasbare programmeeromgevingen, actieve objectservers en computer ondersteund groepswerk. Vooral in dit laatste toepassingsdomein wordt sterk gebruik gemaakt van de inzichten bekomen uit het bestuderen van objectgericht parallellisme.

Recente resultaten situeren zich in het theoretische domein - met formele, algebraïsche modellen voor objectgerichte talen - die uitmonden in software artefacten waarmee geëxperimenteerd wordt. Langs de andere kant werden fundamentele bijdragen geleverd tot het gebruik van OO-technologie in industriële toepassingen. Zo werden de resultaten van het project in belangrijke mate gebruikt bij de constructie van een geavanceerd programma-planningssysteem bij VTM en in de specificatie van een groepswerk-systeem bij de ARGO. Daarbij staat de software-technologie centraal, maar worden belangrijke bruggen gelegd naar andere disciplines zoals telecommunicatie en multi-media.

Inhoud Volgende Artikel