Monday, April 22, 2013

Performance Modeling and Design of Computer Systems: Queueing Theory in Action 1st edition, Mor Harchol-Balter



Having been involved in modeling and simulating complex hardware/software systems for twenty years or more, I thought it appropriate to comment on some of the author's remarks regarding the state of the art. I would like to add that had not Amazon, in all their marketing wisdom, chosen to send me an unsolicited ad describing Harchol-Balter's text, you probably wouldn't be reading this. But like Pandora, I couldn't resist a "Look Inside!"

In her opening remarks, Ms. Harchol-Balter states "Unfortunately, of the hundreds of books written on stochastic processes, almost none deal with computer systems." If you remove the term "unfortunately" from that statement, you could characterize it as having a basis in fact: given that the world is filled with stochastic processes (In fact, I tend to treat all real-world processes as stochastic). Seen in this light, the implied dearth of computer related texts can be attributed to proportion. Ms. Harchol-Balter goes on to say that those few remaining texts that do deal with the subject at hand "are not 'friendly' to computer scientists."

Ms. Harchol-Balter's statements pose a couple of problems that beg for resolution. First, why the dearth of books that approach computer performance from the standpoint of queueing theory? She reports that her own colleague gave an answer in a very Candide fashion: "The world doesn't look like an M/M/1 queue" - possibly the best of all possible answers. Trying to solve an N-body computer system analytically is equivalent to trying to solve the canonical N-body physics problem - it can't be done. One must resort to numerical methods in the N-body case, and in the case of computer systems, use stochastic discrete event modeling and simulation.

Regarding the second problem posed by the author, that of dealing with the social nature of the few remaining texts, I would say: "Choose your friends wisely." My first mentors were led by Edward D. Lazowska in their classic "Quantitative System Performance: Computer System Analysis Using Queueing Network Models." Following close on their heels was M.H. MacDougall in his user friendly "Simulating Computer Systems: Techniques and Tools," and finally Raj Jain in his tour-de-force "The Art of Computer Systems Performance Analysis: Techniques for Experimental Design, Measurement, Simulation, and Modeling."

My infatuation with queueing theory came to a grinding halt early in my professional career (thankfully), when I compared the results of an 802.3 performance analysis by Andrew S. Tanenbaum in his book "Computer Networks, 2nd ed."), with that of a simulation tool I was using at the time. Tanenbaum's results differed markedly from mine. As a good analyst, I knew not to trust the simulation implicitly, so I called some colleagues at a different firm who were using a different simulation tool (the competitor's) and asked them to run the same simulation. They got the same results that I had. Tanenbaum's results, using typical queueing theory analysis, were just plain wrong. And this was a very simple network.

As the years rolled by, the configurations that I modeled became extremely complex (hundreds if not thousands of components) and the analyses focused on system bottlenecks anywhere in the system. You just can't do that sort of analysis with queueing theory. And modern computers contain hundreds, if not thousands, of interconnected components.

What you can do with queueing theory is verify the results of a simulation by treating the entire system, or a small number of subsystems, as black boxes representing simple queues; make an educated guess at the arrival time distributions; and check to see if the results you calculate for throughput compare favorably with those of your simulation runs. It's a good reality check.

In the final analysis, not wishing to leave my readers queueless, I would recommend that anyone, who is foolish enough to tread these networks, take a course similar to the one described and taught by Ms. Harchol-Balter, using her book, which appears from the table of contents to be similar in focus to Raj Jain's, but much heavier on queueing theory. If you plan to specialize in performance analysis, rather than design however, Jain's is the better buy. But you will probably want both at some point. You will find the material in Harchol-Balter's text helpful for doing back-of-the-envelope throughput, utilization and residence time calculations, generating arrival time distributions for your sources, and impressing your colleagues with terms like M/M/k systems.

I took Mor's class at CMU, and her lecture notes were a precursor to this book. I also used the lecture notes later for some research I was doing. They were so clear and easy to learn from that I strongly suggested to her at the time she should make a textbook out of them; it turned out she was already in the process of writing this book. My review is based on those lecture notes, and on my perusal of the contents of the finished book.

Mor is possibly the clearest theory teacher I've ever had, despite having two theory-oriented masters degrees, and every ounce of her teaching ability comes through in her writing. Her lecture notes were a pleasure to read, exceptionally well organized, and easy to understand. The only caveat is that the focus is on problems that are solvable analytically (pencil-and-paper rather than simulation); if you are a practitioner working with real systems, you may also want to read up on discrete event simulations and non-poisson processes.

I enthusiastically recommend this book not just for people studying computer systems, but for anybody interested in queueing theory or stochastic processes. For the subject matter it covers, this is by FAR the best treatment I've ever seen. It's an absolute gem.

Product Details :
Hardcover: 576 pages
Publisher: Cambridge University Press; 1 edition (February 18, 2013)
Language: English
ISBN-10: 1107027500
ISBN-13: 978-1107027503
Product Dimensions: 7 x 1.2 x 10 inches

More Details about Performance Modeling and Design of Computer Systems: Queueing Theory in Action 1st edition

or

Download Performance Modeling and Design of Computer Systems: Queueing Theory in Action 1st edition PDF Ebook

No comments:

Post a Comment