An Overview of Common Benchmarks

Total Page:16

File Type:pdf, Size:1020Kb

An Overview of Common Benchmarks An Overview of Common Benchmarks Reinhold P. Weicker Siemens Nixdorf Information Systems he mdin redwn for using comput- ,*. load mem (BJ,reg (B) ers is to perform ta\ks taster Thir *, load mem (C),reg (C) is why performance measurement add reg (E),reg (C),reg (A) is taken so seriously by computer custom- “Fair benchmarking” store reg (A), mem (A) ers. Even though performance measurement usually compares only one aspect of com- would be less of an If both machines need the same time to puters (speed), this aspect is often dominant. oxymoron if those execute (not unrealistic in some cases), Normally, a mainframe customer can run should the RISC then be rated as a 4-MIPS typical applications on anew machine before using benchmark machine if the CISC (for example, a VAX buying it. With microprocessor-based 11) operates at 1 MIPS? The MIPS number systems, however, original equipment man- results knew what in its literal meaning is still interesting for ufacturers must make decisions without tasks the benchmarks computer architects (together with the CPI detailed knowledge of the end user’s code, number - the average number of cycles so performance measurements with standard really perform and necessary for an instruction), but it loses its benchmarks become more important. what they measure. significance for the end user. Performance is a broad area, and tradi- Because of these problems, “MIPS” has tional benchmarks cover only part of it. often been redefined, implicitly or explic- This article is restricted to benchmarks itly, as “VAX MIPS.” In this case MIPS is measuring hardware speed, including just a performance factor for a given ma- compiler code generation; it does not cover chine relative to the performance of a VAX the more general area of system benchmarks nearly all its significance. This became 1 1/780. If a machine runs some program or (for example, operating system perfor- obvious when reduced instruction-set set of programs X times faster than a VAX mance). Still, manufacturers use traditional computer architectures appeared.’ Opera- 11/780, it is called an X-MIPS machine. benchmarks in their advertising, and cus- tions that can be performed by one CISC This is based on computer folklore saying tomers use them in making decisions, so it (complex instruction-set computer) in- that for typical programs a VAX 11/780 is important to know as much as possible struction sometimes require several RISC performs one million instructions per sec- about them. This article characterizes the instructions. Consider the example of a ond. Although this is not true,* the belief is most often used benchmarks in detail and high-level language statement warns users about a number of pitfalls. A = B + C /* Assume mem operands */ The ubiquitous MIPS With a CISC architecture, this can be *Some time ago I ran the Dhrystone benchmark pro- numbers compiled into one instruction: gram on VAX I1/780s with different compilers. With Berkeley Unix (4.2) Pascal, the benchmark was trans- lated into 483 instructions executed in 700 microsec- For comparisons across different in- add mem (B),mem (C), mem (A) onds, yielding 0.69 (native) MIPS. With DEC VMS struction-set architectures, the unit MIPS, Pascal (V. 2.4),226 instructions were executed in 543 in its literal meaning of millions of instruc- microseconds, yielding 0.42 (native) MIPS. Interest- On a typical RISC, this requires four in- ingly, the version with the lower MIPS rating executed tions per second (native MIPS), has lost structions: the program faster. widespread. When VAX MIPS are quoted, possible to run the application on each gram with counters. Note that for all pro- it is important to know what programs machine in question. There are other con- grams, even those normally used in the form the basis for the comparison and what siderations, too: The program may have Fortran version, the language-feature-re- compilers are used for the VAX 111780. been tailored to run optimally on an older lated statistics refer to the C version of the Older Berkeley Unix compilers produced machine; original equipment manufactur- benchmarks; this was the version for which code up to 30 percent slower than VMS ers must choose a microprocessor for a the modification was performed. Howev- compilers, thereby inflating the MIPS rat- whole range of applications; journalists er, since most features are similar in the ing of other machines. want to characterize machine speed inde- different languages, numbers for other The MIPS numbers that manufacturers pendent of a particular application program. languages should not differ much. The give for their products can be any of the Therefore, the next best benchmark (1) is profiling data has been obtained from the following: written in a high-level language, making it Fortran version (Whetstone, Linpack) or portable across different machines, (2) is the C version (Dhrystone). MlPS numbers with noderivation. This representative for some kind of program- can mean anything, and flippant interpre- ming style (for example, systems pro- tations such as “meaningless indication of gramming, numerical programming, or Whetstone processor speed’ are justified. commercial programming), (3) can be Native MIPS, or MIPS in the literal measured easily, and (4) has wide distri- The Whetstone benchmark was the first meaning. To interpret this you must know bution. program in the literature explicitly designed what program the computation was based Obviously, some of these requirements for benchmarking. Its authors are H.J. on and how many instructions are generated are contradictory. The more representative Curnow and B.A. Wichmann from the per average high-level language statement. the benchmark program - in terms of National Physical Laboratory in Great Peak MIPS. This term sometimes ap- similarity to real programs - the more Britain. It was published in 1976, with pears in product announcements of new complicated it will be. Thus, measurement Algol 60 as the publication language. To- microprocessors. It is largely irrelevant, becomes more difficult, and results may be day it is used almost exclusively in its since it equals the clock frequency for most available for only a few machines. This Fortran version, with either single precision processors (most can execute at least one explains the popularity of certain benchmark or double precision for floating-point instruction in one clock cycle). programs that are not complete application numbers. EDN MIPS, Dhrystone MIPS, or sim- programs but still claim to be representa- The benchmark owes its name to the ilar. This could mean native MIPS, when a tive for a given area. Whetstone Algol compiler system. This particular program is running. More often This article concentrates on the most system was used to collect statistics about it means VAX MIPS (see below) with a common “stone age” benchmarks (CPU/ the distribution of “Whetstone instructions,” specific program as the basis for compar- memorykompiler benchmarks only) - in instructions of the intermediate language ison. particular the Whetstone, Dhrystone, and used by this compiler, for a large number of VAX MIPS. A factor relative to the Linpack benchmarks. These are the numerical programs. A synthetic program VAX 11/780, which then raises the fol- benchmarks whose results are most often was then designed. It consisted of several lowing questions: What language? What cited in manufacturers’ publications and in modules, each containing statements of compiler (Unix or VMS) was used for the the trade press. They are better than some particular type (integer arithmetic, VAX? What programs have been measured? meaningless MIPS numbers, but readers floating-point arithmetic, “if‘ statements, (Note that DEC uses the term VUP, for should know their properties - that is, calls, and so forth) and ending with a VAX unit of performance, in making what they do and don’t measure. statement printing the results. Weights were comparisons relative to the VAX 111780. Whetstone and Dhrystone are synthetic attached to the different modules (realized These units are based on a set of DEC benchmarks: They were written solely for as loop bounds for loops around the indi- internal programs, including some floating- benchmarking purposes and perform no vidual modules’ statements) such that the point programs.) useful computation. Linpack was distilled distribution of Whetstone instructions for out of a real, purposeful program that is the synthetic benchmark matched the dis- In short, Omri Serlin2 is correct in say- now used as a benchmark. tribution observed in the program sample. ing, “There are no accepted industry stan- Tables A-D in the sidebar on pages 68- The weights were chosen in such a way that dards for computing the value of MIPS.” 69 give detailed information about the high- the program executes a multiple of one level language features used by these million of these Whetstone instructions; benchmarks. Comparing these advantages thus, benchmark results are given as KWIPS Benchmarks with the characteristics of the user’s own (kilo Whetstone instructions per second) programs shows how meaningful the results or MWIPS (mega Whetstone instructions Any attempt to make MIPS numbers of a particular benchmark are for the user’s per second). This way the familiar term meaningful (for example, VAX MIPS) own applications. The tables contain “instructions per second” was retained but comes down to running a representative comparable information for all three given a machine-independent meaning. program or set of programs. Therefore, we benchmarks, thereby revealing their dif- A problem with Whetstone is that only can drop the notion of MIPS and just ferences and similarities. one officially controlled version exists - compare the speed for these benchmark All percentages in the tables are dynam- the Pascal version issued with the Pascal programs. ic percentages, that is, percentages obtained Evaluation Suite by the British Standards It has been said that the best benchmark by profiling or, for the language-feature Institution - Quality Assurance (BSI- is the user’s own application.
Recommended publications
  • Microbenchmarks in Big Data
    M Microbenchmark Overview Microbenchmarks constitute the first line of per- Nicolas Poggi formance testing. Through them, we can ensure Databricks Inc., Amsterdam, NL, BarcelonaTech the proper and timely functioning of the different (UPC), Barcelona, Spain individual components that make up our system. The term micro, of course, depends on the prob- lem size. In BigData we broaden the concept Synonyms to cover the testing of large-scale distributed systems and computing frameworks. This chap- Component benchmark; Functional benchmark; ter presents the historical background, evolution, Test central ideas, and current key applications of the field concerning BigData. Definition Historical Background A microbenchmark is either a program or routine to measure and test the performance of a single Origins and CPU-Oriented Benchmarks component or task. Microbenchmarks are used to Microbenchmarks are closer to both hardware measure simple and well-defined quantities such and software testing than to competitive bench- as elapsed time, rate of operations, bandwidth, marking, opposed to application-level – macro or latency. Typically, microbenchmarks were as- – benchmarking. For this reason, we can trace sociated with the testing of individual software microbenchmarking influence to the hardware subroutines or lower-level hardware components testing discipline as can be found in Sumne such as the CPU and for a short period of time. (1974). Furthermore, we can also find influence However, in the BigData scope, the term mi- in the origins of software testing methodology crobenchmarking is broadened to include the during the 1970s, including works such cluster – group of networked computers – acting as Chow (1978). One of the first examples of as a single system, as well as the testing of a microbenchmark clearly distinguishable from frameworks, algorithms, logical and distributed software testing is the Whetstone benchmark components, for a longer period and larger data developed during the late 1960s and published sizes.
    [Show full text]
  • Examining the Viability of FPGA Supercomputing
    1 Examining the Viability of FPGA Supercomputing Stephen D. Craven and Peter Athanas Bradley Department of Electrical and Computer Engineering Virginia Polytechnic Institute and State University Blacksburg, VA 24061 USA email: {scraven,athanas}@vt.edu Abstract—For certain applications, custom computational hardware created using field programmable gate arrays (FPGAs) produces significant performance improvements over processors, leading some in academia and industry to call for the inclusion of FPGAs in supercomputing clusters. This paper presents a comparative analysis of FPGAs and traditional processors, focusing on floating- point performance and procurement costs, revealing economic hurdles in the adoption of FPGAs for general High-Performance Computing (HPC). Index Terms— computational accelerator, digital arithmetic, Field programmable gate arrays, high- performance computing, supercomputers. I. INTRODUCTION Supercomputers have experienced a recent resurgence, fueled by government research dollars and the development of low-cost supercomputing clusters. Unlike the Massively Parallel Processor (MPP) designs found in Cray and CDC machines of the 70s and 80s, featuring proprietary processor architectures, many modern supercomputing clusters are constructed from commodity PC processors, significantly reducing procurement costs. In an effort to improve performance, several companies offer machines that place one or more FPGAs in each node of the cluster. Configurable logic devices, of which FPGAs are one example, permit the device’s hardware to be programmed multiple times after manufacture. A wide body of research over two decades has repeatedly demonstrated significant performance improvements for certain classes of applications when implemented within an FPGA’s configurable logic [1]. Applications well suited to speed-up by FPGAs typically exhibit massive parallelism and small integer or fixed-point data types.
    [Show full text]
  • Overview of the SPEC Benchmarks
    9 Overview of the SPEC Benchmarks Kaivalya M. Dixit IBM Corporation “The reputation of current benchmarketing claims regarding system performance is on par with the promises made by politicians during elections.” Standard Performance Evaluation Corporation (SPEC) was founded in October, 1988, by Apollo, Hewlett-Packard,MIPS Computer Systems and SUN Microsystems in cooperation with E. E. Times. SPEC is a nonprofit consortium of 22 major computer vendors whose common goals are “to provide the industry with a realistic yardstick to measure the performance of advanced computer systems” and to educate consumers about the performance of vendors’ products. SPEC creates, maintains, distributes, and endorses a standardized set of application-oriented programs to be used as benchmarks. 489 490 CHAPTER 9 Overview of the SPEC Benchmarks 9.1 Historical Perspective Traditional benchmarks have failed to characterize the system performance of modern computer systems. Some of those benchmarks measure component-level performance, and some of the measurements are routinely published as system performance. Historically, vendors have characterized the performances of their systems in a variety of confusing metrics. In part, the confusion is due to a lack of credible performance information, agreement, and leadership among competing vendors. Many vendors characterize system performance in millions of instructions per second (MIPS) and millions of floating-point operations per second (MFLOPS). All instructions, however, are not equal. Since CISC machine instructions usually accomplish a lot more than those of RISC machines, comparing the instructions of a CISC machine and a RISC machine is similar to comparing Latin and Greek. 9.1.1 Simple CPU Benchmarks Truth in benchmarking is an oxymoron because vendors use benchmarks for marketing purposes.
    [Show full text]
  • Virtual Memory
    Topic 18: Virtual Memory COS / ELE 375 Computer Architecture and Organization Princeton University Fall 2015 Prof. David August 1 Virtual Memory Any time you see virtual, think “using a level of indirection” Virtual memory: level of indirection to physical memory • Program uses virtual memory addresses • Virtual address is converted to a physical address • Physical address indicates physical location of data • Physical location can be memory or disk! 0x800 Disk:Mem: 0x803C4 0x3C00 Virtual address Physical address 2 Virtual Memory 3 Virtual Memory 1 4 Virtual Memory: Take 1 Main memory may not be large enough for a task • Programmers turn to overlays and disk • Many programs would have to do this • Programmers should have to worry about main memory size across machines Use virtual memory to make memory look bigger for all programs 5 A System with Only Physical Memory Examples: Most Cray machines, early PCs, nearly all current embedded systems, etc. Memory 0: 1: Store 0x10 CPU Load 0xf0 N-1: CPU’s load or store addresses used directly to access memory. 6 A System with Virtual Memory Examples: modern workstations, servers, PCs, etc. Memory 0: Page Table 1: Virtual Physical Addresses 0: Addresses 1: Store 0x10 CPU Load 0xf0 P-1: N-1: Disk Address Translation: the hardware converts virtual addresses into physical addresses via an OS-managed lookup table (page table) 7 Page Faults (Similar to “Cache Misses”) What if an object is on disk rather than in memory? 1. Page table indicates that the virtual address is not in memory 2. OS trap handler is invoked, moving data from disk into memory • Current process suspends, others can resume • OS has full control over placement, etc.
    [Show full text]
  • Concept-Oriented Programming: References, Classes and Inheritance Revisited
    Concept-Oriented Programming: References, Classes and Inheritance Revisited Alexandr Savinov Database Technology Group, Technische Universität Dresden, Germany http://conceptoriented.org Abstract representation and access is supposed to be provided by the translator. Any object is guaranteed to get some kind The main goal of concept-oriented programming (COP) is of primitive reference and a built-in access procedure describing how objects are represented and accessed. It without a possibility to change them. Thus there is a makes references (object locations) first-class elements of strong asymmetry between the role of objects and refer- the program responsible for many important functions ences in OOP: objects are intended to implement domain- which are difficult to model via objects. COP rethinks and specific structure and behavior while references have a generalizes such primary notions of object-orientation as primitive form and are not modeled by the programmer. class and inheritance by introducing a novel construct, Programming means describing objects but not refer- concept, and a new relation, inclusion. An advantage is ences. that using only a few basic notions we are able to describe One reason for this asymmetry is that there is a very many general patterns of thoughts currently belonging to old and very strong belief that it is entity that should be in different programming paradigms: modeling object hier- the focus of modeling (including programming) while archies (prototype-based programming), precedence of identities simply serve entities. And even though object parent methods over child methods (inner methods in identity has been considered “a pillar of object orienta- Beta), modularizing cross-cutting concerns (aspect- tion” [Ken91] their support has always been much weaker oriented programming), value-orientation (functional pro- in comparison to that of entities.
    [Show full text]
  • I.MX 8Quadxplus Power and Performance
    NXP Semiconductors Document Number: AN12338 Application Note Rev. 4 , 04/2020 i.MX 8QuadXPlus Power and Performance 1. Introduction Contents This application note helps you to design power 1. Introduction ........................................................................ 1 management systems. It illustrates the current drain 2. Overview of i.MX 8QuadXPlus voltage supplies .............. 1 3. Power measurement of the i.MX 8QuadXPlus processor ... 2 measurements of the i.MX 8QuadXPlus Applications 3.1. VCC_SCU_1V8 power ........................................... 4 Processors taken on NXP Multisensory Evaluation Kit 3.2. VCC_DDRIO power ............................................... 4 (MEK) Platform through several use cases. 3.3. VCC_CPU/VCC_GPU/VCC_MAIN power ........... 5 3.4. Temperature measurements .................................... 5 This document provides details on the performance and 3.5. Hardware and software used ................................... 6 3.6. Measuring points on the MEK platform .................. 6 power consumption of the i.MX 8QuadXPlus 4. Use cases and measurement results .................................... 6 processors under a variety of low- and high-power 4.1. Low-power mode power consumption (Key States modes. or ‘KS’)…… ......................................................................... 7 4.2. Complex use case power consumption (Arm Core, The data presented in this application note is based on GPU active) ......................................................................... 11 5. SOC
    [Show full text]
  • Performance of a Computer (Chapter 4) Vishwani D
    ELEC 5200-001/6200-001 Computer Architecture and Design Fall 2013 Performance of a Computer (Chapter 4) Vishwani D. Agrawal & Victor P. Nelson epartment of Electrical and Computer Engineering Auburn University, Auburn, AL 36849 ELEC 5200-001/6200-001 Performance Fall 2013 . Lecture 1 What is Performance? Response time: the time between the start and completion of a task. Throughput: the total amount of work done in a given time. Some performance measures: MIPS (million instructions per second). MFLOPS (million floating point operations per second), also GFLOPS, TFLOPS (1012), etc. SPEC (System Performance Evaluation Corporation) benchmarks. LINPACK benchmarks, floating point computing, used for supercomputers. Synthetic benchmarks. ELEC 5200-001/6200-001 Performance Fall 2013 . Lecture 2 Small and Large Numbers Small Large 10-3 milli m 103 kilo k 10-6 micro μ 106 mega M 10-9 nano n 109 giga G 10-12 pico p 1012 tera T 10-15 femto f 1015 peta P 10-18 atto 1018 exa 10-21 zepto 1021 zetta 10-24 yocto 1024 yotta ELEC 5200-001/6200-001 Performance Fall 2013 . Lecture 3 Computer Memory Size Number bits bytes 210 1,024 K Kb KB 220 1,048,576 M Mb MB 230 1,073,741,824 G Gb GB 240 1,099,511,627,776 T Tb TB ELEC 5200-001/6200-001 Performance Fall 2013 . Lecture 4 Units for Measuring Performance Time in seconds (s), microseconds (μs), nanoseconds (ns), or picoseconds (ps). Clock cycle Period of the hardware clock Example: one clock cycle means 1 nanosecond for a 1GHz clock frequency (or 1GHz clock rate) CPU time = (CPU clock cycles)/(clock rate) Cycles per instruction (CPI): average number of clock cycles used to execute a computer instruction.
    [Show full text]
  • Srovnání Kvality Virtuálních Strojů Assessment of Virtual Machines Performance
    View metadata, citation and similar papers at core.ac.uk brought to you by CORE provided by DSpace at VSB Technical University of Ostrava VŠB - Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Katedra Informatiky Srovnání kvality virtuálních strojů Assessment of Virtual Machines Performance 2011 Lenka Novotná Prohlašuji, že jsem tuto bakalářskou práci vypracovala samostatně. Uvedla jsem všechny literární prameny a publikace, ze kterých jsem čerpala. V Ostravě dne 20. dubna 2011 ……………………… Lenka Novotná Ráda bych poděkovala vedoucímu bakalářské práce, Ing. Petru Olivkovi, za pomoc, věcné připomínky a veškerý čas, který mi věnoval. Abstrakt Hlavním cílem této bakalářské práce je vysvětlit pojem virtualizace, virtuální stroj, a dále popsat a porovnat dostupné virtualizační prostředky, které se využívají ve světovém oboru informačních technologií. Práce se především zabývá srovnáním výkonu virtualizačních strojů pro desktopové operační systémy MS Windows a Linux. Při testování jsem se zaměřila na tři hlavní faktory a to propustnost sítě, při které jsem použila aplikaci Iperf, ke změření výkonu diskových operací jsem využila program IOZone a pro test posledního faktoru, který je zaměřen na přidělování CPU procesů, jsem použila známé testovací aplikace Dhrystone a Whetstone. Všechna zmiňovaná měření okruhů byla provedena na třech virtualizačních platformách, kterými jsou VirtualBox OSE, VMware Player a KVM s QEMU. Klíčová slova: Virtualizace, virtuální stroj, VirtualBox, VMware, KVM, QEMU, plná virtualizace, paravirtualizace, částečná virtualizace, hardwarově asistovaná virtualizace, virtualizace na úrovní operačního systému, měření výkonu CPU, měření propustnosti sítě, měření diskových operací, Dhrystone, Whetstone, Iperf, IOZone. Abstract The main goal of this thesis is explain the term of Virtualization and Virtual Machine, describe and compare available virtualization resources, which we can use in worldwide field of information technology.
    [Show full text]
  • Chapter 9 Pointers
    Chapter 9 Pointers Objectives ❏ To understand the concept and use of pointers ❏ To be able to declare, define, and initialize pointers ❏ To write programs that access data through pointers ❏ To use pointers as parameters and return types ❏ To understand pointer compatibility, especially regarding pointers to pointers ❏ To understand the role of quality in software engineering Computer Science: A Structured Programming Approach Using C 1 FIGURE 9-1 Derived Types Computer Science: A Structured Programming Approach Using C 2 9-1 Introduction A pointer is a constant or variable that contains an address that can be used to access data. Pointers are built on the basic concept of pointer constants. Topics discussed in this section: Pointer Constants Pointer Values Pointer Variables Accessing Variables Through Pointers Pointer Declaration and Definition Declaration versus Redirection Initialization of Pointer Variables Computer Science: A Structured Programming Approach Using C 3 FIGURE 9-2 Character Constants and Variables Computer Science: A Structured Programming Approach Using C 4 FIGURE 9-3 Pointer Constants Computer Science: A Structured Programming Approach Using C 5 Note Pointer constants, drawn from the set of addresses for a computer, exist by themselves. We cannot change them; we can only use them. Computer Science: A Structured Programming Approach Using C 6 Note An address expression, one of the expression types in the unary expression category, consists of an ampersand (&) and a variable name. Computer Science: A Structured Programming Approach Using C 7 FIGURE 9-4 Print Character Addresses Computer Science: A Structured Programming Approach Using C 8 Note A variable’s address is the first byte occupied by the variable.
    [Show full text]
  • Investigations of Various HPC Benchmarks to Determine Supercomputer Performance Efficiency and Balance
    Investigations of Various HPC Benchmarks to Determine Supercomputer Performance Efficiency and Balance Wilson Lisan August 24, 2018 MSc in High Performance Computing The University of Edinburgh Year of Presentation: 2018 Abstract This dissertation project is based on participation in the Student Cluster Competition (SCC) at the International Supercomputing Conference (ISC) 2018 in Frankfurt, Germany as part of a four-member Team EPCC from The University of Edinburgh. There are two main projects which are the team-based project and a personal project. The team-based project focuses on the optimisations and tweaks of the HPL, HPCG, and HPCC benchmarks to meet the competition requirements. At the competition, Team EPCC suffered with hardware issues that shaped the cluster into an asymmetrical system with mixed hardware. Unthinkable and extreme methods were carried out to tune the performance and successfully drove the cluster back to its ideal performance. The personal project focuses on testing the SCC benchmarks to evaluate the performance efficiency and system balance at several HPC systems. HPCG fraction of peak over HPL ratio was used to determine the system performance efficiency from its peak and actual performance. It was analysed through HPCC benchmark that the fraction of peak ratio could determine the memory and network balance over the processor or GPU raw performance as well as the possibility of the memory or network bottleneck part. Contents Chapter 1 Introduction ..............................................................................................
    [Show full text]
  • Xilinx Running the Dhrystone 2.1 Benchmark on a Virtex-II Pro
    Product Not Recommended for New Designs Application Note: Virtex-II Pro Device R Running the Dhrystone 2.1 Benchmark on a Virtex-II Pro PowerPC Processor XAPP507 (v1.0) July 11, 2005 Author: Paul Glover Summary This application note describes a working Virtex™-II Pro PowerPC™ system that uses the Dhrystone benchmark and the reference design on which the system runs. The Dhrystone benchmark is commonly used to measure CPU performance. Introduction The Dhrystone benchmark is a general-performance benchmark used to evaluate processor execution time. This benchmark tests the integer performance of a CPU and the optimization capabilities of the compiler used to generate the code. The output from the benchmark is the number of Dhrystones per second (that is, the number of iterations of the main code loop per second). This application note describes a PowerPC design created with Embedded Development Kit (EDK) 7.1 that runs the Dhrystone benchmark, producing 600+ DMIPS (Dhrystone Millions of Instructions Per Second) at 400 MHz. Prerequisites Required Software • Xilinx ISE 7.1i SP1 • Xilinx EDK 7.1i SP1 • WindRiver Diab DCC 5.2.1.0 or later Note: The Diab compiler for the PowerPC processor must be installed and included in the path. • HyperTerminal Required Hardware • Xilinx ML310 Demonstration Platform • Serial Cable • Xilinx Parallel-4 Configuration Cable Dhrystone Developed in 1984 by Reinhold P. Wecker, the Dhrystone benchmark (written in C) was Description originally developed to benchmark computer systems, a short benchmark that was representative of integer programming. The program is CPU-bound, performing no I/O functions or operating system calls.
    [Show full text]
  • Pointers Pointers – Getting the Address of a Value the Address Operator (&) Returns the Memory Address of a Variable
    System Design and Programming II CSCI – 194 Section 01 CRN: 10968 Fall 2017 David L. Sylvester, Sr., Assistant Professor Chapter 9 Pointers Pointers – Getting the Address of a Value The address operator (&) returns the memory address of a variable. Every variable is allocated a section of memory large enough to hold a value of the variable data type. Commonly char one bytes shorts two bytes int, long, float four bytes double eight bytes Each byte of memory has a memory address. A variable’s address is the address of the first byte allocated to that variable. Ex: char letter; short number; float amount; letter number amount 1200 1201 1203 The addresses of the variables above are used as an example. Getting the address of a variable is accomplished by using the (&) operator in front of the variable name. It allows the system to return the address of that variable in hexadecimal. Ex: &amount //returns the variable’s address cout << &amount // displays the variable’s address Note: Do not confuse the address operator with the & symbol used when defining a referenced variable. Pointers – Sample Program // This program uses the & operator to determine a variable's // address and the sizeof operator to determine its size. #include <iostream> using namespace std; int main() { int x = 25; cout << "The address of x is " << &x << endl; cout << "The size of x is " << sizeof(x) << " bytes\n"; cout << "The value of x is "<< x << endl; } Sample output Pointers Variables Pointer variables or pointers, are special variables that hold a memory address. Just as int variables are designed to hold integers, pointers variables are designed to hold memory addresses.
    [Show full text]