How large are modern computers?

Large as measured by the number of elementary building blocks: transistors for hardware, source line of code for software


# of transistors in hardware; # of lines of code in software # of interconnected systems # of asynchronous interactions

# of transistors in a chip: Oracle (Sun) SPARC M7: 10 x 10^9 (2015, 32 cores); Intel 10-core Xeon Haswell-E5: 5.56 x 10^9 (2014); AMD Fiji GPU: 8.9 x 10^9; Apple  A7= >10^9. Xilinx Virtex-Ultrascale XCVU440: 20 x 10^9 (2014); Samsyng 128 Gb DRAM: 137 x 10^9; Apple A9: 2 x10^9

Why do people always say Moore's Law will be dead in 10 years? (For example: 2014, 2003, 1999. No need to read these links) (Think about driving on a foggy unknown road: you only get to see the 10 feet ahead.)


Why so?

The economics of Moore's Law


Difference between Hardware and Software in Complexity

Hardware has embraced testing and verification earlier and better than software, thanks to the high cost of fabrication and revising hardware.

Source lines of code in recent releases of Windows: about 50 M; recent Linux kernel: 20 M; recent Linux distribution (Debian 7): 420 M; a premium car: 100 M (70 to 100 ECUs).

How many lines of code can we write per day?

Maurice Wilkes, a computer pioneer and Turring award winner, famously said, ``I well remember when this realization first came on me with full force...that a good part of the remainder of my life was going to be spent in finding errors in my own programs.''

Mathematical notes about ``large''

Larger can be simpler

Different sizes of infinities

How large is infinite? A set can have an infinite number of members. Not all infinite sets are equal in size though. The size of an infinite set is measured by its cardinality. Georg Cantor proved that the set of natural numbers has a lower cardinality than that of real numbers. He also advanced the famous continuum hypothesis that postulates that there is ``no set whose cardinality is strictly between that of the natural numbers and that of the real numbers.

Georg Cantor used the diagonal argument to prove that it is impossible to establish a one-to-one correspondence between the set of natural numbers and that of real numbers. This approach is behind Alan Turing's proof that there are problems that are NOT computable. This result says the answer to the Entscheidungsproblem advanced by David Hilbert in 1928 is No. And it effectively points out the limitation of modern computers, including hardware, programming language, and software, and human languages. In a much simplified sense, they are limited because one-to-one correspondence can be established between the sets of all possible computers, that of all programs, that of English texts, and that of the natural numbers.

Is there a limit to how large systems can we build?

Pessimism vs. Optimism as explained in The Beginning of Infinity: Explanations That Transform the World by David Deutsch.

Note about population

As we attempt to understand the end of Moore's Law, the growth of operating systems, the power of opensource, we need to pay attention to human reasons, especially population. The number of developers matters for a software project; the number of paying customers matters for a product, i.e., processors; the number of users matters for user interface design (the more users, the easier the user interface must be).

Readings related to our discussion of population