+ All Categories
Home > Documents > Stephan Kottler and Michael Kaufmann -...

Stephan Kottler and Michael Kaufmann -...

Date post: 08-Feb-2021
Category:
Upload: others
View: 4 times
Download: 0 times
Share this document with a friend
32
SA RT AGNAN A PARALLEL PORTFOLIO SAT SOLVER WITH LOCKLESS PHYSICAL CLAUSE SHARING Stephan Kottler and Michael Kaufmann University of Tuebingen 1—KOTTLER,KAUFMANN (SARTAGNAN)
Transcript
  • SARTAGNANA PARALLEL PORTFOLIO SAT SOLVER

    WITH LOCKLESS PHYSICAL CLAUSE SHARING

    Stephan Kottler and Michael Kaufmann

    University of Tuebingen

    1 — KOTTLER, KAUFMANN (SARTAGNAN)

  • OUTLINE

    1 MOTIVATION

    2 PARALLEL SOLVINGPhysical clause sharingCommunication of threads

    3 PORTFOLIO SOLVING

    4 SUMMARY

    2 — KOTTLER, KAUFMANN (SARTAGNAN)

  • I MOTIVATION

    STATE-OF-THE-ART SOLVINGCDCL

    partial assignmentdecisions based on variable activityconflict analysisrestarts

    DMRPcomplete assignment (ref. point)

    decisions based on unsat clauses

    slower than CDCL but less decisions

    3 — KOTTLER, KAUFMANN (SARTAGNAN)

  • I MOTIVATION

    STATE-OF-THE-ART SOLVINGCDCL

    partial assignmentdecisions based on variable activityconflict analysisrestarts

    DMRPcomplete assignment (ref. point)

    decisions based on unsat clauses

    slower than CDCL but less decisions

    3 — KOTTLER, KAUFMANN (SARTAGNAN)

  • I MOTIVATION

    KINDS OF PARALLELISATIONDivision of search space (guiding path)Portfolio solving

    CLAUSE SHARINGMost solvers: copy learnt clauses of other threads

    MAIN AIMReal / physical sharing of dataThreads work together⇒ Any thread may benefit from strengthened clauseNo use of OS locks

    4 — KOTTLER, KAUFMANN (SARTAGNAN)

  • I MOTIVATION

    KINDS OF PARALLELISATIONDivision of search space (guiding path)Portfolio solving

    CLAUSE SHARINGMost solvers: copy learnt clauses of other threads

    MAIN AIMReal / physical sharing of dataThreads work together⇒ Any thread may benefit from strengthened clauseNo use of OS locks

    4 — KOTTLER, KAUFMANN (SARTAGNAN)

  • II PARALLEL SOLVING

    BASIC CONCEPT TO SHARE DATA

    Shared data / objects contain user-maskuser-mask initialised by creating threadAny thread can release object (clear bit)Last thread destructs object

    Compare and Swap operation

    void release(SharedObj obj, tId){do{

    SharedObj{ old = obj.umask;umask; new = clear bit ’tId’ in old;... }while(!exchange(obj.umask,old,new));} if(new == 0) destruct(obj);

    }

    5 — KOTTLER, KAUFMANN (SARTAGNAN)

  • II PARALLEL SOLVING

    BASIC CONCEPT TO SHARE DATA

    Shared data / objects contain user-maskuser-mask initialised by creating threadAny thread can release object (clear bit)Last thread destructs object

    Compare and Swap operationvoid release(SharedObj obj, tId){do{

    SharedObj{ old = obj.umask;umask; new = clear bit ’tId’ in old;... }while(!exchange(obj.umask,old,new));} if(new == 0) destruct(obj);

    }

    5 — KOTTLER, KAUFMANN (SARTAGNAN)

  • II.A PHYSICAL CLAUSE SHARINGII PARALLEL SOLVING

    PHYSICAL SHARING OF CLAUSESHave one instance of a clauseIndirection to access clause (thread private data)

    6 — KOTTLER, KAUFMANN (SARTAGNAN)

  • II.A PHYSICAL CLAUSE SHARINGII PARALLEL SOLVING

    SHARED CLAUSE’ ARCHITECTURE

    7 — KOTTLER, KAUFMANN (SARTAGNAN)

  • II.A PHYSICAL CLAUSE SHARINGII PARALLEL SOLVING

    REFERENCING CLAUSES IN CDCLUnit propagationConflict analysisGarbage collection

    OBSERVATIONWhenever a clause is referenced at least onewatched literal is known

    LEMMATwo watched literals li , lj can be stored by one value:Cw = li xor lj .(li xor Cw → lj )

    8 — KOTTLER, KAUFMANN (SARTAGNAN)

  • II.A PHYSICAL CLAUSE SHARINGII PARALLEL SOLVING

    REFERENCING CLAUSES IN CDCLUnit propagationConflict analysisGarbage collection

    OBSERVATIONWhenever a clause is referenced at least onewatched literal is known

    LEMMATwo watched literals li , lj can be stored by one value:Cw = li xor lj .(li xor Cw → lj )

    8 — KOTTLER, KAUFMANN (SARTAGNAN)

  • II.A PHYSICAL CLAUSE SHARINGII PARALLEL SOLVING

    REFERENCING CLAUSES IN CDCLUnit propagationConflict analysisGarbage collection

    OBSERVATIONWhenever a clause is referenced at least onewatched literal is known

    LEMMATwo watched literals li , lj can be stored by one value:Cw = li xor lj .(li xor Cw → lj )

    8 — KOTTLER, KAUFMANN (SARTAGNAN)

  • II.A PHYSICAL CLAUSE SHARINGII PARALLEL SOLVING

    SHARED CLAUSE’ ARCHITECTURE II

    9 — KOTTLER, KAUFMANN (SARTAGNAN)

  • II.A PHYSICAL CLAUSE SHARINGII PARALLEL SOLVING

    DIGRESS TO SEQUENTIAL SOLVERSOrder of literals may be modifiedStore clause C with |C|−1 integers

    10 — KOTTLER, KAUFMANN (SARTAGNAN)

  • II.A PHYSICAL CLAUSE SHARINGII PARALLEL SOLVING

    OVERHEAD OF CLAUSE ORGANISATIONComparison of different implementations with single thread

    11 — KOTTLER, KAUFMANN (SARTAGNAN)

  • II.B COMMUNICATION OF THREADSII PARALLEL SOLVING

    COMMUNICATION OF THREADS

    Message queues used to send . . .a new clause (may be new version)notification on variable eliminationvariable replacementheuristic information

    ! Messages not only for heuristics! Keep order of messages! No OS locks

    12 — KOTTLER, KAUFMANN (SARTAGNAN)

  • II.B COMMUNICATION OF THREADSII PARALLEL SOLVING

    COMMUNICATION OF THREADS

    Message queues used to send . . .a new clause (may be new version)notification on variable eliminationvariable replacementheuristic information

    ! Messages not only for heuristics! Keep order of messages! No OS locks

    12 — KOTTLER, KAUFMANN (SARTAGNAN)

  • II.B COMMUNICATION OF THREADSII PARALLEL SOLVING

    LOCKLESS QUEUESone reading / one writing threadwriteHead points to next write positionreadHead points to next read positionqueue empty if writeHead = readHead

    13 — KOTTLER, KAUFMANN (SARTAGNAN)

  • II.B COMMUNICATION OF THREADSII PARALLEL SOLVING

    LOCKLESS QUEUESone reading / one writing threadwriteHead points to next write positionreadHead points to next read positionqueue empty if writeHead = readHead

    13 — KOTTLER, KAUFMANN (SARTAGNAN)

  • II.B COMMUNICATION OF THREADSII PARALLEL SOLVING

    LOCKLESS QUEUESone reading / one writing threadwriteHead points to next write positionreadHead points to next read positionqueue empty if writeHead = readHead

    13 — KOTTLER, KAUFMANN (SARTAGNAN)

  • II.B COMMUNICATION OF THREADSII PARALLEL SOLVING

    LOCKLESS QUEUESone reading / one writing threadwriteHead points to next write positionreadHead points to next read positionqueue empty if writeHead = readHead

    13 — KOTTLER, KAUFMANN (SARTAGNAN)

  • II.B COMMUNICATION OF THREADSII PARALLEL SOLVING

    LOCKLESS QUEUESone reading / one writing threadwriteHead points to next write positionreadHead points to next read positionqueue empty if writeHead = readHead

    13 — KOTTLER, KAUFMANN (SARTAGNAN)

  • II.B COMMUNICATION OF THREADSII PARALLEL SOLVING

    DYNAMIC SIZEWrite operation may failWrite operation may overwrite unseen data

    IDEAQueue links to available update

    Queue hasseveral readingthreads!

    14 — KOTTLER, KAUFMANN (SARTAGNAN)

  • II.B COMMUNICATION OF THREADSII PARALLEL SOLVING

    DYNAMIC SIZEWrite operation may failWrite operation may overwrite unseen data

    IDEAQueue links to available update

    Queue hasseveral readingthreads!

    14 — KOTTLER, KAUFMANN (SARTAGNAN)

  • II.B COMMUNICATION OF THREADSII PARALLEL SOLVING

    DYNAMIC SIZEWrite operation may failWrite operation may overwrite unseen data

    IDEAQueue links to available update

    Queue hasseveral readingthreads!

    14 — KOTTLER, KAUFMANN (SARTAGNAN)

  • II.B COMMUNICATION OF THREADSII PARALLEL SOLVING

    DYNAMIC SIZEWrite operation may failWrite operation may overwrite unseen data

    IDEAQueue links to available update

    Queue hasseveral readingthreads!

    14 — KOTTLER, KAUFMANN (SARTAGNAN)

  • III PORTFOLIO SOLVING

    DIFFERENT STRATEGIES

    6 of 8 threads apply CDCL (different settings)Activity of Variables / LiteralsGlucose / Static / Geometric / Luby restart schemes

    Dedicated simplification threadsatElite like simplificationAsymmetric branching / vivificationSCC computation and removal of redundant binaries

    Connect work - DMRPAt each restart: init reference point to set eachvariable to predominant value among all threadsLearn ’interesting’ clauses

    15 — KOTTLER, KAUFMANN (SARTAGNAN)

  • III PORTFOLIO SOLVING

    TAKE ADVANTAGE OF SHARING

    Simplification of clause DB is sharedimmediatelyOn-the-fly clause subsumption done by anythread⇒ Any thread may benefitLazy hyper binary resolution

    16 — KOTTLER, KAUFMANN (SARTAGNAN)

  • III PORTFOLIO SOLVING

    DMRP & LITERALS ACTIVITY

    17 — KOTTLER, KAUFMANN (SARTAGNAN)

  • IV SUMMARY

    SUMMARY

    Physical clause sharingXOR idea to store watched literalsparallel and sequential solvers

    Communication without OS locks

    CHALLENGES! Has to run in parallel

    Difficult to measure speedupComputation time

    ? Logging without influencing course of events

    18 — KOTTLER, KAUFMANN (SARTAGNAN)

  • IV SUMMARY

    CLAUSE COPYING STILL FASTER

    Thank you for your attention!

    19 — KOTTLER, KAUFMANN (SARTAGNAN)

    MotivationParallel SolvingPhysical clause sharingCommunication of threads

    Portfolio SolvingSummary


Recommended