# Changeset 1302 for docs

Ignore:
Timestamp:
Aug 8, 2011, 4:43:21 PM (8 years ago)
Message:

Create a directory for HPCA

Location:
docs
Files:
49 added
4 edited

Unmodified
Added
Removed
• ## docs/EuroPar2011/Demo/europar.py

 r1189 ('$M_0 + D$',  bitutil.bitstream2stringLE(temp, lgth, zero_ch)), ('$M_1 = (M_0 + D) \\wedge \\neg D$', bitutil.bitstream2stringLE(cursor2, lgth, zero_ch))]) def latex_csv_parse(chardata): lgth = len(chardata) (bit, EOF_mask) = bitutil.transpose_streams(chardata) (u8, control, lex) = byteclass.classify_bytes(bit) p2 = lex.DQuote^(lex.DQuote<<1); p4 = p2^(p2<<2); p8 = p4^(p4<<4); p16 = p8^(p8<<8); p32 = p16^(p16<<16); p64 = p32^(p32<<32); quote_mask = p64^(p64<<64); return bitutil.latex_streams([('source', chardata[::-1]), ('Quote', bitutil.bitstream2stringLE(lex.DQuote, lgth, zero_ch)), ('LF', bitutil.bitstream2stringLE(control.LF, lgth, zero_ch)), ('p2=DQuote^(DQuote<<1)', bitutil.bitstream2stringLE(p2, lgth, zero_ch)), ('p4=p2^(p2<<2)', bitutil.bitstream2stringLE(p4, lgth, zero_ch)), ('p8=p4^(p4<<4)', bitutil.bitstream2stringLE(p8, lgth, zero_ch)), ('p16=p8^(p8<<8)', bitutil.bitstream2stringLE(p16, lgth, zero_ch)), ('p32=p16^(p16<<16)', bitutil.bitstream2stringLE(p32, lgth, zero_ch)), ('p64=p32^(p32<<32)', bitutil.bitstream2stringLE(p64, lgth, zero_ch)), ('quote mask', bitutil.bitstream2stringLE(quote_mask, lgth, zero_ch)), ('new line', bitutil.bitstream2stringLE(control.LF&~quote_mask, lgth, zero_ch))]) def europar1(): if __name__ == "__main__": print demo_transpose_ascii('xmlwf') print latex_csv_parse('1996,"Jeep","Grand","SELL!\nair"\n')
• ## docs/EuroPar2011/europar-cameron.tex

 r1186 A bitstream is simply a sequence of $0$s and $1$s, where there is one such bit in the bitstream for each character in a source data stream. For parsing, and other text processing tasks, we need to consider multiple properties of characters at different stages during the parsing process. A bitstream can be associated with each of these properties, and hence there will be multiple (parallel) bitstreams associated with a source data stream of characters. For parsing, and other text processing tasks, we need to consider multiple properties of characters at different stages during the parsing process. A bitstream can be associated with each of these properties, and hence there will be multiple (parallel) bitstreams associated with a source data stream of characters. The starting point for bitstream methods are \emph{basis} bitstreams
• ## docs/Working/parlensort.tex

 r1187 be implemented using our existing Pablo language, avoiding low-level C programming. \section{DIV2 grouping} Given streams $S$ and $E$ that mark the starts and ends of Names. We can partition $E$ into length-sorted groups using div2-length strategy: $G_i = n(E_{i*2-1})|E_{i*2}$ First we calculate $T$, which marks the two positions after each name. Then we can get $G_1$ as follows. \begin{eqnarray*} T & = & E | n(E)\\ S_2 & = & n(n(S))\\ G_1 & = & S_2 \wedge T \\ \end{eqnarray*} $G_i (i>1)$ can be similarly determined as follows. \begin{eqnarray*} S_{i*2} & = & n(n(S_{(i-1)*2} \wedge \neg T)) \\ G_i & = & S_{i*2} \wedge T \\ \end{eqnarray*} Once the length sorting above has completed, then we can process names using bitscan techniques. For each $G_i (i>0)$: \begin{enumerate} \item Sequentially scan $G_i$ to find positions $P_i = \{p_{i,0},p_{i,1},...,p_{i,n},\}$. \item For each $k$ in $\{1,2...,n\}$, calculate hash value for name $N[p_{i,k-i*2}]...N[p_{i,k-1}]$ \item Look up hash table. If the name exist, process next name. Otherwise, if $N[p_{i,k-1}]$ is a delimiter (name length is odd), lookup name $N[p_{i,k-i*2}]...N[p_{i,k-2}] (i>1)$ or name $N[p_{1,k-2}]$. If it exists, get its GID $g$ and insert $N[p_{i,k-i*2}]...N[p_{i,k-1}]$ with GID $g$. If it dosen't exist, insert this name with a new GID and insert $N[p_{i,k-i*2}]...N[p_{i,k-1}]$ with the same GID. If $N[p_{i,k-1}]$ is not a delimiter (name length is even), insert $N[p_{i,k-i*2}]...N[p_{i,k-1}]$ with a new GID. \end{enumerate} % \section{Grouping Strategies} % \subsection{Length Grouping} % \subsubsection{ID grouping} % % \subsubsection{LOG grouping} % % \subsubsection{DIV grouping} % % \subsection{Length + hash Grouping} % % \section{Sorting Algorithms} % \subsection{Sequential Sorting} % % \subsection{Parallel Sorting} % % \section{Group Processing Strategies} % % \subsection{Linear SIMD Search} % % \subsection{Trie} % % \subsection{Hash} \end{document}
Note: See TracChangeset for help on using the changeset viewer.