# Changeset 1001

Ignore:
Timestamp:
Mar 25, 2011, 4:00:24 PM (8 years ago)
Message:

section 4 and 5

Location:
docs/PACT2011
Files:
3 edited

### Legend:

Unmodified
 r996 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 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. 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 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. 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 previous key works \cite{bellosa2001, bertran2010, bircher2007}, we have chosen several key hardware performance events for which the authors indicate have a strong correlation to energy consumption. From these data, we hope to gain insight into the XML parser execution characteristics which most significantly contribute to overall energy consumption. Secondly, using the Fluke i410 current clamp meter, we plan to measure the total energy consumption required to complete XML well-formedness checking for each XML parser, on each hardware platform, and for each of a number of XML source files. 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 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 bitwise operations using the 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. 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. 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. The following subsections describe the XML parsers under study, XML workloads, the hardware architectures, PMC hardware events selected for measurement, and the Fluke i401 current clamp meter. The expected outcomes of this section are hardware performance counter measurements and total energy consumption measurements for each of XML parser, XML source file, and hardware combination. 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. \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 dramatic performance improvements over traditional byte-at-a-time parsing technology. Xerces-C++ version 3.1.1 (SAX) \cite{xerces} is a validating open source XML parser written in C++ by the Apache project. Expat version 2.0.1 \cite{expat} is a non-validating XML parser library written in C. 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 dramatic performance improvements over traditional byte-at-a-time parsing technology.  Xerces-C++ version 3.1.1 (SAX) \cite{xerces} is a validating open source XML parser written in C++ by the Apache project.  Expat version 2.0.1 \cite{expat} is a non-validating XML parser library written in C. \begin{table*} \subsection{Workloads}\label{workloads} Distinguishing between document-oriented'' XML and data-oriented'' XML is a popular way to describe the two basic classes of XML documents. Data-oriented XML is used as an interchange format. Document-oriented XML is used to impose structure on information that rarely fits neatly into a relational database--particularly information intended for publishing. Data-oriented XML are characterized by a higher markup density. 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. As such we choose workloads with a spectrum of markup densities. Distinguishing between document-oriented'' XML and data-oriented'' XML is a popular way to describe the two basic classes of XML documents.  Data-oriented XML is used as an interchange format. Document-oriented XML is used to impose structure on information that rarely fits neatly into a relational database--particularly information intended for publishing.  Data-oriented XML are characterized by a higher markup density.  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.  As such we choose workloads with a 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.\cite{CameronHerdyLin2008} 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.\cite{CameronHerdyLin2008} Describe parameters; what each parameter means. \subsection{Platform Hardware} \subsubsection{Intel Core 2} \paragraph{Intel Core 2} \begin{table}[h] \begin{center} \label{core2info} \end{table} \subsubsection{Intel Core i3} The Intel Core i3 is a Nehalem based processor produced by Intel. The intent of this processor is to serve as a low end server processor. Table \ref{i3info} gives the hardware description of the Intel Core i3 based machine selected. \paragraph {Intel Core i3} The Intel Core i3 is a Nehalem based processor produced by Intel. The intent of this processor is to serve as an example of low end server processor. Table \ref{i3info} gives the hardware description of the Intel Core i3 based machine selected. \begin{table}[h] \end{table} \subsubsection{Sandy Bridge} \paragraph{Sandy Bridge} \begin{table}[h] \subsection{PMC Hardware Events}\label{events} Each of the hardware events selected relates to the energy consumption due to one or more hardware units. For example, total branch miss predictions corresponds to the use of the branch misprediction unit. Each of the hardware events selected relates to the energy consumption due to one or more hardware units. For example, total branch miss predictions corresponds to the use of the branch misprediction unit. Initial PMC hardware event set: \end{itemize} \subsection{Measurement Hardware} The Fluke i410 current clamp meter is an electrical tester that combines a voltmeter with a clamp type current meter. Like the multimeter, the clamp meter has transitioned through the analog period and into the digital era. Created primarily as a single purpose test tool for electricians, the Fluke i410 have incorporated more measurement functions and accuracy \cite{clamp}. \subsection{Energy Measurement} To measure energy we use a 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 current and converts it into voltage lev- els (1mV per 1A current). The voltage levels are then monitored by an Agilent 34410a multimeter at the granu- larity of 100 samples per second. This measurement cap- tures the power to the processor package, including cores, caches, Northbridge memory controller, and the quick-path interconnects. \cite{clamp}.