Quick, Standard Measurement for CPU Power?
captnitro asks: "A particular research project I'm developing right now needs to compare 'potential' (idle/none) and 'load' for various hardware capabilities, and quickly -- maybe up to a several times every minute. For disk space, for RAM, it's relatively easy -- find what's used and what's not and report the ratio. For CPU, I have plenty of time to test 'potential' when the app starts. But for testing CPU load, I need a standard 'ruler' that will be able to compare across varying platforms and processors (e.g., x86, PowerPC, embedded, single and multi-proc) -- so for example, idle percentage won't work. At the same time, I don't have the ability to time 'openssl speed' every 25 seconds without bringing the system to a halt. I'm willing to sacrifice precision of the measurement for generalization of the unit -- that is, the operations that this test is for would be primarily mathematical and not say, text sorts -- but I'd prefer a generic, quick test of the current processor load rather than an average of 25 different tests. Regardless of hardware, the OS distribution is mostly *nix-based -- NetBSD, Linux, and even Mac OS X. Wild ideas are perfectly acceptable -- any thoughts?"
I am not even sure there is a way of measuring what you want. There are so many variables (Disk I/O, memory bandwidth, etc.) that you can't get a reasonable measurement of how much CPU is left over to do useful work for your process.
The other thing is that many things can take down a CPU as well - a huge burst of network traffic can take an "idle" CPU and peg it at 100% in kernal usage.
Your best bet would probably be to hook into the various schedulers and get deep knowledge of what is really going on - pain in the butt, but doable
I have mod points and I am not afraid to use them
It sounds like you are looking for a way to normalize and compare system (and application?) performance across different hardware platforms.
Say hello to SPEC. This is exactly what the organization was formed for. Take a look at their CPU benchmarks. I know you're looking for more of a snapshot, and less of a benchmark - but I would think SPEC is a good place to start.
The paper you're looking for is Wong, Brian, "Comparing MVS and UNIX Workload Characteristics" Int. CMG Conference, 1998, in which (if memory serves) he looks at the comparability of MVS and Unix programs, and derives a series of comparisons which very approximately correlate with TP performance in a benchmark like TPC.
A paper that's available to CMG members is his Developing a General-Purpose OLTP Sizing Tool, which builds on the subject.
If you have any good, representative test that load a whole system, then in my opinion, you have a good predictor of average performance. (Tautology, eh?) If you have such a test, though, people will learn how to get the best posible numbers from it. Average together all the various X MHz Pentium III TPC-C results, don't trust any single one (:-))
--dave
davecb@spamcop.net