1 / 22

The Brave New World of Software

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

oistin
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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. The Brave New World of Software Adam Kemp Staff Software Engineer National Instruments

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

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

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

  5. Moore’s Law • The number of transistors on a chip will double about once every 2 years

  6. Clock speed reality check • 3 GHz in 2002 • => 48 GHz next year?

  7. Clock speed history

  8. Speed limits • Heat • Power

  9. How is that a software problem? • “I hate it when the computer gets in the way of my computer science.” – Some LabVIEW developer

  10. The solution: Multi-core • Dual-core • Quad-core • N-core “Intel pledges 80 cores in five years” - Headline following Intel Developer Forum September 2006

  11. How can software keep up? • Optimize • Only goes so far • Do more in parallel

  12. Programming the old way: void doSomeStuff() { doTask1(); doTask2(); }

  13. Programming the new way: startTask1() startTask2() void doSomeStuff() { startTask1(); startTask2(); waitForTasks(); } doTask1() doTask2() waitForTasks()

  14. Threads startTask1() startTask2() • Threads are tasks that can be run at the same time as other tasks doTask1() doTask2() waitForTasks()

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

  16. Programming Paradigms • Dataflow • Emphasis on data • Data “flows” through the program

  17. Dataflow Example Control/indicator terminals Wires Primitives (built-in functions)

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

  19. Dataflow Example

  20. Dataflow Example

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

  22. 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/

More Related