This makes the assumption that the job is not multi-tasking either through it's own code or with the built-in cpu parallelism of DB2.
1) divide the cpu time by the elapsed time
2) divide the total processor MIPS by the number of engines on the processor
3) multiply the two above results together
Example:
1) A job that ran for 60 minutes consumed 20 minutes of cpu time. So 20/60 = .33
2) The processor has a 6 engines and a total of 1200 MIPS. So 1200/6 = 200 MIPS per engine.
3) 200*.33 = 66 MIPS
Bill
Hmmmm.... I'm not sure I'm on board with the math here. While I'm okay with the answer, I'm not so okay with Bill's logic.
Let's suppose for instance that this same process (which requires 20 minutes of CPU time) actually ran for 100 minutes due to a heavy load on the processor caused by other jobs running. However, the job still only required 20 minutes of CPU time. Now the math because 20/100 = .2, and 200*.2 = 40 MIPS, or
Let's suppose for instance that this same process (which requires 20 minutes of CPU time) actually ran for 20 minutes due to no load on the processor (i.e. no other processes competing for CPU time). However, the job still only required 20 minutes of CPU time. Now the math because 20/20 = 1.0, and 200*.10 = 200 MIPS.
Obviously the same job can't require 66, 40, and 200 MIPS on the same machine.
Last Wiki Answer Submitted: June 18, 2010 10:12 pm by TwoMetreBill0 pts.
If you live outside the United States, by submitting your email address you consent to having your personal data transferred to and processed in the United States.
There is NO correlation between CPU time (or clock time) and MIPS.
MIPS can ONLY be compared to MIPS. (and then only is same/similar processor & hardware. Can’t compare z MIPS with PC or RS/6000 processors)
There is no correlation between CPU time, DB2 timerons (remember them?), or anything else you (or IBM) can dream up.
IBM MAIN List Server had a wonderful discussion on this topic some months (years?) ago. You might check it out. (I think it was IBM MAIN, maybe somewhere else.)
…the same job can’t require 66, 40, and 200 MIPS on the same machine.
As long as it’s “Per Second”, a job in varying environments may require any number of MIPS. That’s part of the reason that CPU time can’t be translated to MIPS in a meaningful way.
This is a question that seem to be misunderstood quite a lot. Firstly the definitions are needed.
MIPS = Millions of Instructions Per Second
Each instruction in code takes x CPU cycles to complete. (Some instructions take 2 or more CPU cycles to complete, before execution of the next instruction.) Low level programmers know this.
Address space = RAM location.
Address space does not use CPU time, so why would you want to measure it? It is a location that holds data, Irrespective of that data being an instruction, or the data to be operated on.
If I understand correctly, you are trying to work out how much time a block of code takes to run?
To work out how long it takes to complete a particular block of code, you will need to understand how many instructions are in the code being run, and how many clock cycles it takes to complete each one. Therefore a MIP is not a reliable method of time measurement. CPU clock cycles are timed more accurately.
…not to mention additional factors such as multiple processor pipelines and everything a processing unit might do to keep pipelines progressing smoothly.
One CANNOT convert CPU time to MIPS.
There is NO correlation between CPU time (or clock time) and MIPS.
MIPS can ONLY be compared to MIPS. (and then only is same/similar processor & hardware. Can’t compare z MIPS with PC or RS/6000 processors)
There is no correlation between CPU time, DB2 timerons (remember them?), or anything else you (or IBM) can dream up.
IBM MAIN List Server had a wonderful discussion on this topic some months (years?) ago. You might check it out. (I think it was IBM MAIN, maybe somewhere else.)
…the same job can’t require 66, 40, and 200 MIPS on the same machine.
As long as it’s “Per Second”, a job in varying environments may require any number of MIPS. That’s part of the reason that CPU time can’t be translated to MIPS in a meaningful way.
Tom
This is a question that seem to be misunderstood quite a lot. Firstly the definitions are needed.
MIPS = Millions of Instructions Per Second
Each instruction in code takes x CPU cycles to complete. (Some instructions take 2 or more CPU cycles to complete, before execution of the next instruction.) Low level programmers know this.
Address space = RAM location.
Address space does not use CPU time, so why would you want to measure it? It is a location that holds data, Irrespective of that data being an instruction, or the data to be operated on.
If I understand correctly, you are trying to work out how much time a block of code takes to run?
To work out how long it takes to complete a particular block of code, you will need to understand how many instructions are in the code being run, and how many clock cycles it takes to complete each one. Therefore a MIP is not a reliable method of time measurement. CPU clock cycles are timed more accurately.
…not to mention additional factors such as multiple processor pipelines and everything a processing unit might do to keep pipelines progressing smoothly.
Tom