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: …
Statistical Testing – Why, What, and How?
Statistical testing or hypothesis testing is a popular statistical technique to make data-driven decisions. This article briefly describes why we need statistical testing, what could be accomplished with statistical tests, and the basic mechanism of how statistical tests work. Why do we need statistical testing? To answer this, let’s first state a few statistical preliminaries. …
Continue reading “Statistical Testing – Why, What, and How?”
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 …