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

Last change on this file since 4780 was 4780, checked in by nmedfort, 3 years ago

Figure and table alignment

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