Prolog programok párhuzamos végrehajtása

OData támogatás
Konzulens:
Dr. Szeredi Péter
Számítástudományi és Információelméleti Tanszék

A programok párhuzamosításának fő motivációja, hogy lehetőséget teremtsen az egyre elterjedtebbé váló többmagos architektúrák jobb kihasználására. Egy hatékony párhuzamos program megírása azonban általános esetben nagy kihívást jelent. Természetes az az igény, hogy a párhuzamos programok írása minél egyszerűbb és hatékonyabb legyen.

A logikai programok az imperatívaknál közvetlenebbül írják le a megoldandó feladatot, jobban tükrözik annak struktúráját. Ezért esetükben könnyebb azonosítani a párhuzamosítható programrészeket, ez akár teljesen automatikus módszerekkel is megvalósítható. Számos párhuzamos Prolog megvalósítás létezik, ami a deklaratív nyelvek ezen tulajdonságát használja ki.

A programozó segítsége azonban továbbra is hasznos lehet olyan kérdésekben, hogy a program mely részeit érdemes párhuzamosítani és milyen granularitással. Így egy olyan rendszer, amely felhasználja ezeket az információkat, adott esetben hatékonyabb lehet a teljesen automatikus módszereknél. Érdemes tehát deklaratív programok esetében is megvizsgálni a létjogosultságát egy olyan rendszernek, ami a programozóra bízza a párhuzamosan futtatandó feladatok kijelölését.

Diplomatervem célja, hogy elkészítsek egy ilyen rendszert. A legfontosabb elvárások a következők: az elkészített rendszer legyen könnyen használható, rugalmasan paraméterezhető és igyekezzen jól kihasználni a rendelkezésre álló erőforrásokat.

A diplomatervben először bemutatom a Prolog nyelvben rejlő párhuzamosítási lehetőségeket, és hogy ezeket hogyan lehet kihasználni egy Prolog megvalósítás, az SWI Prolog szálkezelésére építve (1. fejezet). Ezután specifikálom a megvalósítandó rendszert (2. fejezet), majd bemutatom a megvalósítás terveit indokolva a fontosabb tervezői döntéseket (3. fejezet). A következő fejezetben a pontos megvalósítást mutatom be (4. fejezet), majd beszámolok a rendszer teszteléséről és elemzem az eredményeket (5. fejezet). A dolgozatot a munka összefoglalásával és továbbfejlesztési lehetőségek felvetésével zárom (6. fejezet).

Letölthető fájlok

A témához tartozó fájlokat csak bejelentkezett felhasználók tölthetik le.