5 private links
This paper by Leiserson et. al (the L from the famous CLRS Algorithms book) explores how computer performance can continue to improve after Moore's law hits its limits. In this paper from 2020, the authors predict that there will be diminishing returns after 5 nm transistors, but there are 3 nm and 2 nm transistors being manufactured in 2024 (not available to China though they have the highest number of supercomputers/country). Clock speed had pretty much stopped increasing since 2004 due to increasing power requirements. We cannot continue to reduce voltage with increasing clock frequency (Dennard scaling).
The gains at the bottom are due to improvements in semiconductor technology - the tide that lifts all boats. The gains at the top on the other hand come from software performance optimization (while taking the target hardware into account), algorithmic efficiency and hardware streamlining.
Unlike the historical gains at the Bottom, however, the gains at the Top will be opportunistic, uneven, sporadic, and subject to diminishing returns as problems become better explored.
Why programming languages don't provide graphs in their standard libraries:
- There are many different kinds of graphs
- There are many different representations of each kind of graph
- There are many different graph algorithms
- Graph algorithm performance is very sensitive to graph representation and implementation details
- People run very expensive algorithms on very big graphs.
A collection of resources to teach yourself Computer Science.
The recommended resources are better than what you'd find in most university courses. I believe this is a good investment of time for self-taught computer programmers (@ 100 to 200 hours per subject).
Guides on various computer science concepts. I am especially interested in the guide on UNIX inter-process communication.