Link to home
Start Free TrialLog in
Avatar of jtcy
jtcy

asked on

How to calculate a computer's peak MIPS/MFLOPS

Hi, i need to calculate a computer's peak MIPS and MFLOPS. I know that for a 400 MHz PC which can do 1 floating point operation per clock cycle the peak Mflops/sec is 400*106 flops/sec = 400 Mflops/sec. But wat about a multiprocessor RISC based server with four 450 MHz processors, each capable of 2 operations (floating or integer) per clock cycle, does it work like this:?

450*4*2 = 3600Mflops/sec ?
ASKER CERTIFIED SOLUTION
Avatar of RLGSC
RLGSC

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
The theory is not the reality.

To calculate, you have to make a benchmark with a collection of the instruction set, stick them in a loop, compute elapsed time, then compute.

> four 450 MHz processors, each capable of 2 operations (floating or integer) per clock cycle

Reality does not really work out that way. So, can we suggest this is more of an academic question about general theory?

I agree with RLGSC (Bob), but if you want to have an academic concept of all equally named items behaving equal, then I'll concur that for four processors doing two operations each (contrating sole processor), the combination would go to 4 * 2 total operations (eight = 8).
Avatar of jtcy
jtcy

ASKER

>>the combination would go to 4 * 2 total operations (eight = 8).

I know I know. I know that MIPS and MFLOPS are meaningless to use but i just simply have to do it. What you said is what i have done. I wrote two programs in java (don ask), Mips.java and Mflops.java and run over 2 machines:

- A RISC based server with four 450 MHz processors, each capable of 2 operations per clock.
- An IA32 archiecture, 2850Mhz capable of 1 operation per clock cycle.

I have run them and the result is stil okay, just that wat i need to know now is for the RISC server, it has 4 processors, so how do i count its peak MIPS rate? For the single processor one i know it is 2850 MIPS but what about the multiprocessors? Do we simply do 4*2*450 = 3600MIPS peak???? HELP~

I know this is better done in C or assembly, but i was told to do in Java.
Jtcy,

Theory? Peak? Multiply by 4 (In THEORY all references will be in the individual processor's caches; whether or not this is true is highly dependent on the application and the host system).

As a test of the JAVA JVM it may have some meaning, but it could easily be distorted by a numbeer of factors. The best (at least theoretically carefully done) solution would be to use the Java specific benchmarks. I think that I recall something on the SPEC page. Some time reading the SPEC page I referred to in my earlier posting would be time well spent.

Hope this is helpful!

- Bob (aka RLGSC)
Assume the existence of a CPU with a 2.4 GHz clock rate.  The instruction and execution cycles are each 50 percent of the clock cycle.  The average instruction requires 1 nanosecond to complete execution.  Main memory access speed for a single instruction is 4 nanoseconds on average.  What is the expected average MIPS rate for this CPU?