Changeset 4780


Ignore:
Timestamp:
Sep 21, 2015, 11:19:49 AM (3 years ago)
Author:
nmedfort
Message:

Figure and table alignment

Location:
docs/Working/icGrep
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • docs/Working/icGrep/Paper88.tex

    r4779 r4780  
    1010\usepackage[official]{eurosym}
    1111\usepackage[utf8]{inputenc}
    12 
     12\usepackage{listings}
     13\lstset{breaklines=true,basicstyle=\small\ttfamily}
    1314\usepackage{bbding}
    1415
     
    6869\input{conclusion.tex}
    6970
    70 \bibliographystyle{splncs03}
     71\bibliographystyle{splncs}
    7172\bibliography{bitgrep}
    7273\end{document}
  • docs/Working/icGrep/background.tex

    r4604 r4780  
    132132
    133133
    134 \comment{
    135 
    136 \subsection{LLVM}
    137 
    138 The LLVM compiler infrastructure is a set of modular compiler components and tools
    139 organized around a powerful generic intermediate representation (LLVM IR) that is
    140 agnostic with respect to source language and code-generation targets.   
    141 Beginning as an MSc research project at the University of Illinois \cite{lattner2004llvm},
    142 LLVM is now an open-source codebase supported by a broad community of
    143 researchers, developers and commercial organizations.   
    144 
    145 LLVM features a flexible multi-stage compilation structure that can be organized in
    146 passes in many ways, including fully dynamic just-in-time compilation.   Of particular
    147 importance to the \icGrep{} project, the LLVM IR supports arbitrarily-sized vectors of
    148 arbitrary-width integers, well suited to code generation
    149 targetting the SIMD integer instructions of commodity processors.
    150 
    151 
    152 
    153 \subsection{Parabix Regular Expression Matching}
    154 }
     134% \comment{
     135%
     136% \subsection{LLVM}
     137%
     138% The LLVM compiler infrastructure is a set of modular compiler components and tools
     139% organized around a powerful generic intermediate representation (LLVM IR) that is
     140% agnostic with respect to source language and code-generation targets.   
     141% Beginning as an MSc research project at the University of Illinois \cite{lattner2004llvm},
     142% LLVM is now an open-source codebase supported by a broad community of
     143% researchers, developers and commercial organizations.   
     144%
     145% LLVM features a flexible multi-stage compilation structure that can be organized in
     146% passes in many ways, including fully dynamic just-in-time compilation.   Of particular
     147% importance to the \icGrep{} project, the LLVM IR supports arbitrarily-sized vectors of
     148% arbitrary-width integers, well suited to code generation
     149% targetting the SIMD integer instructions of commodity processors.
     150%
     151%
     152%
     153% \subsection{Parabix Regular Expression Matching}
     154% }
  • docs/Working/icGrep/evaluation.tex

    r4606 r4780  
    11\section{Evaluation}\label{sec:evaluation}
     2
     3\def\AN{A.N.}
    24
    35In this section, we report on the evaluation of \icGrep{} performance, looking at three aspects.   
     
    5557%than 50\% without the if-statement short-circuiting. %%% I think we'd need to show this always true to make this claim.
    5658
    57 \comment{
    58 Additionally, \icGrep{} provides options that allow
    59 various internal representations to be printed out.   
    60 %
    61 These can aid in understanding and/or debugging performance issues.
    62 For example, the option
    63 {\tt -print-REs} shows the parsed regular expression as it goes
    64 through various transformations.   The internal \Pablo{} code generated
    65 may be displayed with {\tt -print-pablo}.  This can be quite useful in
    66 helping understand the match process.   It also possible to print out the
    67 generated LLVM IR code ({\tt -dump-generated-IR}), but this may be
    68 less useful as it includes many
    69 details of low-level carry-handling that obscures the core logic.
    70 }
     59% \comment{
     60% Additionally, \icGrep{} provides options that allow
     61% various internal representations to be printed out.   
     62% %
     63% These can aid in understanding and/or debugging performance issues.
     64% For example, the option
     65% {\tt -print-REs} shows the parsed regular expression as it goes
     66% through various transformations.   The internal \Pablo{} code generated
     67% may be displayed with {\tt -print-pablo}.  This can be quite useful in
     68% helping understand the match process.   It also possible to print out the
     69% generated LLVM IR code ({\tt -dump-generated-IR}), but this may be
     70% less useful as it includes many
     71% details of low-level carry-handling that obscures the core logic.
     72% }
    7173
    7274The precompiled calculations of the various Unicode properties
     
    104106
    105107\begin{figure}
     108\vspace{-0.5em}
    106109\begin{center}
    107110\pgfplotstableread[col sep = comma]{data/icgrep-scatter.csv}\icgrep
     
    127130\legend{icGrep,ugrep541,pcre2grep}
    128131\end{axis}
    129 
    130 
    131132\end{tikzpicture}
    132133\end{center}
     134\vspace{-1em}
    133135\caption{Matching Performance for Simple Property Expressions}\label{fig:property_test}
     136\vspace{-0.5em}
    134137\end{figure}
    135138
     
    164167\begin{table}\centering % requires booktabs
    165168\small\vspace{-2em}
    166 \begin{tabular}{@{}p{2.7cm}p{10.8cm}@{}}
     169\begin{tabular}{@{}p{2cm}p{9.8cm}@{}}
    167170\textbf{Name}&\textbf{Regular Expression}\\
    168171\toprule
    169 Alphanumeric \#1&\verb`^[\p{L}\p{N}]*((\p{L}\p{N})|(\p{N}\p{L}))[\p{L}\p{N}]*$`\\
    170 \midrule
    171 Alphanumeric \#2&\verb`[\p{L}\p{N}]*((\p{L}\p{N})|(\p{N}\p{L}))[\p{L}\p{N}]*`\\
    172 \midrule
    173 Arabic&\verb`^[\p{Arabic}\p{Common}]*\p{Arabic}[\p{Arabic}\p{Common}]*$`\\
    174 \midrule
    175 Currency&\verb`(\p{Sc}\s*(\d*|(\d{1,3}([,.]\d{3})*))([,.]\d{2}?)?)|`\newline\verb`((\d*|(\d{1,3}([,.]\d{3})*))([,.]\d{2}?)?\s*\p{Sc})`\\
    176 \midrule
    177 Cyrillic&\verb`[\p{Pi}\p{Po}]\p{Cyrillic}{6,}[\p{Pf}\p{Pe}]`\\
    178 \midrule
    179 Email &\verb`([^\p{Z}<]+@[\p{L}\p{M}\p{N}.-]+\.(\p{L}\p{M}*){2,6})(>|\p{Z}|$)`\\
     172\AN{} \#1&\lstinline`^[\p{L}\p{N}]*((\p{L}\p{N})|(\p{N}\p{L}))[\p{L}\p{N}]*$`\\
     173\midrule
     174\AN{} \#2&\lstinline`[\p{L}\p{N}]*((\p{L}\p{N})|(\p{N}\p{L}))[\p{L}\p{N}]*`\\
     175\midrule
     176Arabic&\lstinline`^[\p{Arabic}\p{Common}]*\p{Arabic}[\p{Arabic}\p{Common}]*$`\\
     177\midrule
     178Currency&\lstinline`(\p{Sc}\s*(\d*|(\d{1,3}([,.]\d{3})*))([,.]\d{2}?)?)|`\\
     179&\lstinline`((\d*|(\d{1,3}([,.]\d{3})*))([,.]\d{2}?)?\s*\p{Sc})`\\
     180\midrule
     181Cyrillic&\lstinline`[\p{Pi}\p{Po}]\p{Cyrillic}{6,}[\p{Pf}\p{Pe}]`\\
     182\midrule
     183Email &\lstinline`([^\p{Z}<]+@[\p{L}\p{M}\p{N}.-]+\.(\p{L}\p{M}*){2,6})`\\
     184&\lstinline`(>|\p{Z}|$)`\\
    180185\bottomrule
    181186\end{tabular}
     
    187192series of more complex expressions, shown in Table \ref{table:regularexpr}.
    188193%
    189 The first two are alphanumeric expressions, differing only in that the first
     194The first two are alphanumeric (\AN{}) expressions, differing only in that the first
    190195one is anchored to match the entire line.
    191196%
     
    211216\newcolumntype{T}{c}
    212217\small\vspace{-2em}
    213 \begin{tabular}{@{}p{3cm}r@{~--~}rp{4pt}r@{~--~}rp{4pt}r@{~--~}rp{4pt}r@{~--~}rp{4pt}@{}}
     218\begin{tabular}{@{}p{2cm}r@{~--~}rp{4pt}r@{~--~}rp{4pt}r@{~--~}rp{4pt}r@{~--~}rp{4pt}@{}}
    214219&\multicolumn{6}{c}{\textbf{\icGrep{}}}\\
    215220\cmidrule[1pt](lr){2-7}
     
    218223\textbf{Expression}&\multicolumn{3}{T}{\textbf{SEQ}}&\multicolumn{3}{T}{\textbf{MT}}&\multicolumn{3}{T}{\textbf{pcre2grep}}&\multicolumn{3}{T}{\textbf{ugrep541}}\\
    219224\toprule
    220 Alphanumeric \#1&2.4&5.0&&2.1&4.4&&8.2&11.3&&8.8&11.3&\\
    221 Alphanumeric \#2&2.3&4.9&&2.0&4.1&&209.9&563.5&&182.3&457.9&\\
     225\AN{} \#1&2.4&5.0&&2.1&4.4&&8.2&11.3&&8.8&11.3&\\
     226\AN{} \#2&2.3&4.9&&2.0&4.1&&209.9&563.5&&182.3&457.9&\\
    222227Arabic&1.5&3.4&&1.2&2.6&&7.5&270.8&&8.9&327.8&\\
    223228Currency&0.7&2.1&&0.4&1.4&&188.4&352.3&&52.8&152.8&\\
     
    263268
    264269\begin{table}[h]\centering % requires booktabs,siunitx
    265 \small
    266 \vspace{-2em}
    267 \begin{tabular}{@{}p{3cm}l@{~}r@{~~}l@{~}r@{~~}l@{~}r@{~~}l@{~}r@{~~}l@{~}r@{~~}l@{~}r@{~~}@{}}
     270\small\vspace{-2em}
     271\begin{tabular}{@{}p{2cm}l@{~}r@{~~}l@{~}r@{~~}l@{~}r@{~~}l@{~}r@{~~}l@{~}r@{~~}l@{~}r@{~~}@{}}
    268272&\multicolumn{2}{c}{\textbf{Base}}&\multicolumn{4}{c}{\textbf{SEQ}}&\multicolumn{6}{c}{\textbf{MT}}\\
    269273\cmidrule[1pt](lr){2-3}
     
    272276\textbf{Expression}&\multicolumn{2}{c}{\textbf{s/GB}}&\multicolumn{2}{c}{\textbf{AVX1}}&\multicolumn{2}{c}{\textbf{AVX2}}&\multicolumn{2}{c}{\textbf{SSE2}}&\multicolumn{2}{c}{\textbf{AVX1}}&\multicolumn{2}{c}{\textbf{AVX2}}\\
    273277\toprule
    274 Alphanumeric \#1&2.76&(.65)&1.05&(.03)&1.25&(.08)&1.18&(.02)&1.19&(.03)&1.59&(.10)\\
    275 Alphanumeric \#2&2.69&(.66)&1.05&(.02)&1.36&(.09)&1.20&(.03)&1.19&(.04)&1.80&(.11)\\
     278\AN{} \#1&2.76&(.65)&1.05&(.03)&1.25&(.08)&1.18&(.02)&1.19&(.03)&1.59&(.10)\\
     279\AN{} \#2&2.69&(.66)&1.05&(.02)&1.36&(.09)&1.20&(.03)&1.19&(.04)&1.80&(.11)\\
    276280Arabic&1.82&(.39)&1.05&(.03)&1.15&(.08)&1.37&(.03)&1.37&(.04)&1.66&(.10)\\
    277281Currency&1.04&(.30)&1.03&(.02)&1.04&(.06)&1.59&(.15)&1.61&(.14)&1.78&(.21)\\
  • docs/Working/icGrep/fig-executor.tex

    r4554 r4780  
    11\begin{figure}[tbh]
     2\vspace{-2em}
    23\begin{center}
    34
     
    5051
    5152\end{center}
     53\vspace{-1em}
    5254\caption{Data flow in an icGrep execution} \label{fig:execution}
     55\vspace{-1em}
    5356\end{figure}
Note: See TracChangeset for help on using the changeset viewer.