Ignore:
Timestamp:
Oct 20, 2012, 12:30:32 PM (7 years ago)
Author:
nmedfort
Message:

edits

File:
1 edited

Legend:

Unmodified
Added
Removed
  • docs/Working/icXML/icxml-main.tex

    r2516 r2522  
    4646\def \PS {Parabix Subsystem}
    4747\def \MP {Markup Processor}
     48\def \wrt {with respect to}
    4849
    4950\title{\icXML{}:  Accelerating a Commercial XML Parser Using SIMD and Multicore Technologies}
     
    8586Methods without pre-parsing have used speculation \cite{HPCC2011} or post-processing that
    8687combines the partial results \cite{ParaDOM2009}.
    87 A hybrid method that combines data parallelism and pipeline parallelism is proposed to
    88 hide the latency of the ``job'' that has to be done sequentially \cite{ICWS2008}.
     88A hybrid technique that combines data and pipeline parallelism was proposed to
     89hide the latency of a ``job'' that has to be done sequentially \cite{ICWS2008}.
    8990
    9091Fewer efforts have investigated SIMD parallelism, although this approach
    9192has the potential advantage of improving single core performance as well
    92 as offering savings in energy consumption.
     93as offering savings in energy consumption \cite{HPCA2012}.
    9394Intel introduced specialized SIMD string processing instructions in the SSE 4.2 instruction set extension
    9495and showed how they can be used to improve the performance of XML parsing \cite{XMLSSE42}.
     
    106107preserve the existing APIs as well as offering worthwhile
    107108end-to-end acceleration of XML processing.   
    108 To achieve the best results possible, we have undertaken
     109To achieve the best results possible, we undertook
    109110a comprehensive restructuring of the Xerces-C++ parser,
    110111seeking to expose as many critical aspects of XML parsing
     
    116117multiple cores.   
    117118
    118 The remainder of this paper is organized as follows.   Section 2 discusses
    119 the structure of the Xerces and Parabix XML parsers and the fundamental
    120 differences between the two parsing models.   Section 3 then presents
    121 the \icXML{} design based on a restructured Xerces architecture to
     119The remainder of this paper is organized as follows.   
     120Section \ref{background} discusses the structure of the Xerces and Parabix XML parsers and the fundamental
     121differences between the two parsing models.   
     122Section \ref{architecture} then presents the \icXML{} design based on a restructured Xerces architecture to
    122123incorporate SIMD parallelism using Parabix methods.   
    123 Section 4 moves on to consider the multithreading of the \icXML{} architecture
     124Section \ref{multithread} moves on to consider the multithreading of the \icXML{} architecture
    124125using the pipeline parallelism model. 
    125 Section 5 analyzes the performance of both the single-threaded and
     126Section \ref{performance} analyzes the performance of both the single-threaded and
    126127multi-threaded versions of \icXML{} in comparison to original Xerces,
    127128demonstrating substantial end-to-end acceleration of
    128129a GML-to-SVG translation application written against the Xerces API.
    129 Section 6 concludes the
    130 paper with a discussion of future work and the potential for
     130Section \ref{conclusion} concludes the paper with a discussion of future work and the potential for
    131131applying the techniques discussed herein in other application domains.
    132132
     
    139139
    140140\section{Architecture}
     141\label{architecture}
    141142
    142143\input{arch-overview.tex}
     
    150151\input{arch-errorhandling.tex}
    151152
     153\section{Leveraging Pipeline Parallelism}
     154\label{multithread}
     155
    152156\input{multithread.tex}
    153157
     158\section{Performance}
     159\label{performance}
    154160\input{performance.tex}
    155161
     162\section{Conclusion and Future Work}
     163\label{conclusion}
    156164\input{conclusion.tex}
    157165
Note: See TracChangeset for help on using the changeset viewer.