13.12.2012 Views

Theoretical and Experimental DNA Computation (Natural ...

Theoretical and Experimental DNA Computation (Natural ...

Theoretical and Experimental DNA Computation (Natural ...

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.

<strong>and</strong><br />

repeat repeat-value times<br />

instruction-sequence<br />

4.9 P-RAM Simulation 93<br />

There is a restriction that the variables start-value, step-value, end-value, <strong>and</strong><br />

repeat-value are independent of the specific input data, i.e., are constants or<br />

functions of the number of input items, n, but not of their specific values.<br />

We allow each processor a local register (accumulator), ACC, for conditional<br />

testing <strong>and</strong> storage of partial results. The instruction instx instantiated<br />

by the control program at processor x is a numbered sequence of basic operations<br />

from the set of primitives listed in Table 4.4.<br />

Table 4.4. Processor instruction set<br />

Symbol Name Meaning<br />

LDC x Load Constant Place the value x in ACC<br />

LDA x Load (direct address) ACC := M[x]<br />

LDI x Load (indirect address) ACC := M[M[x]]<br />

STA x Store in memory (direct) M[x] :=ACC; ACC is set to 0.<br />

STI x Store in memory (indirect) M[M[x]] := ACC; ACC is set to 0<br />

JUMP k Unconditional jump Jump to instruction k<br />

JLT x,k Conditional jump If M[x] < 0 then jump to instruction k<br />

JLE x,k Conditional jump If M[x] ≤ 0 then jump to instruction k<br />

JGT x,k Conditional jump If M[x] > 0 then jump to instruction k<br />

JGE x,k Conditional jump If M[x] ≥ 0 then jump to instruction k<br />

JEQ x,k Conditional jump If M[x] = 0 then jump to instruction k<br />

JNE x,k Conditional jump If M[x] �= 0 then jump to instruction k<br />

ADD x Addition ACC := ACC + M[x]<br />

SUB x Subtraction ACC := ACC − M[x]<br />

MULT x Multiplication ACC := ACC ∗ M[x]<br />

DIV x Integer Division ACC := ACC/M[x]<br />

AND x Bitwise logical conjunction ACC := ACC ∧ M[x]<br />

NEG Bitwise logical negation ACC := ¬ACC<br />

HALT Halt Stop execution<br />

We now consider the parallel complexity measures used within this model. Let<br />

A be a P-RAM algorithm to compute some function f(t1,...,tn) employing<br />

instructions from Table 4.4. The parallel runtime of A on < t1,...,tn >,<br />

denoted T (t1,...,tn), is the number of calls of par do multiplied by the<br />

worst case number of basic operations executed by a single processor during<br />

any of these calls. This is, of course, typically an overestimate of the actual<br />

parallel runtime; however, for the specific class of parallel algorithms with<br />

which we are concerned this is not significant.<br />

The parallel runtime of A on inputs of size n, denoted T (n), is T (n) =<br />

max {t1,...,tn} T (t1,...,tn). The processor requirements of A on ,

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

Saved successfully!

Ooh no, something went wrong!