2014-10-21

This blogpost is a partial copy of my work on improving software programs performance. I am going to use it to illustrate the concept “capability” which is currently discussed in some LinkedIn groups.

We measured the behavior of a typical data processing program in the high-energy physics – geometrical reconstruction.

Firstly, we measured by sample testing how much CPU is consumed by module (a subroutine).

Fig 1

Secondly, we measured by intercepting call/return instructions how much CPU is consumed by module (a subroutine).

Fig 2

Then we used the logical structure of the program.

Fig 3

And calculated the amount of resource (CPU in this particular case) which is “consumed” through each of possible connection. The width of the connection is proportional to this amount. Important to know that the sum of incoming “flows” does not equal of the sum of outgoing “flows” because each module can spend some amount of resource inside it.

Fig 4

Interesting that each connection demonstrates the amount of resource consumed by each module as a self-contained sub-system, athough some sub-systems are shared some modules.

And, just a simple question - what is the publication year of this document? A small hits - its price was 33 kopecks.