The brave new world of software
Download
1 / 22

The Brave New World of Software - PowerPoint PPT Presentation


  • 94 Views
  • Uploaded on

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….

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' The Brave New World of Software' - oistin


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?



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




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/


ad