# Changeset 1103

Ignore:
Timestamp:
Apr 9, 2011, 1:16:28 AM (9 years ago)
Message:

Edit Methodology

Location:
docs/PACT2011
Files:
3 edited

### Legend:

Unmodified
 r1085 In this section, we describe our methodology for the measurements and investigation of XML parsing energy consumption and performance.  In brief, for each of the XML parsers under study we propose to measure In this section we describe our methodology for the measurements and investigation of XML parser energy consumption and performance.  In brief, for each of the four XML parsers under study we propose to measure and evaluate the energy consumption required to carry out XML well-formedness checking, under a variety of workloads, and as executed on three different Intel cores. executed on three different Intel processors. To begin our study, we propose to first investigate each of the XML parsers in terms of the PMCs hardware events as listed in the following subsection. Based on the recommendation of previous proposals \cite{bellosa2001, bertran2010, bircher2007}, we have chosen To begin our study we propose to first investigate each of the XML parsers in terms of the Performance Monitoring Counter \footnote{Performance Monitoring Counters are special-purpose registers available with most modern microprocessors. PMCs store the running count of specific hardware events, such as retired instructions, cache misses, branch mispredictions, and arithmetic-logic unit operations. PMCs can be used to capture information about any program at run-time and under any workload at a fine granularity.} (PMC) hardware events listed in the PMC Hardware Events subsection. Based on the findings of previous work \cite{bellosa2001, bertran2010, bircher2007} we have chosen several key hardware performance events for which the authors indicate have a strong correlation to energy consumption.  We also measure other runtime counts such as the number of SIMD instructions and a strong correlation with energy consumption. In addition, we measure the runtime counts of SIMD instructions and bitwise operations using the Intel Pin binary instrumentation framework. From these data, we hope to gain insight into the XML parser execution characteristics and compare and constrast different industrial parsers. framework. Based on these data we gain further insight into XML parser execution characteristics and compare and constrast each of the Parabix parser versions against the performance of standard industry parsers. The foundational work by Bellosa in \cite{bellosa2001} as well as more recent work in \cite {bircher2007, bertran2010} show that hardware-usage patterns has a significant impact in the energy consumption of a particular application; \cite{bellosa2001, bircher2007, bertran2010} further show that there is a strong correlation between specific performance events and energy usage---but the authors of each differ slightly in opinion as to which performance monitoring counters\footnote{Performance monitoring counters (PMCs) are special-purpose registers that are included in most modern microprocessors; they store the running count of specific hardware events, such as retired instructions, cache misses, branch mispredictions, and arithmetic-logic unit operations to name a few. They can be used to capture information about any program at run-time, under any workload, at a very fine granularity.} (PMCs) to use. recent work in \cite {bircher2007, bertran2010} demonstrate that hardware-usage patterns have a significant impact on the energy consumption characteristics of an application \cite{bellosa2001, bircher2007, bertran2010}. Further, the authors demonstrate a strong correlation between specific PMC events and energy usage. However, each author differs slightly in their opinion of the exact set of PMCs to use. The following subsections describe the XML parsers under study, XML workloads, the hardware architectures, PMC hardware events selected for measurement, and the energy measurement set up. We analyze the performance of the different parsers based on the hardware performance counter measurements and contrast their energy consumption measurements based on direct measurement. for measurement, and the energy measurement instrumentation set up. We analyze the performance of each of the XML parsers under study based on PMC hardware event counts and contrast their energy consumption measurements based on direct measurements. \subsection{Parsers}\label{parsers} The XML parsing technologies selected for this study are the Parabix2, Xerces-C++, and Expat XML parsers.  Parabix2 \cite{parabix2} (parallel bit streams for XML) is the second generation Parabix parser. Parabix2 is an open-source XML parser that leverages the SIMD capabilities of modern commodity processors; it employs the new parallelization techniques using parallel parsing with bit stream addition to deliver The XML parsing technologies selected for this study are the Parabix1, Parabix2, Xerces-C++, and Expat XML parsers. Parabix1 (parallel bit Streams for XML) is our first generation SIMD and Parallel Bit Stream technology based XML parser \cite{Parabix1}. Parabix1 leverages the processor built-in {\em bitscan} operation for high-performance XML character scanning as well as the SIMD capabilities of modern commodity processors to achieve high performance. Parabix2 \cite{parabix2} represents the second generation of the Parabix1 parser. Parabix2 is an open-source XML parser that also leverages Parallel Bit Stream technology and the SIMD capabilities of modern commodity processors. However, Parabix2 differs from Parabix1 in that it employs new parallelization techniques, such as a multiple cursor approach to parallel parsing together with bit stream addition techniques to advance multiple cursors independently and in parallel. Parabix2 delivers dramatic performance improvements over traditional byte-at-a-time parsing technology.  Xerces-C++ version 3.1.1 (SAX) \cite{xerces} is a Markup density is defined as the ratio of the total markup contained within an XML file to the total XML document size.  This metric may have substantial influence on the performance of XML parsing. total XML document size.  This metric has substantial influence on the performance of traditional recursive descent XML parser implementations. We use a mixture of document-oriented and data-oriented XML files in our study to provide workloads with a spectrum of files in our study to provide workloads with a full spectrum of markup densities. Table \ref{XMLDocChars} shows the document characteristics of the XML input files selected for this performance study.  The jawiki.xml and dewiki.xml XML files represent document-oriented XML inputs, containing three-byte and four-byte UTF8 sequence.  The remaining files are data-oriented inputs and consist of only ASCII characters. dewiki.xml XML files represent document-oriented XML inputs and contain the three-byte and four-byte UTF-8 sequence required for the UTF-8 encoding of Japanese and German characters respectively.  The remaining data files are data-oriented XML documents and consist entirely of single byte $7$-bit encoded ASCII characters. \subsection{Platform Hardware} \paragraph{Intel \CO{}} The Intel \CO{} is a Conroe based processor produced by Intel \CO{} code name Conroe processor produced by Intel. Table \ref{core2info} gives the hardware description of the Intel \CO{} machine selected. Intel \CO{} machine. \begin{table}[h] \begin{center} \paragraph {Intel \CITHREE{}} The Intel \CITHREE\ is a Nehalem based processor produced by Intel. The intent of this processor is to serve as an example low end server Intel \CITHREE\ code name Nehalem processor produced by Intel. The intent of the selection of this processor is to serve as an example of a low end server processor. Table \ref{i3info} gives the hardware description of the Intel \CITHREE\ machine selected. Intel \CITHREE\ machine. \begin{table}[h] \paragraph{Intel \CIFIVE{}} The Intel \CIFIVE\ is a \SB\ based processor produced by Intel \CIFIVE\ code name \SB\ processor produced by Intel. Table \ref{sandybridgeinfo} gives the hardware description of the Intel \CITHREE\ machine selected. Intel \CITHREE\ machine. \begin{table}[h] relate to the branch predictor and branch target buffer capacity. The set of PMC events used include the following. The set of PMC events used included in this study are as follows. \begin{itemize} \item Processor Cycles \subsection{Energy Measurement} To measure energy we use a Fluke i410 current To measure energy we use the Fluke i410 current clamp applied on the 12V wires that supply power to the processor sockets. The clamp detects the magnetic field created by the flowing