Grounding Issues in Parallel and Multi-Engine ASP Solving Francesco - - PowerPoint PPT Presentation

grounding issues in parallel and multi engine asp solving
SMART_READER_LITE
LIVE PREVIEW

Grounding Issues in Parallel and Multi-Engine ASP Solving Francesco - - PowerPoint PPT Presentation

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion Grounding Issues in Parallel and Multi-Engine ASP Solving Francesco Ricca Dipartimento di Matematica e Informatica, Universit della Calabria 87036 Rende,


slide-1
SLIDE 1

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Grounding Issues in Parallel and Multi-Engine ASP Solving

Francesco Ricca

Dipartimento di Matematica e Informatica, Università della Calabria 87036 Rende, Italy

GTTV 2015

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-2
SLIDE 2

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Outline

1

Introduction

2

Parallel Instantiation

3

Grounding in Multi-Engine ASP-System

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-3
SLIDE 3

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Answer Set Programming (ASP) (1)

Answer Set Programming (ASP) Declarative programming paradigm Non-monotonic reasoning and logic programming Stable model semantics [GL91] Expressive KR Language Roots in Datalog and Nonmonotonic Logic Default negation, Disjunction, Constraints, Aggregates, Weak constraints, ...

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-4
SLIDE 4

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Answer Set Programming (ASP) (2)

Applications in several fields Artificial Intelligence, Knowledge Representation & Reas., Information Integration, Bioinformatics... industrial ones! see e.g. [Lif02, EFLP99, EFLP99, EIST06, EEB10, Sak11, SN99,

DGH09, CHO+09, RDG+10, RGA+12, GNA13, MRT15, LR15]

Robust and efficient implementations DLV [LPF+06], Clasp [GKNS07], Wasp [ADLR15], lp2SAT [Jan06], Cmodels [LM04], IDP [WMD08], etc. Continuous Improvement in ASP competitions

Do not miss LPNMR Session 16 (08:45-10:40)

→ The 6th ASP Competition Report and winners announcement!

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-5
SLIDE 5

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Answer Set Programming (ASP) (3)

Key advantages

1

It is Declarative!

2

Can model problems up to ΣP

2 /ΠP 2 [EGM97, DEGV01]

→ even problems not (polynomially) translatable to SAT or CSP

3

Efficient implementations

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-6
SLIDE 6

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Answer Set Programming (ASP) (3)

Key advantages

1

It is Declarative!

2

Can model problems up to ΣP

2 /ΠP 2 [EGM97, DEGV01]

→ even problems not (polynomially) translatable to SAT or CSP

3

Efficient implementations

4

Non-propositional!

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-7
SLIDE 7

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

ASP Syntax and Semantics

Syntax a1 | . . . | an

  • :- b1, . . . , bk, not bk+1, . . . , not bm.
  • head

body Semantics Given a program π Consider the Ground Instantiation P = ground(π) Reduct P′ w.r.t. interpretation I:

Delete rules with false body w.r.t I I is an Answer Set if I is a minimal model of P′

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-8
SLIDE 8

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Evaluation of ASP Programs

Two-phases: Instantiation + Propositional Solving

1

Instantiation or grounding → variable elimination

Receives a program P that contains variables and outputs a program P′ semantically equivalent to P but variable-free

2

Solving

Model Generation

→ Produces candidate models → Similar to a SAT Solver: DPLL/CDCL Search

Stable Model Checking

Checks if candidates are Answer Sets Co-NP check

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-9
SLIDE 9

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Improve Program Evaluation

How to improve ASP system performance?

1

Improve system components (Grounder and Solver)

Develop new evaluation techniques Exploit the features of the hardware, e.g., CPU/GPU cores

2

Combine the strengths of several techniques

Algorithm selection techniques [Ric76] Select (ideally) the “best combination” of solving tools per each instance

Focus on the issues concerning the instantiation

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-10
SLIDE 10

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Improve Program Evaluation

How to improve ASP system performance?

1

Improve system components (Grounder and Solver)

Develop new evaluation techniques Exploit the features of the hardware, e.g., CPU/GPU cores

2

Combine the strengths of several techniques

Algorithm selection techniques [Ric76] Select (ideally) the “best combination” of solving tools per each instance

Focus on the issues concerning the instantiation

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-11
SLIDE 11

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Further motivations:

Why should we care about instantiation? Bottleneck in presence of large input databases Grounding is the input for an ASP Solver

→ Instantiation has impact on the overall efficiency of a system → Intelligent Instantiators solve problems in P

Enabling technology for specific applications

→ Information Integration [LGI+05], industrial applications [LR15] → Analysis of alternative encodings of the 5th ASP Comp. [GMR15]

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-12
SLIDE 12

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Further motivations:

Why should we care about instantiation? Bottleneck in presence of large input databases Grounding is the input for an ASP Solver

→ Instantiation has impact on the overall efficiency of a system → Intelligent Instantiators solve problems in P

Enabling technology for specific applications

→ Information Integration [LGI+05], industrial applications [LR15] → Analysis of alternative encodings of the 5th ASP Comp. [GMR15]

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-13
SLIDE 13

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Further motivations:

Why should we care about instantiation? Bottleneck in presence of large input databases Grounding is the input for an ASP Solver

→ Instantiation has impact on the overall efficiency of a system → Intelligent Instantiators solve problems in P

Enabling technology for specific applications

→ Information Integration [LGI+05], industrial applications [LR15] → Analysis of alternative encodings of the 5th ASP Comp. [GMR15]

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-14
SLIDE 14

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Further motivations:

Why should we care about instantiation? Bottleneck in presence of large input databases Grounding is the input for an ASP Solver

→ Instantiation has impact on the overall efficiency of a system → Intelligent Instantiators solve problems in P

Enabling technology for specific applications

→ Information Integration [LGI+05], industrial applications [LR15] → Analysis of alternative encodings of the 5th ASP Comp. [GMR15]

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-15
SLIDE 15

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Part I Parallel Instantiation

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-16
SLIDE 16

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Parallel evaluation techniques

Parallel/Distributed Solving Cluster [EGG+09, BPEL05, PLS10] SMP [GKS12, PLS10, GJM+06, HKLS15] GPU [DFPV15] Parallel/Distributed Grounding Parallel LParse [BPEL05]

Distributed evaluation (beowulf cluster)

Parallel DLV grounder [CPR08, PRS13]

Parallel evaluation on SMP machines DLV Input language

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-17
SLIDE 17

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Design of a parallel instantiator

General Goals Maximize efficiency Handle large input databases & compact encodings Design Goals Minimize parallel overhead

Avoid thread starvation Reduce the usage of locks

Maximize parallelism

Backtracking algorithm Recursion

→ Parallel semi naive

Minimize impact on code base

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-18
SLIDE 18

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

The DLV Instantiator

The DLV Instantiator Much more than a simple variables-elimination

→ Output equivalent but smaller than theoretical instantiation

Consider the dependencies among predicates:

→ produce relevant ground information

Analyze structural properties, proceed bottom up:

→ divide program in modules + semi naïve → At iteration n use only information derived at iteration n − 1

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-19
SLIDE 19

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Program Structure: Dependency Graph and Modules

Dependency Graph Directed graph G(P) = (N, E) → one node per predicate name → arcs modeling (positive) body-to-head dependency

i.e.,(b, h) ∈ E ⇐ ⇒ ∃ r ∈ P | h ∈ Head(r) and b ∈ Body +(r)

The strongly connected components (SCCs) of G(P) Collect definitions depending on each other Induce a subdivision of P into program modules Let C be an SCC, MC = {r| a ∈ Head(r) ∧ a ∈ C}

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-20
SLIDE 20

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Instantiation Algorithm

Modules are instantiated respecting dependencies A ≺ B ⇐ ⇒ arc(a, b) ∈ E, a ∈ A and b ∈ B

(≺s denotes the transitive closure of ≺)

Take an order O = C1, . . . , Cn such that if Ci≺sCj than i < j Recursive and Exit rules r is recursive if b ∈ Body(r) and b ∈ C; otherwise is exit Instantiation algorithm

1

Take a C ∈ SCCs according to an instantiation order O

2

Instantiate the rules r ∈ Mc

First process exit rules Then process recursive ones

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-21
SLIDE 21

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Instantiation Example

Program Modules:

1

Mq= { q(X) :- a(X), not b(X).}

2

Mp = { p(X) :- q(X).}

3

Mr,g = { g(X) :- t(X). % exit g(X) :- q(X), r(X). % recursive r(X) :- q(X), g(X). % recursive } Istance: {a(1), a(2), t(1), t(2)} Instantiation: q(1) :- a(1), not b(1). q(2) :- a(2), not b(2). p(1) :- q(1). p(2) :- q(2). g(1) :- t(1). g(2) :- t(2). r(1) :- q(1), g(1). r(2) :- q(2), g(2). g(1) :- q(1), r(1). g(2) :- q(2), r(2).

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-22
SLIDE 22

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Instantiation Example

Program Modules:

1

Mq= { q(X) :- a(X), not b(X).}

2

Mp = { p(X) :- q(X).}

3

Mr,g = { g(X) :- t(X). % exit g(X) :- q(X), r(X). % recursive r(X) :- q(X), g(X). % recursive } Istance: {a(1), a(2), t(1), t(2)} Instantiation: q(1) :- a(1), not b(1). q(2) :- a(2), not b(2). p(1) :- q(1). p(2) :- q(2). g(1) :- t(1). g(2) :- t(2). r(1) :- q(1), g(1). r(2) :- q(2), g(2). g(1) :- q(1), r(1). g(2) :- q(2), r(2).

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-23
SLIDE 23

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Instantiation Example

Program Modules:

1

Mq= { q(X) :- a(X), not b(X).}

2

Mp = { p(X) :- q(X).}

3

Mr,g = { g(X) :- t(X). % exit g(X) :- q(X), r(X). % recursive r(X) :- q(X), g(X). % recursive } Istance: {a(1), a(2), t(1), t(2)} Instantiation: q(1) :- a(1), not b(1). q(2) :- a(2), not b(2). p(1) :- q(1). p(2) :- q(2). g(1) :- t(1). g(2) :- t(2). r(1) :- q(1), g(1). r(2) :- q(2), g(2). g(1) :- q(1), r(1). g(2) :- q(2), r(2).

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-24
SLIDE 24

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Instantiation Example

Program Modules:

1

Mq= { q(X) :- a(X), not b(X).}

2

Mp = { p(X) :- q(X).}

3

Mr,g = { g(X) :- t(X). % exit g(X) :- q(X), r(X). % recursive r(X) :- q(X), g(X). % recursive } Istance: {a(1), a(2), t(1), t(2)} Instantiation: q(1) :- a(1), not b(1). q(2) :- a(2), not b(2). p(1) :- q(1). p(2) :- q(2). g(1) :- t(1). g(2) :- t(2). r(1) :- q(1), g(1). r(2) :- q(2), g(2). g(1) :- q(1), r(1). g(2) :- q(2), r(2).

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-25
SLIDE 25

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Instantiation Example

Program Modules:

1

Mq= { q(X) :- a(X), not b(X).}

2

Mp = { p(X) :- q(X).}

3

Mr,g = { g(X) :- t(X). % exit g(X) :- q(X), r(X). % recursive r(X) :- q(X), g(X). % recursive } Istance: {a(1), a(2), t(1), t(2)} Instantiation: q(1) :- a(1), not b(1). q(2) :- a(2), not b(2). p(1) :- q(1). p(2) :- q(2). g(1) :- t(1). g(2) :- t(2). r(1) :- q(1), g(1). r(2) :- q(2), g(2). g(1) :- q(1), r(1). g(2) :- q(2), r(2).

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-26
SLIDE 26

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Parallel Instantiation Technique

Three levels of parallelism:

1

component-level

SCCs of the Dependency Graph DG subdivide the input program in modules Evaluate modules in parallel by respecting dependencies

2

rules-level

Rules in modules are evaluated in parallel First exit rules, then recursive ones

(parallel semi-naïve technique)

3

single-rule-level

Parallel matching of variables dynamically “split” the extension of the first body predicate

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-27
SLIDE 27

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Parallel Instantiation Technique

Three levels of parallelism:

1

component-level

SCCs of the Dependency Graph DG subdivide the input program in modules Evaluate modules in parallel by respecting dependencies

2

rules-level

Rules in modules are evaluated in parallel First exit rules, then recursive ones

(parallel semi-naïve technique)

3

single-rule-level

Parallel matching of variables dynamically “split” the extension of the first body predicate

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-28
SLIDE 28

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Parallel Instantiation Technique

Three levels of parallelism:

1

component-level

SCCs of the Dependency Graph DG subdivide the input program in modules Evaluate modules in parallel by respecting dependencies

2

rules-level

Rules in modules are evaluated in parallel First exit rules, then recursive ones

(parallel semi-naïve technique)

3

single-rule-level

Parallel matching of variables dynamically “split” the extension of the first body predicate

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-29
SLIDE 29

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Parallel Instantiation Technique

Three levels of parallelism:

1

component-level

SCCs of the Dependency Graph DG subdivide the input program in modules Evaluate modules in parallel by respecting dependencies

2

rules-level

Rules in modules are evaluated in parallel First exit rules, then recursive ones

(parallel semi-naïve technique)

3

single-rule-level

Parallel matching of variables dynamically “split” the extension of the first body predicate

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-30
SLIDE 30

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Instantiation Example

Input Program: q(X) :- a(X), not b(X). p(X) :- q(X). r(X) :- q(X), g(X). g(X) :- q(X), r(X). g(X) :- t(X). Program Modules:

1

Mq= { q(X) :- a(X), not b(X).}

2

Mp = { p(X) :- q(X).}

3

Mr,g = {g(X) :- t(X). % exit g(X) :- q(X), r(X). % recursive r(X) :- q(X), g(X). % recursive }

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-31
SLIDE 31

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Instantiation Example

Input Program: q(X) :- a(X), not b(X). p(X) :- q(X). r(X) :- q(X), g(X). g(X) :- q(X), r(X). g(X) :- t(X). Program Modules:

1

Mq= { q(X) :- a(X), not b(X).}

2

Mp = { p(X) :- q(X).}

3

Mr,g = {g(X) :- t(X). % exit g(X) :- q(X), r(X). % recursive r(X) :- q(X), g(X). % recursive }

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-32
SLIDE 32

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Instantiation Example

Input Program: q(X) :- a(X), not b(X). p(X) :- q(X). r(X) :- q(X), g(X). g(X) :- q(X), r(X). g(X) :- t(X). Program Modules:

1

Mq= { q(X) :- a(X), not b(X).}

2

Mp = { p(X) :- q(X).}

3

Mr,g = {g(X) :- t(X). % exit g(X) :- q(X), r(X). % recursive r(X) :- q(X), g(X). % recursive }

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-33
SLIDE 33

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Instantiation Example

Input Program: q(X) :- a(X), not b(X). p(X) :- q(X). r(X) :- q(X), g(X). g(X) :- q(X), r(X). g(X) :- t(X). Program Modules:

1

Mq= { q(X) :- a(X), not b(X).}

2

Mp = { p(X) :- q(X).}

3

Mr,g = {g(X) :- t(X). % exit g(X) :- q(X), r(X). % recursive r(X) :- q(X), g(X). % recursive }

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-34
SLIDE 34

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Instantiation Example

Input Program: q(X) :- a(X), not b(X). p(X) :- q(X). r(X) :- q(X), g(X). g(X) :- q(X), r(X). g(X) :- t(X). Program Modules:

1

Mq= { q(X) :- a(X), not b(X).}

2

Mp = { p(X) :- q(X).}

3

Mr,g = {g(X) :- t(X). % exit g(X) :- q(X), r(X). % recursive r(X) :- q(X), g(X). % recursive }

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-35
SLIDE 35

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Third level of parallelism (3-Colorability)

Given a program with few rules (r) col(X, red) | col(X, yellow) | col(X, green) :- node(X). (c) :- edge(X, Y), col(X, C), col(Y, C).

Instance: node(1). node(2). node(3). node(4). node(5). node(6). . . . edge(1, 2). edge(2, 3). edge(1, 3). edge(3, 4). . . . Instantiation: col(1, red) | col(1, yellow) | col(1, green) :- node(1). col(2, red) | col(2, yellow) | col(2, green) :- node(2). col(3, red) | col(3, yellow) | col(3, green) :- node(3). col(3, red) | col(3, yellow) | col(3, green) :- node(4). col(3, red) | col(3, yellow) | col(3, green) :- node(5). col(3, red) | col(3, yellow) | col(3, green) :- node(6). . . .

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-36
SLIDE 36

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Third level of parallelism (3-Colorability)

Given a program with few rules (r) col(X, red) | col(X, yellow) | col(X, green) :- node(X). (c) :- edge(X, Y), col(X, C), col(Y, C).

Instance: node(1). node(2). node(3). node(4). node(5). node(6). Instantiation: col(1, red) | col(1, yellow) | col(1, green) :- node(1). col(2, red) | col(2, yellow) | col(2, green) :- node(2). col(3, red) | col(3, yellow) | col(3, green) :- node(3). col(3, red) | col(3, yellow) | col(3, green) :- node(4). col(3, red) | col(3, yellow) | col(3, green) :- node(5). col(3, red) | col(3, yellow) | col(3, green) :- node(6). . . .

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-37
SLIDE 37

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Third level of parallelism

Crucial aspects

1

Select the body literal to split

→ Selection heuristic

2

Determine the number of splits

→ Load balancing/granularity control

3

Distribute the execution of each “split”

→ Resort to the thread scheduler → i.e., number of splits > available CPUs → Exploit OS resources, minimize locks

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-38
SLIDE 38

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Cost function and choice heuristic

Rule Instantiation Cost

C(k) =      if k < 2 T(L1) · T(L2) if k = 2 C(k − 1) + T(L1 ⋊ ⋉ · · · ⋊ ⋉ Lk−1) · T(k)

  • if k > 2

(1) Ci ≤ Cj, 0 ≤ i < j < n (2)

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-39
SLIDE 39

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Cost function and choice heuristic

Rule Instantiation Cost

C(k) =    if k < 2 T(L1) · T(L2) if k = 2 C(k − 1) + T(L1 ⋊ ⋉ · · · ⋊ ⋉ Lk−1) · T(k) if k > 2 (1) Ci = C(n) − C(i − 1) si + C(i − 1), 1 ≤ i ≤ n (2) Ci ≤ Cj, 0 ≤ i < j < n (3) where si is the maximum number of splits allowed by the i-th literal Cj denotes the cost of splitting on the i-th literal

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-40
SLIDE 40

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Cost function and choice heuristic

Rule Instantiation Cost

C(k) =    if k < 2 T(L1) · T(L2) if k = 2 C(k − 1) + T(L1 ⋊ ⋉ · · · ⋊ ⋉ Lk−1) · T(k) if k > 2 (1) Ci = C(n) − C(i − 1) si + C(i − 1), 1 ≤ i ≤ n (2) Ci ≤ Cj, 0 ≤ i < j < n (3) where si is the maximum number of splits allowed by the i-th literal Cj denotes the cost of splitting on the i-th literal

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-41
SLIDE 41

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Heuristics

Selection of the literal to split

1

Select a body ordering

→ the same as in DLV

2

Take the first literal allowing for the desired number of splits

→ Cheap to compute!

3

Select the literal j of minimum cost

→ The first step applies in most cases

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-42
SLIDE 42

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Load-balancing and Granularity control

“Splitting” affects workload distribution: too small splits → unbalanced loads and/or idle CPUs several splits → exploit thread-scheduling

(if split instantiation requires less than starting threads!)

too many splits → thread scheduling overhead Heuristic to select a good split size “very easy” rules → serial evaluation

(granularity control)

“regular” rules → exploit thread-scheduling

(load balancing)

“very hard” rules → additional redistribution

(load balancing)

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-43
SLIDE 43

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Load-balancing and Granularity control

“Splitting” affects workload distribution: too small splits → unbalanced loads and/or idle CPUs several splits → exploit thread-scheduling

(if split instantiation requires less than starting threads!)

too many splits → thread scheduling overhead Heuristic to select a good split size “very easy” rules → serial evaluation

(granularity control)

“regular” rules → exploit thread-scheduling

(load balancing)

“very hard” rules → additional redistribution

(load balancing)

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-44
SLIDE 44

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Heuristic for Load Balancing and Granularity Control

Cost of instantiation: W(r) Granularity control:

W(r) < wseq → do not split (serial) ”very easy rule”

  • r∈R W(r) < wseq → run on the same thread

”even easier rules”

Load balancing :

W(r) < whard → equally sized splits “regular rules” W(r) > whard → equally sized splits + final redistribution “very hard rules”

Final redistribution:

unary split size for the last total_split_number(r) − ncpu splits intuition: hard rule hard unbalanced splits → → further subdivide the last part of the computation

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-45
SLIDE 45

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Implementation

Minimize parallel overhead

thread creation: time&space waste lock contention (shared resources, output stream): starvation

Producer/Consumers paradigm

Master thread + a thread pool for each level of parallelism A buffer between each level of parallelism An output buffer to reduce lock contention

Implementation in DLV [Leone et.al 2006] Multi-thread programming with Linux POSIX Thread API Minimize the use of mutex locks Minimize the use of system resources (thread “recycling”)

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-46
SLIDE 46

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

System Architecture

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-47
SLIDE 47

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Experiments

Machine: Dual Xeon 3.00GHz (8-cores) Benchmark Problems and Data

1

n-Queens (n ∈ {37, 39, 41, 43, 45})

2

Ramsey Numbers (ramsey(7,7) and n ∈ 31, 32, 33, 34, 35)

3

Clique (Random generated graphs)

4

Sudoku (ASP Competition 2009)

5

Golomb Ruler (ASP Competition 2009)

6

Reachability (Random trees)

7

Hamiltonian Path (Simplex graphs - P . Simons)

8

3-Colorability (Simplex graphs - Stanford GraphBase)

9

Real World Applications: Timetabling, Food

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-48
SLIDE 48

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Average Execution Times on Random instances

(a) Hamiltonian Path (b) 3-Colorability

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-49
SLIDE 49

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Average Execution Times

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-50
SLIDE 50

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Average Efficiency

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-51
SLIDE 51

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Efficiency per CPU

Food: super-linear speedup, efficiency > 1070

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-52
SLIDE 52

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Efficiency per CPU: Hamiltonian Path

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-53
SLIDE 53

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Efficiency per CPU: 3-Colorability

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-54
SLIDE 54

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Part II Grounding & Multi-Engine ASP Systems

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-55
SLIDE 55

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Algorithm Selection (1)

Main observations Usually several search algorithms are available for solving a particular problem No free lunch theorem

“for any algorithm, any elevated performance over one class of problems is offset by performance over another class” [WM97]

Turn this into an advantage

Automatically select the “best” algorithm on a per-instance basis [Ric76]

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-56
SLIDE 56

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Algorithm Selection [Ric76] (2)

Problem space P , a feature space F Set A of considered algorithms, and the performance space Y Find the selection mapping S(f(x)) maximizing the performance mapping y(a(x)) → Usually done learning S(.) from a training set

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-57
SLIDE 57

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Algorithm Selection in ASP

Applied successfully to ASP Solving Claspfolio [HLS14]

Based on regression and dynamic features White box: Combines variants of clasp Winner of several ASP competitions

ME-ASP [MPR14, MPR15a]

Based on classification Cheap to compute static features Black Box: Combines several solvers

Application limited to Solving Step! Can we apply AS to grounding?

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-58
SLIDE 58

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Algorithm Selection in ASP

Applied successfully to ASP Solving Claspfolio [HLS14]

Based on regression and dynamic features White box: Combines variants of clasp Winner of several ASP competitions

ME-ASP [MPR14, MPR15a]

Based on classification Cheap to compute static features Black Box: Combines several solvers

Application limited to Solving Step! Can we apply AS to grounding?

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-59
SLIDE 59

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Algorithm Selection in ASP

Applied successfully to ASP Solving Claspfolio [HLS14]

Based on regression and dynamic features White box: Combines variants of clasp Winner of several ASP competitions

ME-ASP [MPR14, MPR15a]

Based on classification Cheap to compute static features Black Box: Combines several solvers

Application limited to Solving Step! Can we apply AS to grounding? ... yes we can!

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-60
SLIDE 60

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Algorithm Selection in Instantiation

Two possible ways:

1

Combine several grounders [MPR13]

Use GRINGO and DLV Apply ME-ASP approach to grounders

2

Multi-Level Algorithm Selection [MPR15b]

Improve solver “prediction” using non-ground features Classify programs w.r.t. non-ground features Apply algorithm selection on each sub-class Can be combined with selection of grounder

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-61
SLIDE 61

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Automated selection of a grounder (1)

Grounders DLV-g (the grounder of DLV) GRINGO (v. 3.0.3) Benchmark Problems in ASP Core 1.0 of the 3rd ASP Competition The 3rd ASP Competition solvers Clasp, Cmodels3, DLV, IDP

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-62
SLIDE 62

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Automated selection of a grounder (2)

Features Problem size, balance and proximity to Horn features Presence of queries Strongly Connected Components Number of Head-Cycle Free (HCF) and non-HCF components Features indicating if the program is recursive, tight, stratified Number of builtins ... PART algorithm for classification Supervised classification algorithm Patterns are the feature vectors Classes (labels) are the grounders

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-63
SLIDE 63

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Results

Solver Grounder P NP Total # Time # Time # Time DLV-g 48 128.26 93 62.65 141 84.99 Clasp GRINGO 35 97.21 72 32.69 107 53.80

SELECTOR

48 70.94 95 59.64 143 63.43 DLV-g 46 130.47 86 82.42 132 99.16 Cmodels3 GRINGO 32 116.29 67 58.44 99 77.14

SELECTOR

46 70.60 87 80.72 133 77.22 DLV-g 41 129.17 59 71.39 100 95.08 DLV GRINGO 31 107.89 37 28.53 68 64.71

SELECTOR

41 71.26 59 69.50 100 70.22 DLV-g 43 136.54 92 71.13 135 91.96

IDP

GRINGO 32 140.57 72 46.97 104 75.77

SELECTOR

43 74.16 94 70.19 137 71.43

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-64
SLIDE 64

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Selection function

DLV-g when

→ One has to deal with queries → Encoding contains rules having large bodies

(e.g., ≥ 4 literals)

→ and the program has a coarse structure

(few components)

GRINGO when

→ Program is non-disjunctive and recursive with many

components

→ Most of the rules have a short body

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-65
SLIDE 65

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Limits of the approach

Selection of the grounder Potentially beneficial Limited in practice to ASP Core 1.0 Can be cascaded with ME-ASP/Claspfolio

→ Orthogonal to solver selection

No standard for ground output

→ Makes difficult to freely exchange solvers and grounders → It can be done on a restricted language → Conversions reduce efficiency

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-66
SLIDE 66

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

ME-ASP ML: Multi-Level ME-ASP

Multi-Level Algorithm selection Apply algorithm selection on both grounding and solving

→ Extend feature set to “cover” ASP Core 2.0 → Improve solver “prediction” using non-ground features

A multi-level approach

1

Classify programs w.r.t. non-ground features

2

Apply solver selection on each sub-class

Can be combined with selection of grounder

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-67
SLIDE 67

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Engines of ME-ASP ML

Solver C1 C2 C3 C4 CQ

CLASP

LP2BV2+BOOLECTOR

– –

LP2GRAPH

– –

LP2MAXSAT+CLASP

LP2NORMAL2+CLASP

LP2SAT3+GLUCOSE

– – –

LP2SAT3+LINGELING

– – –

WASP1

  • WASP1.5
  • WASP2

Selected solvers from the Fifth ASP Competition Five categories using PART algorithm

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-68
SLIDE 68

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Experiments

Xeon E31245 - 600 seconds TO - 2GB of memory Benchmark: The 5th ASP Competition suite

→ Training & Testing: Randomly split in half the 8572 instances

Significant improvement w.r.t. ME-ASP and other solvers

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-69
SLIDE 69

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Conclusion

Parallel Instantiation of ASP programs Three-levels parallel techniques allowing for Heuristics for Load Balancing and Granularity Control Nearly optimal efficiency on known benchmarks Multi-Level Algorithm selection for ASP Takes into account non-ground features Effective combination of state-of-the art performance

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-70
SLIDE 70

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Future directions, open issues (1)

Parallel & Distributed Instantiation of ASP programs: How to deal with indexes? Impact of recursive aggregates Exploit CUDA-like platforms? How to deal with natively-distributed data? Well-founded semantics on big data [TAF14] New algorithms for Datalog programs [YSZ15]

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-71
SLIDE 71

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Future directions, open issues (2)

Algorithm Selection for ASP More aware of grounding Predict solver+grounder with one level? Select more than two grounders for ASP Core 2.0 Extend the input language (e.g., CASP?)

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-72
SLIDE 72

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Acknowledgments

Thanks for your attention!

Special Thanks Research group at UNICAL and DLVSystem Simona Perri and Marco Sirianni Marco Maratea and Luca Pulina

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-73
SLIDE 73

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

Advertisement

LPNMR Session 15: (September 28th 17:20-19:20)

→ ASP On-Site Modeling Competition

LPNMR Session 16: (September 29th 08:45-10:40)

→ The 6th ASP Competition Report and winners announcement!

LPNMR Session 21: (September 30th 08:45-10:40)

→ For more details on ME-ASP ML

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-74
SLIDE 74

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

References

Mario Alviano, Carmine Dodaro, Nicola Leone, and Francesco Ricca. Advances in WASP. In Logic Programming and Nonmonotonic Reasoning - 13th International Conference, LPNMR 2015, Lexington, KY, USA, September 27-30, 2015. Proceedings, volume 9345 of Lecture Notes in Computer Science, pages 40–54. Springer, 2015. Marcello Balduccini, Enrico Pontelli, Omar El-Khatib, and Hung Le. Issues in parallel execution of non-monotonic reasoning systems. Parallel Computing, 31(6):608–647, 2005. Ozan Caldiran, Kadir Haspalamutgil, Abdullah Ok, Can Palaz, Esra Erdem, and Volkan Patoglu. Bridging the gap between high-level reasoning and low-level control. In LPNMR, pages 342–354, 2009.

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-75
SLIDE 75

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

References (cont.)

Francesco Calimeri, Simona Perri, and Francesco Ricca. Experimenting with parallelism for the instantiation of ASP programs.

  • J. Algorithms, 63(1-3):34–54, 2008.

Evgeny Dantsin, Thomas Eiter, Georg Gottlob, and Andrei Voronkov. Complexity and Expressive Power of Logic Programming. ACM Computing Surveys, 33(3):374–425, 2001. Agostino Dovier, Andrea Formisano, Enrico Pontelli, and Flavio Vella. Parallel execution of the ASP computation - an investigation on gpus. In Vos et al. [VELT15]. James P . Delgrande, Torsten Grote, and Aaron Hunter. A general approach to the verification of cryptographic protocols using answer set programming. In LPNMR, pages 355–367, 2009.

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-76
SLIDE 76

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

References (cont.)

Halit Erdogan, Esra Erdem, and Olivier Bodenreider. Exploiting umls semantics for checking semantic consistency among umls concepts. In In Proc. of MedInfo, 2010. Thomas Eiter, Wolfgang Faber, Nicola Leone, and Gerald Pfeifer. The diagnosis frontend of the dlv system. AI Commun., 12(1-2):99–111, 1999.

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-77
SLIDE 77

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

References (cont.)

Enrico Ellguth, Martin Gebser, Markus Gusowski, Benjamin Kaufmann, Roland Kaminski, Stefan Liske, Torsten Schaub, Lars Schneidenbach, and Bettina Schnor. A simple distributed conflict-driven answer set solver. In Esra Erdem, Fangzhen Lin, and Torsten Schaub, editors, Logic Programming and Nonmonotonic Reasoning, 10th International Conference, LPNMR 2009, Potsdam, Germany, September 14-18, 2009. Proceedings, volume 5753 of Lecture Notes in Computer Science, pages 490–495. Springer, 2009. Thomas Eiter, Georg Gottlob, and Heikki Mannila. Disjunctive datalog. ACM Trans. Database Syst., 22(3):364–418, 1997.

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-78
SLIDE 78

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

References (cont.)

Thomas Eiter, Giovambattista Ianni, Roman Schindlauer, and Hans Tompits. Effective integration of declarative rules with external evaluations for semantic-web reasoning. In ESWC, pages 273–287, 2006. Jean Gressmann, Tomi Janhunen, Robert E. Mercer, Torsten Schaub, Sven Thiele, and Richard Tichy. On probing and multi-threading in platypus. In ECAI 2006, 17th European Conference on Artificial Intelligence, August 29 - September 1, 2006, Riva del Garda, Italy, Including Prestigious Applications of Intelligent Systems (PAIS 2006), Proceedings, pages 392–396, 2006.

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-79
SLIDE 79

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

References (cont.)

Martin Gebser, Benjamin Kaufmann, André Neumann, and Torsten Schaub. Conflict-driven answer set solving. In Twentieth International Joint Conference on Artificial Intelligence (IJCAI-07), pages 386–392. Morgan Kaufmann Publishers, January 2007. Martin Gebser, Benjamin Kaufmann, and Torsten Schaub. Multi-threaded ASP solving with clasp. TPLP, 12(4-5):525–545, 2012. Michael Gelfond and Vladimir Lifschitz. Classical negation in logic programs and disjunctive databases. New Generation Comput., 9(3/4):365–386, 1991.

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-80
SLIDE 80

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

References (cont.)

Martin Gebser, Marco Maratea, and Francesco Ricca. The design of the sixth answer set programming competition. In Logic Programming and Nonmonotonic Reasoning - 13th International Conference, LPNMR 2015, Lexington, KY, USA, September 27-30, 2015. Proceedings, pages 531–544, 2015. Terracina Giorgio, Leone Nicola, and Martello Alessandra. Logic-based techniques for data cleaning: an application to the italian national healthcare system. LPNMR, 2013. Holger H. Hoos, Roland Kaminski, Marius Thomas Lindauer, and Torsten Schaub. aspeed: Solver scheduling via answer set programming. TPLP, 15(1):117–142, 2015.

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-81
SLIDE 81

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

References (cont.)

Holger Hoos, Marius Thomas Lindauer, and Torsten Schaub. claspfolio 2: Advances in algorithm selection for answer set programming. TPLP, 14(4-5):569–585, 2014. Tomi Janhunen. Some (in)translatability results for normal logic programs and propositional theories. Journal of Applied Non-Classical Logics, 16(1-2):35–86, 2006.

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-82
SLIDE 82

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

References (cont.)

Nicola Leone, Gianluigi Greco, Giovambattista Ianni, Vincenzino Lio, Giorgio Terracina, Thomas Eiter, Wolfgang Faber, Michael Fink, Georg Gottlob, Riccardo Rosati, Domenico Lembo, Maurizio Lenzerini, Marco Ruzzi, Edyta Kalka, Bartosz Nowicki, and Witold Staniszkis. The INFOMIX system for advanced integration of incomplete and inconsistent data. In Proceedings of the ACM SIGMOD International Conference on Management of Data, Baltimore, Maryland, USA, June 14-16, 2005, pages 915–917. ACM, 2005. Vladimir Lifschitz. Answer set programming and plan generation.

  • Artif. Intell., 138(1-2):39–54, 2002.

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-83
SLIDE 83

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

References (cont.)

Yuliya Lierler and Marco Maratea. Cmodels-2: SAT-based Answer Set Solver Enhanced to Non-tight Programs. In Vladimir Lifschitz and Ilkka Niemelä, editors, Proceedings of the 7th International Conference on Logic Programming and Non-Monotonic Reasoning (LPNMR-7), volume 2923 of LNAI, pages 346–350. Springer, January 2004. Nicola Leone, Gerald Pfeifer, Wolfgang Faber, Thomas Eiter, Georg Gottlob, Simona Perri, and Francesco Scarcello. The DLV System for Knowledge Representation and Reasoning. TOCL, 7(3):499–562, July 2006.

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-84
SLIDE 84

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

References (cont.)

Nicola Leone and Francesco Ricca. Answer set programming: A tour from the basics to advanced development tools and industrial applications. In Reasoning Web. Web Logic Rules - 11th International Summer School 2015, Berlin, Germany, July 31 - August 4, 2015, Tutorial Lectures, volume 9203 of Lecture Notes in Computer Science, pages 308–326. Springer, 2015. Marco Maratea, Luca Pulina, and Francesco Ricca. Automated selection of grounding algorithm in answer set programming. In AI*IA 2013: Advances in Artificial Intelligence - XIIIth International Conference of the Italian Association for Artificial Intelligence, Turin, Italy, December 4-6, 2013. Proceedings, volume 8249 of Lecture Notes in Computer Science, pages 73–84. Springer, 2013.

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-85
SLIDE 85

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

References (cont.)

Marco Maratea, Luca Pulina, and Francesco Ricca. A multi-engine approach to answer-set programming. TPLP, 14(6):841–868, 2014. Marco Maratea, Luca Pulina, and Francesco Ricca. Advances in multi-engine ASP solving. In AI*IA 2015, Advances in Artificial Intelligence - XIVth International Conference of the Italian Association for Artificial Intelligence, Ferrara, Italy, September 23-25, 2015, Proceedings, volume 9336 of Lecture Notes in Computer Science, pages 179–190. Springer, 2015.

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-86
SLIDE 86

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

References (cont.)

Marco Maratea, Luca Pulina, and Francesco Ricca. Multi-level algorithm selection for ASP. In Logic Programming and Nonmonotonic Reasoning - 13th International Conference, LPNMR 2015, Lexington, KY, USA, September 27-30, 2015. Proceedings, volume 9345 of Lecture Notes in Computer Science, pages 439–445. Springer, 2015. Marco Manna, Francesco Ricca, and Giorgio Terracina. Taming primary key violations to query large inconsistent data via ASP. TPLP, 15(4-5):696–710, 2015. Enrico Pontelli, Hung Viet Le, and Tran Cao Son. An investigation in parallel execution of answer set programs on distributed memory platforms: Task sharing and dynamic scheduling. Computer Languages, Systems & Structures, 36(2):158–202, 2010.

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-87
SLIDE 87

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

References (cont.)

Simona Perri, Francesco Ricca, and Marco Sirianni. Parallel instantiation of ASP programs: techniques and experiments. TPLP, 13(2):253–278, 2013. Francesco Ricca, Antonella Dimasi, Giovanni Grasso, Salvatore Maria Ielpa, Salvatore Iiritano, Marco Manna, and Nicola Leone. A logic-based system for e-tourism.

  • Fundam. Inform., 105(1-2):35–55, 2010.

Francesco Ricca, Giovanni Grasso, Mario Alviano, Marco Manna, Vincenzino Lio, Salvatore Iiritano, and Nicola Leone. Team-building with answer set programming in the gioia-tauro seaport. TPLP, 12(3):361–381, 2012.

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-88
SLIDE 88

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

References (cont.)

John R. Rice. The algorithm selection problem. Advances in Computers, 15:65–118, 1976. Chiaki Sakama. Dishonest reasoning by abduction. In IJCAI, pages 1063–1064, 2011. Timo Soininen and Ilkka Niemelä. Developing a declarative rule language for applications in product configuration. In PADL, pages 305–319, 1999. Ilias Tachmazidis, Grigoris Antoniou, and Wolfgang Faber. Efficient computation of the well-founded semantics over big data. TPLP, 14(4-5):445–459, 2014.

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-89
SLIDE 89

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

References (cont.)

Marina De Vos, Thomas Eiter, Yuliya Lierler, and Francesca Toni, editors. Proceedings of the Technical Communications of the 31st International Conference on Logic Programming (ICLP 2015), Cork, Ireland, August 31 - September 4, 2015, volume 1433 of CEUR Workshop Proceedings. CEUR-WS.org, 2015. David Wolpert and William G. Macready. No free lunch theorems for optimization. IEEE Trans. Evolutionary Computation, 1(1):67–82, 1997. Johan Wittocx, Maarten Mariën, and Marc Denecker. The IDP system: a model expansion system for an extension of classical logic. In Marc Denecker, editor, Logic and Search, Computation of Structures from Declarative Descriptions (LaSh 2008), pages 153–165, Leuven, Belgium, November 2008.

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving

slide-90
SLIDE 90

Introduction Parallel Instantiation Grounding in Multi-Engine ASP-System Conclusion

References (cont.)

Mohan Yang, Alexander Shkapsky, and Carlo Zaniolo. Parallel bottom-up evaluation of logic programs: Deals on shared-memory multicore machines. In Vos et al. [VELT15].

Francesco Ricca Grounding Issues in Parallel and Multi-Engine ASP Solving