I had recently a discussion about that. Perhaps it was teached in my generation and the generation of IT people before me. However it seems this has been omitted in the newest generation of IT people, because i just had to do this discussions with people just a few years out of education. Perhaps it’s just a thing of experience, however it’s so basic that it should be part of experience, but part of learning. As i tend to speak with clever people, most of them get it immediately, however i find it quite astonishingly that this simple thing gets out of focus.
Let’s assume you had a slow computer and a storage system. Let’s assume you have a batch task that needs 100 seconds on CPU and 10 seconds on disk. Let’s assume you get a ten times faster computer. The compute time will shrink to 10 seconds, the disk time stays at 10 seconds. Somehow some people expect that with a 10 times faster CPU your task will be 10 times faster. But this isn’t true: Instead of 110 seconds your need 20 seconds. You have a speedup of 5.5 … Sometimes people expect when they do another upgrade, that they see at least the same speedup as in the past, when they buy a computer that is ten times faster again. However: Your compute task takes now 1 second, the disk part still takes 10 seconds. You are at 11 seconds run time. You get a 1,81 speedup by investing in a 10 times faster computer And just now you are at the 10 times speedup some people expect to see at the step before. Another step: Yet another computer that is ten times faster. You just have a speedup that is 1,08. And so on. When you start with a not so compute bound task (one that takes like 10 seconds on-CPU and 10 seconds on-disk) you don’t get the first 5.5x speed up, you start at a speedup of 1.8 and from there you can do what you want, you get the meagre speedups you rarely recognise. In the rush of the daily business, the simple truths are sometimes forgotten.