source: docs/Working/icGrep/fig-executor.tex @ 4505

Last change on this file since 4505 was 4504, checked in by nmedfort, 4 years ago

Small fix for unicode matching example along with formatting changes

File size: 2.7 KB
Line 
1\begin{figure}[tbh]
2\begin{center}
3
4\pgfdeclarelayer{threads}
5\pgfdeclarelayer{components}
6\pgfsetlayers{threads,main}
7
8\tikzstyle{block} = [rectangle, draw, text width=15em, text centered, minimum height=1.75em, thick, font=\ttfamily\bfseries, node distance=3.5em]
9\tikzstyle{line} = [draw, ->, line width=1.4pt]
10\tikzstyle{separator} = [draw, line width=0.125em, dashed]
11\tikzstyle{thread} = [rectangle, corners=rounded, draw, text width=15em, text centered, minimum height=1.75em, thick, font=\ttfamily\bfseries, node distance=3.5em]
12\tikzset{block/.append style={execute at begin node=\footnotesize}}   
13\begin{tikzpicture}[node distance=3cm, auto, >=stealth]
14
15    % Place nodes
16    \node [draw=none] (InputData) {Streaming Input Data};
17    \node [block, below of=InputData] (S2P) {Transposition};
18    \node [block, below of=S2P] (RequiredStreamsGenerator) {Required Streams Generator};
19    \node [block, below of=RequiredStreamsGenerator] (JITFunction) {Dynamic Matcher};
20    \node [block, right of=JITFunction, node distance=20em] (NamedPropertyLibrary) {Named Property Library};
21    \node [block, below of=JITFunction] (MatchScanner) {Match Scanner};
22    \node [draw=none, below of=MatchScanner, node distance=3.5em] (OutputResult) {Streaming Output Result};
23   
24    % Draw edges
25    \path [line] (InputData) -- (S2P);
26    \path [line] (S2P) -- (RequiredStreamsGenerator);
27    \path [line] (RequiredStreamsGenerator) -- (JITFunction);
28    \path [line] (NamedPropertyLibrary) -- (JITFunction);
29    \path [line] (JITFunction) -- (MatchScanner);
30    \path [line] (MatchScanner) -- (OutputResult);
31
32    \begin{pgfonlayer}{threads}
33        \path (S2P.north west)+(-.1,.5) node (a) {};
34        \path (S2P.south east)+(+1.7,-0.1) node (b) {};
35        \path[fill=green!20,rounded corners, draw=green, solid] (a) rectangle (b);
36        \node [draw=none,above=-0.04cm of S2P.north east] (t1) {Transposition Thread};
37
38        \path (RequiredStreamsGenerator.north west)+(-.1,.38) node (a) {};
39        \path (RequiredStreamsGenerator.south east)+(+2,-0.1) node (b) {};
40        \path[fill=blue!20,rounded corners, draw=blue, solid] (a) rectangle (b);
41        \node [draw=none,above=-0.04cm of RequiredStreamsGenerator.north east] (t1) {Stream Generator Thread};
42
43        \path (JITFunction.north west)+(-.1,.38) node (a) {};
44        \path (NamedPropertyLibrary.east |- MatchScanner.south)+(+.1,-0.1) node (b) {};
45        \path[fill=red!20,rounded corners, draw=red, solid] (a) rectangle (b);
46        \node [draw=none,above=-0.04cm of JITFunction.north east] (t1) {Matcher Thread};
47
48    \end{pgfonlayer}{threads}
49\end{tikzpicture}
50
51\end{center}
52\caption{Data flow in an icGrep execution} \label{fig:execution}
53\end{figure} 
Note: See TracBrowser for help on using the repository browser.