28.02.2014 Views

An Integrated Data Analysis Suite and Programming ... - TOBIAS-lib

An Integrated Data Analysis Suite and Programming ... - TOBIAS-lib

An Integrated Data Analysis Suite and Programming ... - TOBIAS-lib

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

74 CHAPTER 3. A C++ FRAMEWORK FOR HIGH-THROUGHPUT DNA SEQUENCING<br />

(a)<br />

serial<br />

parallelizer<br />

parallel<br />

sync<br />

serial<br />

desync<br />

parallel<br />

Source<br />

multiplexer<br />

track<br />

Pipe<br />

multiplexer<br />

thread<br />

Pipe<br />

lock_link<br />

. . .<br />

. . .<br />

. . .<br />

. . .<br />

track<br />

Sink<br />

. . .<br />

. . .<br />

(b)<br />

serial<br />

parallelizer<br />

parallel<br />

sync<br />

serial<br />

desync<br />

parallel<br />

multiplexer<br />

track<br />

multiplexer<br />

thread<br />

Pipe<br />

lock_link<br />

. . .<br />

. . .<br />

. . .<br />

. . .<br />

track<br />

Sink<br />

. . .<br />

. . .<br />

Signal<br />

data<br />

ush<br />

Slot<br />

postlock<br />

preunlock<br />

postunlock<br />

join<br />

Figure 3.3: Connections between Parallel Processing Objects<br />

the respective thread. <strong>An</strong> auxiliary flush signal in addition conveys the thread-specic ush<br />

state across synchronized sections of the processing pipeline.<br />

Finally, a connection join is supported by all parallel processing modules to ensure correct<br />

termination of processing across all threads.<br />

For distributed memory architectures, data are distributed from a single root process to<br />

several worker processes. Worker processes must receive the data to be processed concurrently<br />

from the root process, <strong>and</strong> must subsequently return their output data for processing by serial<br />

modules (gure 3.3(b) ).<br />

Objects of parallelizer, sync <strong>and</strong> desync initialized in worker processes automatically<br />

establish connections for exchange of data with their respective counterpart in the root process,<br />

where each connection is associated with an additional thread in the root process.<br />

To prevent initialization conicts <strong>and</strong> overhead, serial objects are associated with the additional<br />

function of preventing creation of their respective incorporated processing module when

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

Saved successfully!

Ooh no, something went wrong!