The brave new world of software
This presentation is the property of its rightful owner.
Sponsored Links
1 / 22

The Brave New World of Software PowerPoint PPT Presentation


  • 70 Views
  • Uploaded on
  • Presentation posted in: General

The Brave New World of Software. Adam Kemp Staff Software Engineer National Instruments. Back in my day…. Programmers had it tough… No fancy high-level languages (except C…) What’s an “IDE”? Debuggers? Just use printf No Internet (i.e., no Google) Good for you, old man….

Download Presentation

The Brave New World of Software

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


The brave new world of software

The Brave New World of Software

Adam Kemp

Staff Software Engineer

National Instruments


Back in my day

Back in my day…

  • Programmers had it tough…

    • No fancy high-level languages (except C…)

    • What’s an “IDE”?

    • Debuggers? Just use printf

    • No Internet (i.e., no Google)

  • Good for you, old man…


Back to reality

Back to reality

  • Programming is still just as hard

  • Problems keep getting harder as tools get better

  • The tools are never good enough

  • Also applies to hardware


Hardware comparison

Hardwarecomparison

  • RAM

    • Then: 640 kB should be enough for anyone

    • Now: 2 GB minimum

  • Clock speed:

    • Then: 8-10 MHz (“turbo mode”)

    • Now: 2-3 GHz


Moore s law

Moore’s Law

  • The number of transistors on a chip will double about once every 2 years


Clock speed reality check

Clock speed reality check

  • 3 GHz in 2002

    • => 48 GHz next year?


Clock speed history

Clock speed history


Speed limits

Speed limits

  • Heat

  • Power


How is that a software problem

How is that a software problem?

  • “I hate it when the computer gets in the way of my computer science.” – Some LabVIEW developer


The solution multi core

The solution: Multi-core

  • Dual-core

  • Quad-core

  • N-core

“Intel pledges 80 cores in five years”

- Headline following Intel Developer Forum

September 2006


How can software keep up

How can software keep up?

  • Optimize

    • Only goes so far

  • Do more in parallel


Programming the old way

Programming the old way:

void doSomeStuff()

{

doTask1();

doTask2();

}


Programming the new way

Programming the new way:

startTask1()

startTask2()

void doSomeStuff()

{

startTask1();

startTask2();

waitForTasks();

}

doTask1()

doTask2()

waitForTasks()


Threads

Threads

startTask1()

startTask2()

  • Threads are tasks that can be run at the same time as other tasks

doTask1()

doTask2()

waitForTasks()


Programming paradigms

Programming Paradigms

  • Procedural/Imperative

    • Sequence of steps executed in order

    • Difficult to visualize multiple threads

    • Difficult to write multiple threads

    • Even harder to write safe code for multiple threads

“Probably the greatest cost of concurrency is that concurrency really is hard...”

– Herb Sutter


Programming paradigms1

Programming Paradigms

  • Dataflow

    • Emphasis on data

    • Data “flows” through the program


Dataflow example

Dataflow Example

Control/indicator terminals

Wires

Primitives (built-in functions)


Dataflow

Dataflow

  • Data flows through “wires”

    • Produced by output terminals

    • Consumed by input terminals

  • Execution order defined by flow

    • A node runs when it has all of its inputs

    • A node’s outputs are available only after it runs


Dataflow example1

Dataflow Example


Dataflow example2

Dataflow Example


Conclusion

Conclusion

  • Programming is just as hard today

  • Hardware is not getting faster

  • Parallel programming is the future

  • Dataflow may be a better way to do parallel programming


Advice

Advice

  • Learn on your own

    • Keep up with tech trends

    • Work on your own pet projects

    • Work with other people

  • Get an internship

  • Try LabVIEW

    • http://www.ni.com/labview/


  • Login