Benchmarks and DSP Algorithms

Eric McRae

Eric, an embedded-systems consultant, can be contacted at eric@elmi.com



The Benchmark Book

Richard Grace

Prentice Hall, 1996

336 pp., $48.00

ISBN 0-13-341801-4

C Algorithms for Real-Time DSP

Paul M. Embree

Prentice Hall, 1995

256 pp., $68.00

ISBN 0-13-337353-3

Richard Grace's The Benchmark Book is a veritable storehouse of operational details of various computer performance benchmarks. It includes benchmarks for business, scientific, graphics, and network applications. The benchmarks developed by SPEC, BAPCo, the Transaction Processing Performance Council, Neal Nelson & Associates, AIM Technology, and Ziff-Davis are examined in detail.

In all of this, Grace identifies two dominant purposes for benchmarks: comparison shopping and performance tuning. Overall, Grace has done an admirable job of summarizing the wide variety of benchmarks available. Having done a fair amount of writing and benchmarking myself, I can appreciate the amount of work that went into this book.

The described benchmarks include transaction-processing systems, enterprise networks, and individual workstations. The major operating systems are covered according to their approximate position in the market. The various functional units of PC and UNIX workstations are treated in some detail. Most of the familiar benchmarks designed for general-purpose computers and PCs are present. I enjoyed learning the details of some of the more famous of the bunch.

Given an understanding of a benchmark, you also know how performance might be artificially accelerated for the purpose of obtaining good benchmark results but not necessarily good system performance. Grace identifies these possibilities in many cases. If you know what your requirements are, the knowledge of which benchmarks do or do not measure your particular index will be helpful.

The book could have used better editing--there were too many typos and the table of contents was not helpful in finding the discussion of a given type of benchmark. That aside, I found The Benchmark Book interesting and useful. Largely constructed as a reference work, the book should not be read straight through. However, tidbits of useful knowledge can be found in every section.

C Algorithms for Real-Time DSP, by Paul Embree, is a stimulating book. When I finished reading it, I went straight to my workstation and started experimenting with DSP algorithms. Embree clearly knows this subject and presents it in a straightforward manner. This is a refreshing change from the academic approach taken by the seven digital-signal processing books currently on my bookshelf. Not that Embree doesn't reference some heavy math. C Algorithms for Real-Time DSP is not for the mathematically weak of heart. To feel comfortable with the book, you should be familiar with time- and frequency-domain math as well as filter terminology--topics Embree reviews in the first part of the book. Reading this section reminded me of how my entire high-school education was summarized in my first week of college.

Chapter Two is a review of C programming. Ninety percent of you may want to skip ahead. You should not, though. There are some powerful pieces of C programming advice hidden in those pages.

C Algorithms for Real-Time DSP goes after its subject in a predictable progression. There are enlightening discussions on the capabilities of several commercial DSP devices. This information is valuable if you have not yet had the chance to work with an embedded DSP. Considerable attention is paid to tuning programming of these devices.

Other chapters present FIR and IIR filters with a clear synopsis of their values and drawbacks. Time- and frequency-domain processing methods are discussed and demonstrated. The beloved FFT is just one of the tools used. Adaptive filters are also given some treatment. Finally, several DSP applications are described, showing the use of the techniques presented earlier.

Curiously, both books left me wanting more chapters. The Benchmark Book glossed over the area of real-time operating systems. Having recently spent a significant chunk of time developing an RTOS benchmark (see "Benchmarking Real-Time Operating Systems," DDJ, May 1996), I allow that I may be biased.

System administrators responsible for system and network performance should read The Benchmark Book. When I say "system," I'm talking about a collection of servers, clients, and networks. Grace provides information on the proper benchmark for tuning the various components of your system's performance, but you still need to know how to change your system. If you do successfully alter it, this book will help you measure the effects of your changes.

The Benchmark Book is also a good starting point for those responsible for development and maintenance of financial systems. There is some heady work in that area, and the price of poor performance is significant. This book will help you understand how to measure or contract for maintaining or upgrading your system's performance. Finally, this book provides a significant degree of clarity into the morass of PC performance benchmarks.

As for C Algorithms for Real-Time DSP, there is no discussion of the application of DSP to video and other 2-D signals. A follow-up book please, Mr. Embree? Most of my interest is in video DSP and I want a video DSP toolkit similar to the one provided for 1-D inputs.

Engineers who are considering digital-signal processing projects should read C Algorithms for Real-Time DSP. Unless you are already a DSP guru, this book will accelerate the start-up of your work. In addition, folks who are interested in DSP, and who have access to a PC with a compiler and sound system, can increase their skills. The book includes a diskette with source and executable files, filters, and filter builders. A sample .WAV file of Embree's voice is also supplied.