3 ms·
It can, in my experience, be very useful to introduce a unit for ‘requests’, as well as one for ‘CPUs’. It lets us produce dimensionally valid formulae for re
by jameshart 3y ago
It can, in my experience, be very useful to introduce a unit for ‘requests’, as well as one for ‘CPUs’.
It lets us produce dimensionally valid formulae for relating request rates (in requests per second) to compute requirements (in CPU seconds per request), data transfer (in bytes per request), and bandwidth (in bytes per second).
I kind of wish software engineering’s computer science underpinnings offered a few more of the kind of notational underpinnings that physics offers mechanical or electronic engineers.
Why don’t we have a standard set of letters for representing data sizes, requests, compute units, etc; and a set of widely known formulae as familiar to every programmer as V=IR is to an electrical engineer?
The only standard symbol computer science has given us (or maybe more accurately that we have taken up) is n, as in O(n), for collection sizes.
I wonder if we can do better?
- DaveFlater 3y agoISO 80000 Part 13 gives some symbols within the scope of communication technology (its scope is more narrow than its title would suggest). The standard itself is copyrighted but the quantity symbols are listed on Wikipedia, https://en.wikipedia.org/wiki/ISO/IEC_80000#Part_13:_Information_science_and_technology https://en.wikipedia.org/wiki/ISO/IEC_80000#Part_13:_Informa... See also https://www.nist.gov/publications/quantities-and-units-software-product-measurements https://www.nist.gov/publications/quantities-and-units-softw...
- jameshart 3y agoThat is fascinating. Are there any examples of ‘fundamental laws’ expressed in these terms?
- DaveFlater 3y agoBeing careful to distinguish 'fundamental laws' from just 'quantities that we defined', information theory and queueing theory have some good examples of proven laws.
- boolemancer 3y agoPersonally I like variable names better than symbols anyway.
- asveikau 3y agoA cpu second means very little without more context. CPU performance depends a lot on things like cache, branch prediction, out of order execution. Each second represents something fairly distinct from the others.
- jameshart 3y agoIt’s not ambiguous when the Amazon bill arrives.
- nyrikki 3y agoIn reference to (per duration) values "requests per second" is ambiguous, what is a request? Instructions per seconds exists but is only useful for comparing tasks on the same hardware and architecture. We saw the abuse of MIPS for comparing machines in the past just as we see it with FLOPS in GPUs today. MIPS benchmarks like whetstone differ even on the same CPU depend on the language used, compiler used, and the options at compile time. TPC, SPEC and other synthetic benchmarks just succumbed to game theory and usually don't apply to real world loads. The field you want to look into is "Queuing Theory" If you are lucky enough that you can assume your system is Markovian you get simple formula like: mean service time == 1/(mean service rate) To show just how old it is here is a good paper about M/M/1 queues from 1958 that is still useful today. https://msp.org/pjm/1958/8-1/pjm-v8-n1-p08-s.pdf https://msp.org/pjm/1958/8-1/pjm-v8-n1-p08-s.pdf
- jameshart 3y agoIn reference to V=IR, ‘current’ is ambiguous. Current over what? Depends what system you’re analysing. But the dimensional validity of that statement is applicable in numerous circumstances.
- nyrikki 3y ago1 Amp == the flow of 1/(1.602176634 × 10^−19) elementary charges per second. The medium used for flow isn't important for that calculation at all. Just as it would be for liters per second.
- rerdavies 3y ago> relating request rates (in requests per second) to compute requirements (in CPU seconds per request) The exist SI unit which specifically applies to queueing problems is the erlang, a unit originally used in telecommunications. Applied to computers, it would translate to CPU use per request. https://en.wikipedia.org/wiki/Erlang_(unit) https://en.wikipedia.org/wiki/Erlang_(unit) It's considered to be a dimensionless unit (according to wiki), implying that CPUs and requests are also dimensionless.
- weinzierl 3y agoThere are exactly 7 SI units and exactly 22 special names for coherent derived units - Erlang is not one of them.