Look-ahead alapú SAT solver-ek párhuzamosíthatóságának vizsgálata

Hasonló dokumentumok
SAT probléma kielégíthetőségének vizsgálata. masszív parallel. mesterséges neurális hálózat alkalmazásával

SAT reprezentációk vezeték nélküli szenzorhálózatokhoz

"A tízezer mérföldes utazás is egyetlen lépéssel kezdődik."

Algoritmusok bonyolultsága

Taszkok ütemezése desktop-griden

egy szisztolikus példa

Készítette: Trosztel Mátyás Konzulens: Hajós Gergely

Teljesítmény Mérés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Teljesítmény Mérés / 20

Dr. habil. Maróti György

ULTIMATE TIC TAC TOE. Serfőző Péter

WEB2GRID: Desktop Grid a Web 2.0 szolgálatában

ALKALMAZÁS MONITOROZÁS A MERCURY MONITORRAL A CLUSTERGRID INFRASTRUKTÚRÁN. Gombás Gábor, gombasg@sztaki.hu MTA SZTAKI

Logikai ágensek. Mesterséges intelligencia március 21.

Networkshop Kaposvár Balaskó Á., Kozlovszky M., Karóczkai K., Márton I., Kacsuk P. MTA SZTAKI

Az MTA Cloud a tudományos alkalmazások támogatására. Kacsuk Péter MTA SZTAKI

Kereső algoritmusok a diszkrét optimalizálás problémájához

ALGORITMUSOK ÉS BONYOLULTSÁGELMÉLET Matematika MSc hallgatók számára

Elosztott rendszer architektúrák

KOPI. Fordítási plágiumok keresése MTA SZTAKI DSD. Pataki Máté MSZNY Department of Distributed Systems

NOLLEX Nemzetközi Kft. Magyarországi kizárólagos disztribútor.

Bonyolultságelmélet. Monday 26 th September, 2016, 18:28

ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu

Kereső algoritmusok a diszkrét optimalizálás problémájához

Függvények növekedési korlátainak jellemzése

Grafikus csővezeték 1 / 44

Logika és számításelmélet. 11. előadás

Kriptográfia 0. A biztonság alapja. Számítás-komplexitási kérdések

2. Visszalépéses keresés

Algoritmusok Tervezése. 6. Előadás Algoritmusok 101 Dr. Bécsi Tamás

Enabling Grids for E-sciencE. Grid bevezető INFSO-RI

Számítógép és programozás 2

Algoritmuselmélet. Katona Gyula Y. Számítástudományi és Információelméleti Tanszék Budapesti Műszaki és Gazdaságtudományi Egyetem. 13.

Bevezetés a párhuzamos programozási koncepciókba

Fülöp Csaba, Kovács László, Micsik András

KOPI. KOPI A fordítási plágiumok keresője MTA SZTAKI DSD. Pataki Máté Kovács László. Department of Distributed Systems

Számítógép architektúra

alkalmazásfejlesztő környezete

Bonyolultságelmélet. Monday 26 th September, 2016, 18:27. Bonyolultságelmélet

Szuperszámítógépes teljesítmény szuperszámítógép nélkül A BinSYS Projekt

Logika es sz am ıt aselm elet I. r esz Logika Hatodik el oad as 1/33

Párhuzamos és Grid rendszerek

SAT-solverek gyorsítása best-first search algoritmussal

Logika es sz am ıt aselm elet I. r esz Logika Negyedik el oad as 1/26

I.3 ELOSZTOTT FOLYAMATSZINTÉZIS BERTÓK BOTOND. Témavezetői beszámoló

2. Visszalépéses stratégia

Flynn féle osztályozás Single Isntruction Multiple Instruction Single Data SISD SIMD Multiple Data MISD MIMD

Logika és informatikai alkalmazásai

ÍTÉLETKALKULUS (NULLADRENDŰ LOGIKA)

Team munka és kommunikáció

Programozási nyelvek 6. előadás

Példa: LHC, CERN, Genf Enabling Grids for E-sciencE

Gépi tanulás a gyakorlatban. Lineáris regresszió

OpenCL - The open standard for parallel programming of heterogeneous systems

III. "JÖVŐ INTERNET" TECHNOLÓGIÁK: ELOSZTOTT ÉS FELHŐ SZOLGÁLTATÁSOK, TÁRGYAK INTERNETE DR. SIMON GYULA

Modern irányzatok a bonyolultságelméletben: éles korlátok és dichotómia tételek

SZTE Eötvös Loránd Kollégium. 2. Móra György: Információkinyerés természetes nyelvű szövegekből

AZ INFORMATIKA LOGIKAI ALAPJAI

A programozás alapjai előadás. Amiről szólesz: A tárgy címe: A programozás alapjai

Párhuzamos és Grid rendszerek

Mérés és értékelés innovációk és dilemmák BME TFK Konferencia szeptember 29.

Acta Acad. Paed. Agriensis, Sectio Mathematicae 29 (2002) PARTÍCIÓK PÁRATLAN SZÁMOKKAL. Orosz Gyuláné (Eger, Hungary)

Számítógépek felépítése

Live free() or die() Az openmosix cluster szoftver

Programozási nyelvek a közoktatásban alapfogalmak I. előadás

Teszt generálás webes alkalmazásokhoz

Logika és informatikai alkalmazásai kiskérdések február Mikor mondjuk, hogy az F formula a G-nek részformulája?

Nemlineáris optimalizálási problémák párhuzamos megoldása grafikus processzorok felhasználásával

Riak. Pronounced REE-ahk. Elosztott adattároló eszköz. Molnár Péter

Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba

Mobil Peer-to-peer rendszerek

1. Definíciók. 2. Formulák. Informatikai logikai alapjai Mérnök informatikus 3. gyakorlat

Vodafone ODI ETL eszközzel töltött adattárház Disaster Recovery megoldása. Rákosi Péter és Lányi Árpád

Deníciók és tételek a beugró vizsgára

Magas szintű optimalizálás

Logikai következmény, tautológia, inkonzisztens, logikai ekvivalencia, normálformák

Tárgyfelelős kódja, címe)

Intelligens adatelemzés

Java programozási nyelv

Szemantikus protokollt alkalmazó mobil Peer-to-Peer kliensszoftver

Köztesréteg adatbiztonsági protokollok megvalósítására

Algoritmusokfelülnézetből. 1. ELŐADÁS Sapientia-EMTE

Utolsó módosítás:

Mesterséges Intelligencia MI

Mesterséges Intelligencia MI

V. Kétszemélyes játékok

Grafikonok automatikus elemzése

Kurzuskód Kurzus címe, típusa (ea, sz, gy, lab, konz stb.) Tárgyfelelős Előfeltétel (kurzus kódja) típusa

Párhuzamosítás adatbáziskezelő rendszerekben

The nontrivial extraction of implicit, previously unknown, and potentially useful information from data.

Új generációs közösségi WEB szolgáltatások és alkalmazások támogatása GRID platformmal

Algoritmuselmélet. Bonyolultságelmélet. Katona Gyula Y.

Adott: VPN topológia tervezés. Költségmodell: fix szakaszköltség VPN végpontok

Tarantella Secure Global Desktop Enterprise Edition

A JGrid rendszer biztonsági architektúrája. Magyaródi Márk Juhász Zoltán Veszprémi Egyetem

Előrenéző és paraméter tanuló algoritmusok on-line klaszterezési problémákra

Hozzáférés a HPC-hez, kezdő lépések (előadás és demó)

Az informatika logikai alapjai

TÁVOKTATÁSI TANANYAGOK FEJLESZTÉSÉNEK MÓDSZERTANI KÉRDÉSEI

Eseménykezelés. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor.

Rendszermodellezés. Modellellenőrzés. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Átírás:

Look-ahead alapú SAT solver-ek párhuzamosíthatóságának vizsgálata Biró Csaba 1, Kovászani Gergely 2, Tajti Tibor 1, Kusper Gábor 1, Geda Gábor 1 1 Eszterházy Károly Főiskola {birocs, tajti, gkusper, gedag@aries.ektf.hu} 2 Johannes Kepler University {Gergely.Kovasznai@jku.at} Absztrakt A SAT probléma logikai formulák kielégíthetőségét vizsgálja. Elvárás, hogy a logikai formula konjunktív normál formában legyen. Ekkor, ha a formula n atomból (logikai változóból) áll, akkor legrosszabb esetben 2 n próbálkozásból megállapítható, hogy kielégíthető-e a formula. A SAT probléma jól ismert NP-teljes probléma. Cikkünkben bemutatjuk a CCGrid-et (Cube and Conquer on Grid), amely egy általunk készített grid alapú SAT solver. A CCGrid két fő komponensből áll. A master-en egy szekvenciális look-ahead solver (march_cc) fut, amely particionálja a problémát, majd elkészíti az egyes munkaegységeket. A klienseken, az elkapott munkaegységeket egy párhuzamosított CDCL SAT solver (ilingeling) dolgozza fel. Ezen elosztott számítások elvégzéséhez a BOINC middleware-t, fejlesztéshez pedig a SZTAKI által fejlesztett DC-APIt használtuk. A CCGrid-del csak kielégíthető problémák esetében sikerült sebességnövekedést elérünk, a rendszer egyik gyenge pontjának a lookahead solver bizonyult. Cikkünkben megvizsgáljuk CCGrid gyorsításának lehetőségeit. Kulcsszavak: grid, SAT, párhuzamos SAT solver, lookahead, march_cc, ilingeling, SZTAKI Desktop Grid, BOINC, DC-API

Austro-Hungarian Action Foundation által támogatott. Project ID: 83öu17 Bevezetés A logikai kielégíthetőség (satisfiability) problémája alatt azt értjük, hogy valamely 0.- rendű logikai formula változóihoz olyan hozzárendelést keresünk, amely mellett a formula igaz. SAT problémáról beszélünk, ha a formula speciálisan konjunktív normál formában. A SAT probléma NP teljes[1], azaz, nem ismert polinomiális idejű algoritmus, amely megoldaná. A SAT probléma az informatika számos (logika, mesterséges intelligencia, áramkör tervezés) területén napjainkban is intenzíven kutatott téma. A mai modern CDCL SAT solver-ek [pl. glucose, SATzilla, Lingeling, Minisat, ppfolio2012, PrecoSAT] a DPLL [2] algoritmuson alapulnak. A DPLL egy teljes, visszalépéses keresésen alapuló algoritmus, SAT kielégíthetőségi problémára. A formula szemantikus fájában keres, képes a kielégíthetetlen formulák detektálására, hiszen amennyiben nem talál megoldást bejárja a teljes keresési fát. Legnagyobb előnye, hogy az összes változó kiértékelése előtt jó eséllyel megtalálja a megoldást. CDCL (Conflict-driven clause learning) azon elven alapul, hogy a konfliktusok felderítésével csökkenthető a keresési tér. Amennyiben talál egy konfliktust, elugrik abba az ágba ahol az gyökerezik, majd elemezni a konfliktust (elégséges feltétel keresése - bizonyítás), ezután metszi azokat a területeket a keresési térben, ahol ez a feltétel teljesül. Természetesen a modern solver-eben egyéb heurisztikákat is alkalmaznak. Ilyen például a DLIS (Dynamic Largest Individual Sum), amely megszámolja azon kielégíthetetlen klózok számát amelyikben egy adott változó megjelenik, a változókhoz különböző értékeket rendel. Mindez jelentős erőforrást igényel, de a statisztika fenntartása szükséges a heurisztikához. Egy másik fontos heurisztika a VSIDS (Variable State Independent Decaying Sum), amely rangsorolja a változókat literálokban történő előfordulási számuk alapján (kezdeti adatbázis), tanulás útján új klózokat ad hozzá a kezdeti adatbázishoz. Annak érdekében, hogy kevesebb osztály legyen időnként az összegeket elosztja egy konstanssal. Az első look-ahead alapú solver a posit [1995]. A mai modern look-ahead alapú solver-ek [Satz, march, OKSolver, kcnfs] tulajdonképpen egy DPLL alapú solver kiegészítve előretekintéssel. Előretekintés célja a lehető legnagyobb csökkenést okozó, elágazási változó megtalálása, amely költéses, ezért a SAT

versenyeken is nem szerepelnek túl jól. Nagy előnyük viszont, hogy segítésükkel jól lehet particionálni a problémát. SAT solver-ek párhuzamosításra kétféle megközelítés létezik. Egyik a jól ismert Oszd meg és uralkodj elv, melynek értelmében inkrementálisan szétosztják a keresési teret alterekre, ahol sorra szekvenciális DPLL alapú solver-ek allokálódnak. Az egyes solver-ek kommunikálnak, együttműködnek és dinamikusan megosztják a tudásbázisuk(tanult klózok) egymással. A másik lehetőség a párhuzamos portfólió (2008). Itt különböző szekvenciális DPLL alapú stratégiákat versenyeztetnek egymással ugyanazon a formulán. Mivel mindegyik ugyanazon a formulán dolgozik, nincs szükség terhelés-kiegyenlítés bevezetésére. A kommunikáció csupán a tanult klózok megosztására szorítkozik. Célja, hogy a keresési téren versengő stratégiák közül megtalálni a legjobbat. Fontosabb state-of-the-art portfólió alapú párhuzamos SAT solver-ek (pl. ManySAT ppfolio, pfoliouzk, SATzilla). GridSAT[3] volt az első párhuzamosított, teljes SAT solver grid környezetben. Alapja a zchaff szekvenciális solver. Jelentős sebességnövekedést értek el mind kielégíthető és mind kielégíthetetlen SAT problémák esetében. Legnagyobb nehézséget a tanult klózok kezelése okozta. SAT problémák párhuzamosításának nehézségei [5] Mivel a SAT probléma eredendően szekvenciális, ezért nehezen párhuzamosítható. SAT problémák párhuzamosításkor felmerülő kérdések: Hogyan tudjuk hatékonyan megoldani multi-core rendszereken? Milyen adatszerkezetekre, heurisztikákra, és alacsony szintű folyamatokra van szükség? Milyen kommunikáció kell alkalmazni? Hogyan tudjunk összehasonlítani a párhuzamos SAT solver-ek teljesítményét? Általánosan elfogadott alapelv, hogy osszuk szét a keresési teret, az egyes altereken indítsunk el egy SAT solver-t. De ekkor újabb kérdésekkel kell szembe néznünk:

Hogyan osszuk szét a teret? Használjunk un. döntési változókat osztó pontoknak! De melyiket? Melyik folyamat vagy szál? Hogyan lehet hatékonyan kommunikálni, irányítani, szinkronizálni? Hogy történjen a konfliktusba került záradékok és tanult klózok megosztása? CCGrid CCGrid[4],[6] (Cube and Conquer on Grid), amely egy grid alapú SAT solver. Két fő komponensből áll. A master-en egy szekvenciális look-ahead solver (march_cc) fut, amely particionálja a problémát és elkészíti az egyes munkaegységeket. A munkaegységek tartalmazzák az eredeti input.cnf fájlt illetve a feltételezéseket tartalmazó fájl egy a problémától és a kliensek számától függő - szeletét. Mivel nincs beállítva rögzített vágási mélység, egy adott probléma esetében több ezer, vagy akár több millió feltételezést is létrehozhat. A klienseken, az elkapott munkaegységeket egy párhuzamos CDCL SAT solver (ilingeling[8])dolgozza fel, amely a feltételezések alapján bizonyítja az eredeti CNF kielégíthetőségét (SAT/UNSAT). Az ilingeling egy párhuzamos CDCL solver, amely minden szálon futtat egy különálló lingeling példányt. Bemenetként egy un. icnf fájlt vár, amely legalább egy feltételezést tartalmaz. 1. ábra. CCGrid architektúrája

Eredmények és tesztelési környezet Teszteléshez, egy SUN szerverből (4 mag, 6 GB memória), és 20-30 kliensből (2-4 mag, 2-4 GB memória) környezetet hoztunk létre. Eredményeinket az alábbi táblázat tartalmazza. A CCGriddel csak kielégíthető problémák esetében sikerült sebességnövekedést elérünk, a rendszer egyik gyenge pontjának a look-ahead solver bizonyult. CCGrid gyorsításának lehetőségei A CCGrid gyorsításának érdekében, az alábbi lehetőségeket vizsgáltuk: a) A march_cc -t álljon meg hamarabb, így nem vizsgálja olyan mélyen a problémát, gyorsabb lesz. Ekkor, azonban az így előállt feltételezésekkel, a klienseknek nehezebb lesz a bizonyítás. Annak érdekében, hogy az egyes kliensek, egy-egy részproblémán ne ragadjanak be, a munkaállomások architektúrájának (CPU, memória) függvényében az lingeling-et megállítjuk X konfliktus/idő után. Ez után az ilingeling, a be nem bizonyított feltételezésekre, egyenként meghívja a

march_cc-t. Ezen a ponton érdekes lenne, az alábbi két lehetőséget megvizsgálni: 1. az új feltételezéseket a kliens visszaküldi a master-nek, ami ezután munkaegységek formájában szétosztja azokat a kliensek között, 2. az új feltételezéseket a kliens megtartsa magának, és csak az analizált, rövid konfliktusba került klózokat küldi át a master-nek. b) A march_cc CPU/GPU alapú párhuzamosítása. CPU-ra kiosztandó feladatok: 1. párhuzamos Unit propagáció, 2. párhuzamos failed literal keresés. GPU-ra kiosztandó feladatok: 1. masszívan párhuzamos lokális keresési algoritmus, 2. random walk algoritmus. Felhasznált irodalom [1] S. A. Cook., The Complexity of Theorem-Proving Procedures. Proc. of STOC 71, pp. 151 158, 1971. [2] M. Davis, G. Logemann, D. Loveland., A Machine Program for Theorem Proving. Commun. ACM, vol. 5, no. 7, pp. 394 397, 1962. [3] W. Chrabakh, R. Wolski, GridSAT: A Chaff-based Distributed SAT Solver for the Grid. Proc. of SC 03, pp. 37 49, 2003. [4] Csaba Biró, Gergely Kovásznai, Gábor Kusper, Gábor Geda and Armin Biere, Cube-and- Conquer Approach for SAT Solving on Grids Technical Report [5] Biró Csaba, Kusper Gábor, Geda Gábor, Grid alapú SAT-solverek vizsgálata Networkshop 2012, Veszprém [6] Marijn Heule, Oliver Kullmann, Siert Wieringa and Armin Biere, Cube and Conquer Guiding CDCL SAT Solvers by Lookaheads Belgrade, February 3, 2012 [7] A. Biere, M. Heule, H. van Maaren, T. Walsh, Handbook of Satisfiability. IOS Press, Amsterdam, 2009. [8] A. Biere, Lingeling, Plingeling, PicoSAT and PrecoSAT at SAT Race 2010. Technical Report 10/1, FMV Reports Series, JKU, 2010.

[9] P. Kacsuk, J. Kovács, Z. Farkas, A. C. Marosi, G. Gombás, Z. Balaton, SZTAKI Desktop Grid (SZDG): A Flexible and Scalable Desktop Grid System. Journal of Grid Computing, vol. 7, no. 4, pp. 439 461, 2009.