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

everyday efficiencies
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

Everyday Efficiencies

Todd L. Montgomery @toddlmontgomery

StoneTor

slide-2
SLIDE 2

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

Everyday Efficiencies

slide-3
SLIDE 3

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/ https://www.nature.com/articles/d41586-018-06610-y

slide-4
SLIDE 4

Efficiency/Performance Non-Functional Requirement

slide-5
SLIDE 5

Performance Quality Robustness Safety Stability Usability

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

slide-6
SLIDE 6

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

slide-7
SLIDE 7

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

slide-8
SLIDE 8

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

slide-9
SLIDE 9

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

slide-10
SLIDE 10

It* isn’t an Issue … Until it (suddenly) is

* - Performance/Quality/Security…

slide-11
SLIDE 11

And then… It is often too late

slide-12
SLIDE 12

In the age of cloud… Just throw machines at it

slide-13
SLIDE 13

Universal Scalability Law

2 4 6 8 10 12 14 16 18 20 1 2 4 8 16 32 64 128 256 512 1024

Speedup Processors

Amdahl USL

slide-14
SLIDE 14

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

slide-15
SLIDE 15

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

slide-16
SLIDE 16

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

slide-17
SLIDE 17

https://en.wikipedia.org/wiki/Pareto_principle

Pareto Principle 80/20 Rule

slide-18
SLIDE 18

Let Data Guide “Where”

slide-19
SLIDE 19

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

slide-20
SLIDE 20

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

slide-21
SLIDE 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!!!??“

slide-22
SLIDE 22

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

slide-23
SLIDE 23

“But it doesn’t have to be ____*!!!” “…It’s not my fault!”

* - Fast/Work/Secure…

slide-24
SLIDE 24

Other Engineering Disciplines Top speed of Sedan vs. F1

slide-25
SLIDE 25

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

slide-26
SLIDE 26

Why are things inefficient?

slide-27
SLIDE 27

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

slide-28
SLIDE 28

End Result Bad Design Choices

slide-29
SLIDE 29

Design

slide-30
SLIDE 30

Performance Quality Security Start with Design

slide-31
SLIDE 31

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

slide-32
SLIDE 32

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

slide-33
SLIDE 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

slide-34
SLIDE 34

Absolutes are for the naive

slide-35
SLIDE 35

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

slide-36
SLIDE 36

Concrete Suggestions

slide-37
SLIDE 37

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

slide-38
SLIDE 38

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

slide-39
SLIDE 39

Abstract Later Design for Composition

slide-40
SLIDE 40

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

slide-41
SLIDE 41

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

slide-42
SLIDE 42

Twitter: @toddlmontgomery

Thank You!

Questions?

StoneTor