Prof. John Ousterhout in his book A philosophy of software design defines complexity as the phenomenon a developer experiences when trying to achieve a goal. As such, complexity manifests itself in three forms Change amplification: a small change to one part of the code requires large changes in the rest of the system Cognitive load: …
Storage and Compute in Space
Elasticity, efficiency, and accessibility of cloud computing has resulted in the wide-spread use of data centers. Public cloud offerings (e.g., AWS, GCP, Azure) provide eleven nines of durability, impressive regulatory compliance (HIPAA, GLBA, ITAR) and significant reductions in capital expenditures. Public clouds protect against data loss by using redundant data centers located at diverse locations …
Processing-in-Memory
Demand for more compute power is ever-increasing to empower emerging applications. Take the example of machine learning, where the computing power required is doubling every 100 days for the last decade [1]. On the other hand, silicon-based hardware is not getting faster at a similar rate. Intel, one of the leading manufacturers of microprocessors, has …