Theories, Laws, and Best Practices

Amdahl’s Law

The law that governs the speedup of using parallel computing resources on a given problem.

The law indicates that an algorithm that can be parallelized typically by splitting it up into two parts, a part that can be parallelized, and a part that cannot.

Details can be found:

    • threading/locking/concurrency
    • recursion
    • print formatting
    • Design Patterns: Elements of Reusable Object-Oriented Software. In the software engineering world this is one of the canonical books on OO design patterns. You should read it through at least once. I tend to go back to it from time-to-time when working on new projects as a reference to that design patterns that might be most applicable for what I am trying to build.
    • Character Encodings