everyday efficiencies
play

Everyday Efficiencies Todd L. Montgomery @toddlmontgomery Everyday - PowerPoint PPT Presentation

StoneTor Everyday Efficiencies Todd L. Montgomery @toddlmontgomery Everyday Efficiencies Why should we care? Understanding (In)Efficiencies Efficiencies anyone can do https://www.nature.com/articles/d41586-018-06610-y


  1. StoneTor Everyday Efficiencies Todd L. Montgomery @toddlmontgomery

  2. Everyday Efficiencies Why should we care? Understanding (In)Efficiencies Efficiencies anyone can do

  3. https://www.nature.com/articles/d41586-018-06610-y https://www.forbes.com/sites/forbestechcouncil/2017/12/15/why-energy-is-a-big-and-rapidly-growing-problem-for-data-centers/#344456665a30 https://www.datacenterdynamics.com/opinions/power-consumption-data-centers-global-problem/

  4. Efficiency/Performance Non-Functional Requirement

  5. Performance Quality Robustness Safety Stability Usability https://en.wikipedia.org/wiki/Non-functional_requirement

  6. https://en.wikipedia.org/wiki/Non-functional_requirement

  7. When not met is the system not “Non-Functional”?

  8. “Non”-Functional Requirements Are Unspoken / Incomplete Functional Requirements

  9. Performance (Quality/Security/etc) At best, an afterthought!

  10. It* isn’t an Issue … Until it (suddenly) is * - Performance/Quality/Security…

  11. And then… It is often too late

  12. In the age of cloud… Just throw machines at it

  13. Universal Scalability Law 20 18 16 14 Speedup 12 10 8 6 4 2 0 1 2 4 8 16 32 64 128 256 512 1024 Processors Amdahl USL

  14. That Real Quote on “Premature Optimization” and the root of all evil

  15. https://en.wikiquote.org/wiki/Donald_Knuth

  16. https://en.wikiquote.org/wiki/Donald_Knuth

  17. Pareto Principle 80/20 Rule https://en.wikipedia.org/wiki/Pareto_principle

  18. Let Data Guide “Where”

  19. “But it doesn’t have to be fast!!!”

  20. “But it doesn’t have to be fast!!!” Doesn’t have to be SLOW either!

  21. “But it doesn’t have to be fast!!!” “But it doesn’t have to be secure!!!” “But it doesn’t have to ____!!!” “But it doesn’t have to WORK!!!??“

  22. We seem to assume speed/security/quality/etc. is a “special” characteristic added… later

  23. “But it doesn’t have to be ____*!!!” “…It’s not my fault!” * - Fast/Work/Secure…

  24. Other Engineering Disciplines Top speed of Sedan vs. F1

  25. 2x? 3x? 10x? Do our systems do 100M, 30M, 3K, or 300 tps?

  26. Why are things inefficient?

  27. Not Enough Time? Too “Lazy”? Gap(s) in Knowledge? Too Much Complexity?

  28. End Result Bad Design Choices

  29. Design

  30. Performance Quality Security Start with Design

  31. Everyday Efficiencies Be Lazy Don’t reward bad ideas Don’t be Naive

  32. Good Engineering is Laziness Too lazy to do something complicated Never too lazy to stop making it better

  33. Don’t reward bad ideas Don’t let bad ideas stay around Don’t be afraid to move on Don’t be afraid to try something new

  34. Absolutes are for the naive

  35. Always use X! Never use Y! Better: Favor X over Y

  36. Concrete Suggestions

  37. Ownership, Dependency, & Coupling Complexity Kills Layers of Abstraction are not free Manage Your Resources

  38. Understand Your Tools (OS, language, CPU, disk, libs, etc.) The Compiler is BETTER than you Idioms Matter

  39. Abstract Later Design for Composition

  40. Counted vs. Uncounted Loops Predictable Branches Simple Conditionals Stack Allocation Favor Arrays over Lists Primitive Data Structures

  41. Everyday Efficiencies Be Lazy Don’t reward bad ideas Don’t be Naive All starts with Design

  42. Questions? StoneTor Twitter: @toddlmontgomery Thank You!

Recommend


More recommend