29.04.2014 Views

Presburger Arithmetic and Its Use in Verification

Presburger Arithmetic and Its Use in Verification

Presburger Arithmetic and Its Use in Verification

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Chapter 7<br />

Parallel execution of decision procedures<br />

In this chapter, parallel versions of Cooper’s algorithm <strong>and</strong> the Omega Test are<br />

discussed with many details regard<strong>in</strong>g their concurrency, efficiency <strong>and</strong> scalability.<br />

While Cooper’s algorithm is presented <strong>in</strong> a complete procedure, the Omega Test is<br />

used as a partial process assist<strong>in</strong>g simplification of complex <strong>Presburger</strong> formulas.<br />

In each section, some test sets are selected for experimentation <strong>and</strong> experimental<br />

results are <strong>in</strong>terpreted. These test sets are carefully chosen from sources of <strong>Presburger</strong><br />

fragments <strong>in</strong> Section 6.1 <strong>and</strong> experiments if not explicitly mentioned are<br />

performed on the 8-core 2.40GHz Intel Xeon workstation with 8GB shared physical<br />

memory. Each test is chosen so that its execution time is smaller than 12 seconds.<br />

Measurement of execution time is done <strong>in</strong> the follow<strong>in</strong>g manner:<br />

•Benchmarkfunctionsareexecuted<strong>in</strong>alow-loadenvironment.<br />

•Somesessionsareperformedseveraltimessothateveryfunctionisawarm<br />

state before benchmark<strong>in</strong>g.<br />

•Eachtestisrun10 times <strong>and</strong> average execution time is recorded.<br />

7.1 A parallel version of Cooper’s algorithm<br />

In this section, we discuss parallelism <strong>in</strong> Cooper’s algorithm <strong>and</strong> sketch some ideas<br />

about how to exploit it. We come up with design <strong>and</strong> implementation for the<br />

procedure <strong>and</strong> present experimental results.<br />

7.1.1 F<strong>in</strong>d<strong>in</strong>g concurrency<br />

As discussed <strong>in</strong> Section 6.3, elim<strong>in</strong>at<strong>in</strong>g blocks of quantifiers is good because many<br />

small formulas are faster to manipulate. Other than that there is a chance of concurrency<br />

<strong>in</strong> distribut<strong>in</strong>g blocks of quantifiers, where small formulas are <strong>in</strong>dependent<br />

of each other <strong>and</strong> it is possible to elim<strong>in</strong>ate quantifiers <strong>in</strong> parallel. Our idea of<br />

49

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!