Tuesday, August 26, 2008

The Dearth of Superlatitives

We now take a break from our investigation of the Singularity to discuss an approaching problem that gets very little attention.

The problem is Moore's law, or one of its many variations. For instance, consider computer performance. It doubles every 1.5 years. Or hard drive volume, it increases by 1000 times every 5 years. So right now we have can buy hard drives in the Tera-Byte(Tb) range, but 5 years ago, it was the top of the line was Giga-bytes (Gb), and 10 years ago, we were still in the Mega-byte range(Mb).

The system of SI units gives us prefixes for progressive powers of 1000. That means in 5 years, (baring truly major war, or disaster) we will have Peta-bytes (Pb) hard drives, then in 2018, Exa-byte(Eb), then 2023, Zetta-byte (Zb) and by 2028 Yotta-bytes (Yb). And then.... nothing.

The trouble is that math is a language and the venerable SI system of units, (aka metric), does not have any more pre-fixes, or words if you will, for larger numbers.

Borrowing from Wikipedia, we see that the both in terms of large and small, we are limited.
1000m 10n Prefix Symbol Since[1] Short scale Long scale Decimal
10008 1024 yotta- Y 1991 Septillion Quadrillion 1 000 000 000 000 000 000 000 000
10007 1021 zetta- Z 1991 Sextillion Trilliard 1 000 000 000 000 000 000 000
10006 1018 exa- E 1975 Quintillion Trillion 1 000 000 000 000 000 000
10005 1015 peta- P 1975 Quadrillion Billiard 1 000 000 000 000 000
10004 1012 tera- T 1960 Trillion Billion 1 000 000 000 000
10003 109 giga- G 1960 Billion Milliard 1 000 000 000
10002 106 mega- M 1960 Million 1 000 000
10001 103 kilo- k 1795 Thousand 1 000
10002/3 102 hecto- h 1795 Hundred 100
10001/3 101 deca- da 1795 Ten 10
10000 100 (none) (none) NA One 1
1000−1/3 10−1 deci- d 1795 Tenth 0.1
1000−2/3 10−2 centi- c 1795 Hundredth 0.01
1000−1 10−3 milli- m 1795 Thousandth 0.001
1000−2 10−6 micro- µ 1960[2] Millionth 0.000 001
1000−3 10−9 nano- n 1960 Billionth Milliardth 0.000 000 001
1000−4 10−12 pico- p 1960 Trillionth Billionth 0.000 000 000 001
1000−5 10−15 femto- f 1964 Quadrillionth Billiardth 0.000 000 000 000 001
1000−6 10−18 atto- a 1964 Quintillionth Trillionth 0.000 000 000 000 000 001
1000−7 10−21 zepto- z 1991 Sextillionth Trilliardth 0.000 000 000 000 000 000 001
1000−8 10−24 yocto- y 1991 Septillionth Quadrillionth 0.000 000 000 000 000 000 000 001


One suggestion would use all the upper and lower case numbers in the English alphabet, but this becomes problematic as the units these prefixes attach to are also English letters. That would lead to confusion (the first sin of any language). For instance, one proposed extension uses all of the English alphabet, starting with xona-, weka-, and vunda- for progressively higher powers of one thousand. So if we have VA, is that Vunda Amperes? or Volts times Amperes? Ambiguity is unacceptable.

Other approaches might be suggested by the mathematics of very large numbers. But this still struggles with the fact that learning more and more names for larger numbers is just putting the problem off. If you disagree, say 1010000000000 is "ten tremilliamilliamilliatrecenttretriginmilliamilliatrecenttretriginmilliatrecentdotrigintillion" ten times fast.

Another solution would be to designate a new unit, like the Tera-Byte, as the BBoT, for lack of a better name. That would run out slower, lasting 4*5*8 = 160 years. That is good, but not perminent. Further, we would have to designate a new unit for every unit used.

If our growth is exponential, then if we should want a system that will scale in the same way. We have that for Earthquakes, for instance. It is called the Richter scale. Similar scales are used in apparent magnitude for astronomy and the decibel scale for sound. These all use base-10 logarithms, so that each time you increase by 1, the magnitude increases by 10 times. For instance, 5.4 on the richter scale is 10 times what 4.4 is. This system would last virtually forever. But implemenation is everything... and that is going to require more work.

Suggestions?

2 comments:

lincoln said...

A single designator could make our existing prefixes reusable at higher orders of magnitude -- something like "plex", as in "googol plex"? For example, a kiloplex bytes might be 1024 to the 1024 bytes and a gigaplex bytes might be 1048576 to the 1048576 bytes.

Zen said...

The problem with this is that, without a calculator, the units would have no easily recognizable size progression.

The benefit of the current system is that each progressive unit is a set amount larger than the previous one.

The benefit of a logarithmic system is that the amount of change between neighboring integers, is a fixed ratio.

Still, we need something innovative and easy.

We could retrofit engineering notation; eg. 3E8 = 3*10^3 = 300000000, but I don't see that becoming popular, as much as I appreciate it.

One thing we could do is
K kilo = K1
M mega = K2
G giga = K3
T tera = K4
P peta = K5 and so on

It would be regular, and not a difficult notation, even for the common mathephobic man.